Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ωτογραίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όελος (π.χ. διαημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 2
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναοράς το Σημείωμα Αδειοδότησης τη Δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 3
Ανάπτυξη Το παρόν εκπαιδευτικό υλικό αναπτύχθηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών. Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 4
Σχεδίαση Ακολουθιακών Κυκλωμάτων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 5
Περίγραμμα Παρουσίασης Ακολουθιακή Λογική Βασικές Έννοιες Μέθοδοι Χρονικής Ακολουθίας Διαγράμματα Χρονισμού Max and Min-elay Περιορισμοί Δανεισμός Χρόνου (Time Borrowing ) Απόκλιση Ρολογιού (Clock Skew) Σχεδιασμός Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 6
Ακολουθιακή Λογική Βασικές Έννοιες (1/2) Συνδυαστική λογική η τιμή της εξόδου εξαρτάται από τις τρέχουσες τιμές των εισόδων κάθε αλλαγή της εισόδου ενεργοποιεί την έξοδο Ακολουθιακή λογική η έξοδος εξαρτάται από τις τρέχουσες & προηγούμενες τιμές των εισόδων αλλάζει 1 ορά στην περίοδο του ρολογιού κυκλώματα καταστάσεων (state) παραδείγματα: Finite State Machines, Κυκλώματα αλυσιδωτής επεξεργασίας (pipelined) clk clk clk clk in CL out CL CL Finite State Machine Pipeline Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 7
Ακολουθιακή Λογική Βασικές Έννοιες (2/2) Τα ακολουθιακά κυκλώματα υλοποιούνται με flip-flop ή μανδαλωτές Συγκρατούν τη διάδοση δεδομένων που ονομάζονται tokens Σκοπός η ακολουθιακή επεξεργασία δεδομένων Διαοροποίηση τωρινού από το προηγούμενο / επόμενο token ακολουθιακά στοιχεία Τα ακολουθιακά στοιχεία καθυστερούν τα tokens που έρχονται νωρίς Αλλιώς το επόμενο token μπορεί να προλάβει στην επεξεργασία το τρέχον και να αλλοιωθούν και τα δύο Προσθέτουν όμως καθυστέρηση που ονομάζεται ακολουθιακή επιβάρυνση (sequential overhead) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 8
Κατηγορίες Ακολουθιακών Κυκλωμάτων Τα ακολουθιακά κυκλώματα διακρίνονται σε δυναμικής και στατικής λογικής Τα στατικής λογικής ακολουθιακά κυκλώματα αορούν πύλες / κυκλώματα χωρίς ρολόι Συμπληρωματική CMOS, pseudo-nmos, pass logic Χρησιμοποιούν ανάδραση για τη διατήρηση της τιμής Δεν έχουν ουσιαστικά προβλήματα διαρροών και η τιμή της εξόδου διατηρείται θεωρικά επ άπειρον Τα δυναμικής λογικής ακολουθιακά κυκλώματα έχουν μια επιπλέον είσοδο ρολογιού Βασίζονται κυρίως σε domino λογική Διατηρούν την τιμή σε πυκνωτή Σημαντικό πρόβλημα λόγω ρευμάτων διαρροών => αλλοίωση της τιμής του κόμβου που αποθηκεύεται η τιμή της κατάστασης Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 9
Ακολουθιακά Στοιχεία Latch: Ευαίσθητο σε στάθμη σήματος (Level-sensitive) Flip-flop: Ευαίσθητο σε παρυή ρολογιού (Edge-triggered) Διαγράμματα Χρονισμού (Timing iagrams) Διαανές (Transparent) Αδιαανές (Opaque) Ακμο-πυροδοτούμενο (Edge-triggered) clk clk Latch Flop clk (latch) (flop) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 10
Περίγραμμα Παρουσίασης Ακολουθιακή Λογική Βασικές Έννοιες Μέθοδοι Χρονικής Ακολουθίας Διαγράμματα Χρονισμού Max and Min-elay Περιορισμοί Δανεισμός Χρόνου (Time Borrowing ) Απόκλιση Ρολογιού (Clock Skew) Σχεδιασμός Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 11
Χρονική Ακολουθία Υπολογισμών (Sequencing Methods) Οι τρεις δημοιλέστεροι μέθοδοι χρονικής ακολουθίας υπολογισμών υλοποιούνται με Flip Flop Διαανείς μανδαλωτές 2 άσεων (2 Phase Transparent Latches) Παλμικούς μανδαλωτές (Pulsed Latches) Μια ιδανική μέθοδος Δε θα εισήγαγε καθυστέρηση Ευέλικτη στον καθορισμό της υλοποιήσιμης λογικής ανά κύκλο ρολογιού Θα είχε «αντοχή» στη χρονική απόκλιση ρολογιού Θα κατανάλωνε χαμηλή επιάνεια και ισχύ Σκοπός του κεαλαίου: Η διερεύνηση των εναλλακτικών μεθόδων χρονικής ακολουθίας Μελέτη κυκλωματικών υλοποιήσεων σε επίπεδο τρανζίστορ Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 12
Μέθοδοι Χρονικής Ακολουθίας Flip-Flop Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 13
Μέθοδοι Χρονικής Ακολουθίας Flip-Flop Χρήση F/Fs μεταξύ της συνδυαστικής λογικής Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 13 14
Μέθοδοι Χρονικής Ακολουθίας Flip-Flop Χρήση F/Fs μεταξύ της συνδυαστικής λογικής Τα δεδομένα μεταδίδονται διαμέσου της συνδυαστικής λογικής από τον έναν κύκλο στο επόμενο στην ανερχόμενη παρυή του ρολογιού Αν κάποια δεδομένα είναι διαθέσιμα πολύ νωρίς αυτά συγκρατούνται στην είσοδο του F/F μέχρι την επόμενη ενεργή ακμή του ρολογιού Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 13 15
Μέθοδοι Χρονικής Ακολουθίας Διαανείς μανδαλωτές 2 άσεων Ένα F/F μπορεί να είναι ένα ζεύγος διαδοχικά συνδεδεμένων μανδαλωτών Χρησιμοποιώντας το clk και το clk Δομή Master-slave Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 14 16
Μέθοδοι Χρονικής Ακολουθίας Διαανείς μανδαλωτές 2 άσεων Ένα F/F μπορεί να είναι ένα ζεύγος διαδοχικά συνδεδεμένων μανδαλωτών Χρησιμοποιώντας το clk και το clk Δομή Master-slave Διαχωρισμός των latches => διαίρεση κύκλου σε δύο άσεις. Τα δύο ρολόγια ονομάζονται 1 και 2 Αντιστοιχούν στο clk και clk ή μπορεί να είναι μη επικαλυπτόμενα (t nonoverlap > 0) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 14 17
Μέθοδοι Χρονικής Ακολουθίας Διαανείς μανδαλωτές 2 άσεων Ένα F/F μπορεί να είναι ένα ζεύγος διαδοχικά συνδεδεμένων μανδαλωτών Χρησιμοποιώντας το clk και το clk Δομή Master-slave Διαχωρισμός των latches => διαίρεση κύκλου σε δύο άσεις. Τα δύο ρολόγια ονομάζονται 1 και 2 Αντιστοιχούν στο clk και clk ή μπορεί να είναι μη επικαλυπτόμενα (t nonoverlap > 0) Τουλάχιστον ένα ρολόι βρίσκεται σε χαμηλή στάθμη και ο αντίστοιχος μανδαλωτής είναι αδιαανής εμποδίζοντας τη μετάδοση των tokens Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 14 18
Μέθοδοι Χρονικής Ακολουθίας Παλμικούς μανδαλωτές Στα συστήματα παλμικών μανδαλωτών χρησιμοποιείται ένας μανδαλωτής λιγότερος Εαρμογή ενός παλμού μικρού εύρους t pw Αν ο παλμός είναι πιο σύντομος από την καθυστέρηση διαμέσου της συνδυαστικής λογικής => ένα δεδομένο (token) θα διαδοθεί σε κάθε κύκλο ρολογιού Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 15 19
Περίγραμμα Παρουσίασης Ακολουθιακή Λογική Βασικές Έννοιες Μέθοδοι Χρονικής Ακολουθίας Διαγράμματα Χρονισμού Max and Min-elay Περιορισμοί Δανεισμός Χρόνου (Time Borrowing ) Απόκλιση Ρολογιού (Clock Skew) Σχεδιασμός Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 16 20
Διαγράμματα Χρονισμού t pd Logic Prop. elay A Combinational Logic Y A Y t cd t pd t cd Logic Cont. elay t pcq Latch/Flop Clk-> Prop. elay t ccq Latch/Flop Clk-> Cont. elay clk clk t setup t hold t pdq Latch -> Prop. elay Flop t ccq t pcq t cdq t setup t hold Latch -> Cont. elay Latch/Flop Setup Time Latch/Flop Hold Time clk clk t ccq t pcq t setup t hold Latch t cdq t pdq Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 17 21
Διαγράμματα Χρονισμού Συνδυαστική Λογική A Combinational Logic Y A Y t cd t pd Η είσοδος A αλλάζει από μια τιμή σε μια άλλη. Η έξοδος Y δε μπορεί να αλλάξει ακαριαία Ύστερα από την καθυστέρηση t cd η έξοδος Y εμανίζει την 1 η αλλαγή Λόγω πιθανής ύπαρξης πολλαπλών μονοπατιών καθυστέρησης μπορεί να εμανιστούν μεταβατικοί παλμοί Μετά από χρόνο t pd η έξοδος Y παίρνει την τελική τιμή Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 18 22
Διαγράμματα Χρονισμού F/F clk clk t setup t hold Flop t ccq t pcq Για σωστή δειγματοληψία => η είσοδος πρέπει να είναι σταθερή για ένα διάστημα γύρω από την ενεργή ακμή του ρολογιού Συγκεκριμένα, η είσοδος: Πρέπει να έχει σταθεροποιηθεί πριν την ενεργή ακμή του clk για ένα διάστημα που καλείται χρόνος αποκατάστασης t setup Δεν πρέπει να αλλάξει μετά την έλευση της ενεργής ακμής του clk πριν περάσει ο χρόνος συγκράτησης t hold Η έξοδος να αλλάζει ύστερα χρόνο t ccq και σταθεροποιείται ύστερα από χρόνο t pcq Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 19 23
Διαγράμματα Χρονισμού Latch clk clk t ccq t pcq t setup t hold Latch t cdq t pdq Η είσοδος πρέπει να αποκατασταθεί και να συγκρατηθεί γύρω από την κατερχόμενη ακμή ρολογιού που ορίζει το τέλος της περιόδου δειγματοληψίας Η έξοδος αλλάζει ύστερα από χρόνο t ccq που ο μανδαλωτής γίνεται διαανής και σταθεροποιείται ύστερα από t pcq Ενώ ο μανδαλωτής είναι διαανής η έξοδος θα συνεχίσει να ακολουθεί την είσοδο για χρονικό διάστημα από -στο- t cdq και t pdq Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 20 24
Περίγραμμα Παρουσίασης Ακολουθιακή Λογική Βασικές Έννοιες Μέθοδοι Χρονικής Ακολουθίας Διαγράμματα Χρονισμού Max and Min-elay Περιορισμοί Δανεισμός Χρόνου (Time Borrowing ) Απόκλιση Ρολογιού (Clock Skew) Σχεδιασμός Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 21 25
Περιορισμός Μέγιστης Καθυστέρησης Ιδεατά όλη η περίοδος θα ήταν διαθέσιμη για τη συνδυαστική λογική Η επιβάρυνση λόγω ακολουθιακής λογικής μειώνει το διαθέσιμο χρόνο της συνδυαστικής λογικής. Αν η καθυστέρηση της λογικής είναι πολύ μεγάλη το στοιχείο που λαμβάνει το αποτέλεσμα δε θα δειγματοληπτήσει στη διάρκεια του setup time θα δειγματοληπτήσει μια λανθασμένη ενδιάμεση τιμή Αποτυχία στο χρόνο αποκατάστασης ή αποτυχία μέγιστηςκαθυστέρησης Μπορεί να λυθεί με Επανασχεδίαση της λογικής ώστε είναι πιο γρήγορη ή Αύξηση της περιόδου του ρολογιού Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 22 26
Max-elay: Flip-Flops ( setup ) tpd Tc t + tpcq sequencing overhead clk F1 1 Combinational Logic 2 clk F2 T c clk t pcq t setup 1 t pd 2 Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 23 27
Max elay: 2-Phase Latches 1 2 1 ( 2 ) tpd = tpd1+ tpd 2 Tc tpdq sequencing overhead 1 1 Combinational 2 2 Combinational 3 Logic 1 Logic 2 1 L1 L2 L3 3 2 T c Το 3 θα μπορούσε να τάσει με καθυστέρηση ίση με το t setup πριν την καθοδική ακμή του 1. Το L3 δειγματοληπτεί σωστά 1 1 t pdq1 t pd1 Για λόγους ορθότητας, ονομαστικά το πρέπει να τάνει με καθυστέρηση όχι μεγαλύτερη της περιόδου Στο όλο κύκλωμα, κάθε μονοπάτι απλού κύκλου καταναλώνει μια περίοδο για υπολογισμούς 2 2 3 t pdq2 t pd2 Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 24 28
Max elay: Pulsed Latches ( setup ) tpd Tc max tpdq, tpcq + t tpw sequencing overhead 1 p L1 1 Combinational Logic 2 p L2 2 T c 1 t pdq (a) t pw > t setup 1 t pd 2 p (b) t pw < t setup 1 2 t pcq T c t pw tpd tsetup Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 25 29
Περιορισμός Ελάχιστης Καθυστέρησης Ιδεατά, τα ακολουθιακά στοιχεία μπορεί να συνδεθούν διαδοχικά (έξοδος/ είσοδος) και να λειτουργούν χωρίς πρόβλημα Αν ο setup time είναι μεγάλος και η contamination delay μικρή => λάθος διάδοση δεδομένων διαμέσου δύο διαδοχικών στοιχείων σε μια ακμή ρολογιού Ονομάζεται συνθήκη συναγωνισμού (race condition), αποτυχία χρόνου συγκράτησης ή αποτυχία ελάχιστης καθυστέρησης Μπορεί να διορθωθεί μόνο με τον επανασχεδιασμό της λογικής και όχι με το να καθυστερήσει το ρολόι Προσοχή ώστε να αποεύγουν τέτοιες καταστάσεις Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 26 30
Min-elay: Flip-Flops clk F1 1 CL t t t cd hold ccq 2 clk F2 clk 1 t ccq t cd 2 Το μονοπάτι ξεκινάει από την ανερχόμενη ακμή που σκανδαλίζει το F1. Το σήμα 1 αρχίζει να αλλάζει μετά από t ccq και το 2 μετά από t cd Όμως η παλιά τιμή του 2 πρέπει να διατηρηθεί για t hold. Άρα, η νέα τιμή δεν πρέπει να διαδοθεί πριν περάσει χρόνος t hold Αν ισχύει η παραπάνω σχέση τότε μπορεί να συνδεδούν διαδοχικά τα F/Fs αλλιώς πρέπει να εισαχθεί καθυστέρηση (π.χ. buffers, ή αργά F/Fs) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 27 31 t hold
Min-elay: 2-Phase Latches (1/2) 1 1 t nonoverlap L1 1 CL 2 t ccq 2 1 t cd 2 L2 2 t hold Το μονοπάτι καθυστέρησης ξεκινάει με τα δεδομένα να διέρχονται διαμέσου του L1 στον ανερχόμενο παλμό του 1 Το L2 θα πρέπει να έχει γίνει αδιαανές με ασάλεια πριν το L1 γίνει διαανές => τα δεδομένα πρέπει να τάσουν στο L2 μετά από χρόνο που είναι μεγαλύτερος από τον t hold O t hold οριοθετείται από την κατερχόμενη παρυή 2 Καθώς οι ακμές διαχωρίζονται κατά t nonoverlap, η ελάχιστη καθυστέρηση διαμέσου κάθε άσης λογικής είναι t t t t t cd1, cd 2 hold ccq nonoverlap Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 32 28
Min-elay: 2-Phase Latches (2/2) Αν t nonoverlap είναι ικανοποιητικά μεγάλο τότε η αποτυχία χρόνου συγκράτησης μπορεί να αποευχθεί τελείως Η παραγωγή και η διανομή ρολογιών χωρίς επικάλυψη είναι πολύ δύσκολη σε μεγάλες ταχύτητες Χρήση του ρολογιού και του συμπληρωματικό του t nonoverlap =0 => ίδιο περιορισμός της καθυστέρηση για latches & F/Fs Παράδοξο. Ο περιορισμός καθυστέρησης ισχύει για κάθε άση Τα συστήματα με latches αίνεται να απαιτούν συνολική καθυστέρηση διπλάσια συγκρινόμενα με τα αυτά με F/Fs Όμως, τα F/Fs συνήθως υλοποιούνται από ένα ζεύγος laches Επίλυση παράδοξου: Το F/F έχει μια εσωτερική ανταγωνιστική κατάσταση ανάμεσα στους δύο μανδαλωτές Το F/F πρέπει να σχεδιαστεί με προσοχή ώστε να λειτουργεί αξιόπιστα. Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 29 33
Min-elay: Pulsed Latches p L1 1 CL p t pw t hold 1 t ccq t cd p 2 L2 2 t t t + t cd hold ccq pw Τα δεδομένα διαδίδονται μέσου του latch στην ανερχόμενη ακμή του παλμού Θα πρέπει να συγκρατηθούν μέχρις ότου περάσει η κατερχόμενη ακμή Έτσι, το πλάτος του παλμού αυξάνει το χρόνο συγκράτησης του παλμικού μανδαλωτή συγκρινόμενο με το F/F Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 34 30
Περίγραμμα Παρουσίασης Ακολουθιακή Λογική Βασικές Έννοιες Μέθοδοι Χρονικής Ακολουθίας Διαγράμματα Χρονισμού Max and Min-elay Περιορισμοί Δανεισμός Χρόνου (Time Borrowing ) Απόκλιση Ρολογιού (Clock Skew) Σχεδιασμός Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 31 35
Δανεισμός Χρόνου (Time Borrowing) (1/2) Σε συστήματα βασισμένα σε F/Fs Τα δεδομένα διαβάζονται από το F/F στην 1 η ανερχόμενη ακμή Πρέπει να έχουν σταθεροποιηθεί (setup time) πριν την επόμενη ακμή Αν υπάρξει καθυστέρηση τότε η λειτουργία δεν είναι σωστή Αν σταθεροποιηθούν πολύ γρήγορα τότε υπάρχει σπατάλη χρόνου Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 32 36
Δανεισμός Χρόνου (Time Borrowing) (2/2) Σε συστήματα βασισμένα σε latches Τα δεδομένα μπορούν να μεταδοθούν όταν τα latches είναι διαανή Τα δεδομένα αναχωρούν από το 1 ο latch στην ανερχόμενη ακμή Δεν απαιτείται να έχουν αποκατασταθεί μέχρι την επόμενη κατερχόμενη ακμή στο επόμενο latch Αν ένα στάδιο λογικής απαιτεί πολύ χρόνο μπορεί να δανειστεί χρόνο από το επόμενο στάδιο O δανεισμός χρόνου μπορεί να συσσωρευτεί δια μέσου πολλών κύκλων Σε συστήματα με ανάδραση Οι μεγάλες καθυστερήσεις θα πρέπει να ισορροπηθούν από μικρές καθυστερήσεις ώστε η επεξεργασία να ολοκληρωθεί στο διαθέσιμο χρόνο Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 33 37
Time Borrowing Παράδειγμα 1 2 1 1 2 (a) Latch Combinational Logic Latch Combinational Logic Latch Borrowing time across half-cycle boundary Borrowing time across pipeline stage boundary 1 2 (b) Latch Combinational Logic Latch Combinational Logic Loops may borrow time internally but must complete within the cycle Η 1 η περίπτωση: λογική με μεγάλη καθυστέρηση δανεισμός χρόνου από τη 2 η άση Η 2 η περίπτωση: βρόχος απλού κύκλου αυτό-παράκαμψης (bypass) συνολική καθυστέρηση μικρότερη από έναν κύκλο ανάδρασης Τυπικό παράδειγμα είναι η βαθμίδα ALU ενός επεξεργαστή με pipeline η ALU θα πρέπει να ολοκληρώσει μια πράξη και να επιστρέψει το αποτέλεσμα πίσω στην ALU (εντολή που εξαρτάται από αυτό το αποτέλεσμα) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 34 38
Time Borrowing Χρονικοί Περιορισμοί 2-Phase Latches T borrow c setup + nonoverlap ( ) t t t 2 1 2 Pulsed Latches 1 L1 1 Combinational Logic 1 2 L2 2 t t t borrow pw setup 1 2 t nonoverlap T c T c /2 Nominal Half-Cycle 1 elay t borrow t setup 2 Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 35 39
Time Borrowing Πλεονεκτήματα (1/3) Εσκεμμένος Δανεισμός χρόνου: Πιο εύκολη ισοστάθμιση της λογικής ανάμεσα στις βαθμίδες Πιο σύντομοι χρόνοι σχεδιασμού Η ισοστάθμιση μπορεί να γίνει κατά τη διαδικασία του σχεδιασμού Δεν χρειάζονται αλλαγές στο επίπεδο της μικρο-αρχιτεκτονικής Μεταορά λειτουργίων από τη μια βαθμίδα στην επόμενο Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 36 40
Time Borrowing Πλεονεκτήματα (2/3) Ευκαιριακός δανεισμού χρόνου: Ακόμη και ισοσταθμιστούν καθυστερήσεις σε κάθε βαθμίδα κατά τη διαδικασία του σχεδιασμού, θα υπάρχουν διαορές από βαθμίδα σε βαθμίδα στο τελικό chip Ατέλειες κατασκευής Περιβαλλοντολογικές συνθήκες Ανακρίβειες στο χρονικό μοντέλο CA εργαλείου Σε ένα αυστηρά χρονισμένο σύστημα ο μεγαλύτερος κύκλος θέτει την περίοδο Σε ένα σύστημα ικανό στο δανεισμό χρόνου, οι αργοί κύκλοι μπορούν ευκαιριακά να δανειστούν χρόνο από άλλους γρήγορους κύκλους, και να εξομαλυνθούν οι διαορές Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 37 41
Time Borrowing Πλεονεκτήματα (3/3) Αρκετές ορές απαγορεύεται η χρήση του εσκεμμένου δανεισμού χρόνου έως ότου το chip τάσει στο τελικό στάδιο (tape out) Αλλιώς, οι σχεδιαστές τείνουν να υποθέτουν ότι τα στάδια διοχέτευσης μπορούν να δανείζονται χρόνο από τα γειτονικά Όταν αυτό γίνεται έντονα => πολλά μονοπάτια γίνονται υπερβολικά μεγάλα Όμως το πρόβλημα μπορεί να μην εντοπιστεί μέχρι τη άση της πλήρους ανάλυσης χρονισμού του IC (full-chip timing analysis) Τότε όμως είναι πολύ δύσκολο να ξανασχεδιαστούν πολλά μονοπάτια Λύση: ανάλυση χρονισμού για όλο το ολοκληρωμένο κύκλωμα αρκετά νωρίς κατά τη διαδικασία σχεδιασμού. Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 38 42
Περίγραμμα Παρουσίασης Ακολουθιακή Λογική Βασικές Έννοιες Μέθοδοι Χρονικής Ακολουθίας Διαγράμματα Χρονισμού Max and Min-elay Περιορισμοί Δανεισμός Χρόνου (Time Borrowing ) Απόκλιση Ρολογιού (Clock Skew) Σχεδιασμός Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 39 43
Απόκλιση Ρολογιού (Clock Skew) Μέχρι τώρα υποθέταμε ιδανικά σήματα ρολογιού χωρίς χρονικές αποκλίσεις (zero clock skew) Όμως η δημιουργία και διανομή του ρολογιού ιδιαίτερα σε υψηλές συχνότητες & μεγάλα κυκλώματα είναι εξαιρετικά δύσκολη Τα σήματα ρολογιού παρουσιάζουν αποκλίσεις συγχρονισμού (αποκλίσεις στους χρόνους αίξεως) Μείωση της μέγιστης καθυστέρησης διάδοσης της συνδυαστικής λογικής Αύξηση της contamination καθυστέρησης Μείωση του χρόνου δανεισμού Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 40 44
Απόκλιση Ρολογιού : Flip-Flops (1/2) clk clk clk F1 1 CL F1 1 Combinational Logic 2 F2 clk T c 2 F2 clk t skew t pcq t skew clk t hold 1 t pdq t setup 1 t ccq 2 2 t cd Η έντονη γραμμή clk υποδεικνύει τον πιο καθυστερημένο πιθανό χρόνο άιξης ενώ οι διακεκομμένες δείχνουν ότι το ρολόι μπορεί να αποκλίνει Το χείριστο σενάριο για τη μέγιστη καθυστέρηση είναι όταν το F/F που ενεργοποιείται δέχεται το ρολόι αργά ενώ το επόμενο δέχεται το ρολόι νωρίς Τότε η χρονική απόκλιση ρολογιού ααιρείται από το χρόνο που είναι διαθέσιμος για υπολογισμούς και εμανίζεται ως ακολουθιακή επιβάρυνση. Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 41 45
Απόκλιση Ρολογιού : Flip-Flops (2/2) clk clk F1 1 Combinational Logic 2 F2 T c ( setup skew ) tpd Tc tpcq + t + t sequencing overhead clk 1 t pcq t pdq t setup t skew t t t + t cd hold ccq skew 2 clk F1 1 CL clk 2 F2 t skew clk t hold 1 t ccq 2 t cd Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 42 46
Απόκλιση Ρολογιού : Latches (1/2) 1 2 1 1 1 Combinational 2 2 Combinational 3 Logic 1 Logic 2 L1 L2 L3 3 1 2 Σε σύστημα που χρησιμοποιεί διαανείς μανδαλωτές, η χρονική απόκλιση δεν υποβαθμίζει τις επιδόσεις Ο πλήρης κύκλος (μικρότερος από δύο καθυστερήσεις μανδαλωτών) είναι διαθέσιμος για τους υπολογισμούς ακόμη και όταν τα ρολόγια έχουν χρονική απόκλιση Τα δεδομένα μπορεί ακόμη να τάσουν στους μανδαλωτές ενώ είναι διαανείς. Τα συστήματα που βασίζονται σε μανδαλωτές παρουσιάζουν ανοχή-στηχρονική-απόκλιση Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 43 47
Απόκλιση Ρολογιού : Latches (2/2) 2-Phase Latches ( 2 ) tpd Tc tpdq sequencing overhead 1 2 1 1 1 Combinational 2 2 Combinational 3 Logic 1 Logic 2 L1 L2 L3 3 t, t t t t + t cd1 cd 2 hold ccq nonoverlap skew T t t + t + t 2 ( ) c borrow setup nonoverlap skew 1 2 Pulsed Latches cd hold pw ccq ( setup skew ) tpd Tc max tpdq, tpcq + t tpw + t t t + t t + t ( ) t t t + t sequencing overhead skew borrow pw setup skew Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 44 48
Συγκρίσεις Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 45
Περίγραμμα Παρουσίασης Ακολουθιακή Λογική Βασικές Έννοιες Μέθοδοι Χρονικής Ακολουθίας Διαγράμματα Χρονισμού Max and Min-elay Περιορισμοί Δανεισμός Χρόνου (Time Borrowing ) Απόκλιση Ρολογιού (Clock Skew) Σχεδιασμός Ακολουθιακών Στοιχείων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 46 50
Σχεδιασμός Latch Pass Logic Απλός σχεδιασμός Μικρή επιάνεια & σχετικά γρήγορο Όταν =1 η είσοδος μεταέρεται στην έξοδο (διαανές) Όταν =0 η έξοδος είναι απομονωμένη (μη διαανές) Έχει 4 βασικά προβλήματα Η έξοδος δεν εκτελεί πλήρης μεταβάσεις (rail-to-rail) Ποτέ δεν αυξάνει πάνω από V -V t Η έξοδος είναι «δυναμική» Αιωρείται (float) όταν =0. Αλλοίωση λογικής από ρεύματα διαρροής όταν =0 για πολύ χρόνο Η είσοδος οδηγεί απευθείας την είσοδο διάχυσης του τρανζίστορ Ευαίσθητο στο θόρυβο Μπορεί να άγει και με =0 Δύσκολη μοντελοποίηση καθυστέρησης με στατικούς αναλυτές χρόνου Ο κόμβος κατάστασης είναι εκτεθειμένος Θόρυβος στην έξοδο μπορεί να αλλοιώσει την κατάσταση Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 47 51
Σχεδιασμός Latch Transmission Gates Όταν =1 η είσοδος μεταέρεται στην έξοδο (διαανές) Όταν =0 η έξοδος είναι απομονωμένη (μη διαανές) Προσέρει πλήρη ταλάντωση στην έξοδο Vdd GN Απαιτεί ένα συμπληρωματικό ρολόι Μπορεί να παρέχεται ως μια επιπρόσθετη είσοδος ή να δημιουργείται τοπικά (εσωτερικά του κυττάρου) από το με τη χρήση ενός αντιστροέα Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 48 52
Σχεδιασμός Latch Transmission Gates Προσθήκη αντιστροέα στην έξοδο Απομόνωση κόμβου κατάστασης Χ από το θόρυβο Δημιουργεί ανάστροο μανδαλωτή X Απομονωμένη είσοδος αλλά όχι απομονωμένη έξοδος Ανάστροος μανδαλωτής Ο αντιστροέας που ακολουθείται από πύλη μετάδοσης είναι ισοδύναμος με ένα αντιστροέα τριών καταστάσεων Ελαρώς χαμηλότερο λογικό όρτο Η έξοδος οδηγείται παράλληλα και από τα δύο τρανζίστορ της πύλης μετάδοσης. Και τα δύο είναι γρήγοροι δυναμικοί μανδαλωτές Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 49 53
Σχεδιασμός Latch Static Διαρροές ρεύματος => πρόβλημα για τα δυναμικά latches Τα στατικά latches προσθέτουν ανάδραση => αποεύγεται η αιώρηση της εξόδου X Όταν =1 η πύλη μετάδοσης είναι ΟΝ και το latch διαανές Όταν το =0 η η πύλη μετάδοσης είναι OFF ενώ ο tristate buffer είναι ON => διατήρηση της τιμής του κόμβου Χ Χρήση αντιστροέα στην είσοδο αντιμετώπιση θορύβου από την άμεση οδήγηση της διάχυσης της πύλης μετάδοσης X Και τα δύο έχουν πρόβλημα με το θόρυβο στην έξοδο Η ανάδραση μεταέρει το θόρυβο πίσω και αλλοιώνει την τιμή του κόμβου κατάστασης Χ Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 50 54
Σχεδιασμός Latch Static Είναι το πλέον στιβαρό (robust) latch που αντιμετωπίζει όλες τις αδυναμίες Ο μανδαλωτής είναι στατικός Όλοι οι κόμβοι εκτελούν πλήρης μεταβάσεις (Vdd GN) Ο θόρυβος κατάστασης απομονώνεται από το θόρυβο της εξόδου Η είσοδος οδηγεί τις πύλες των τρανζίστορ παρά διαχύσεις Μειονεκτήματα Μεγάλη επιάνεια Σχετικά αργό (1.5 2 FO4 delays) Χρήση ρολογιού 4 ορές X Είναι από τα πλέον χρησιμοποιούμενα latch Εκτός από ειδικές περιπτώσεις (υψηλή ταχύτητα, μικρή επιάνεια) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 51 55
Σχεδιασμός Latch Παραλλαγή του προηγουμένου Μείωση του ορτίου στο ρολόι Χρήση weak inverter αντί δυναμικής πύλης (tristate buffer) Δύο τρανζίστορ λιγότερα Απαιτεί προσεχτικό σχεδιασμό O tristate buffer στην είσοδο πρέπει να υπερνικά πάντα τον αντιστροέα ανάδρασης (weak inverter) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 52 56
Σχεδιασμός Latch Static Latch σε FPGAs Αρκετά τέτοια latches συνδέονται με ένα μόνο καλώδιο out Μόνο ένα ενεργοποιείται κάθε στιγμή, με το σήμα R Latch στον Itanium 2 Στη στατική ανάδραση, ο σωρός οδήγησης «κάτω» είναι χρονισμένος με το ρολόι Ο σωρός οδήγησης «πάνω» είναι ένα ασθενές τρανζίστορ pmos Η πύλη που οδηγεί την είσοδο πρέπει να είναι αρκετά δυνατή για να υπερνικήσει την ανάδραση Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 53 57
C 2 MOS Latch Ο δυναμικός μανδαλωτής μπορεί επίσης να σχεδιαστεί ως ένα τρισταθές στοιχείο χρονισμένο στο ρολόι. Μια τέτοια μορή ονομάζεται χρονισμένη CMOS (Clocked CMOS, C 2 MOS) Η συμβατική μορή (αντιστροέας & πύλη μετάδοσης) είναι ελαρώς πιο γρήγορη Η έξοδος οδηγείται διαμέσου των nmos και pmos τα οποία λειτουργούν παράλληλα Το Σχήμα β δείχνει μια άλλη μορή όπου αντιμεταθέτει τους ακροδέκτες των δεδομένων και του ρολογιού Είναι λογικά ισοδύναμη αλλά έχει χειρότερη ηλεκτρική συμπεριορά Αν το αλλάζει ενώ ο μανδαλωτής είναι διαανής μπορεί να προκαλέσει θόρυβο διαμοιρασμού ορτίου στον κόμβο εξόδου Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 54
ynamic F/F X Δυναμικό F/F αντιστροής (υλοποιεί τη συμπληρωματική έξοδο ) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 55 59
ynamic F/F X Δυναμικό F/F αντιστροής (υλοποιεί τη συμπληρωματική έξοδο ) Αποτελείται από ένα ζεύγος δυναμικών μανδαλωτών διαδοχικά συνδεδεμένων Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 55 60
ynamic F/F X Δυναμικό F/F αντιστροής (υλοποιεί τη συμπληρωματική έξοδο ) Αποτελείται από ένα ζεύγος δυναμικών μανδαλωτών διαδοχικά συνδεδεμένων Μπορεί να απομακρυνθεί είτε ο πρώτος είτε ο τελευταίος αντιστροέας ώστε να μειωθεί η καθυστέρηση Όμως δημιουργούνται προβλήματα θορύβου Η είσοδος ή έξοδος δεν θα είναι απομονωμένη στο θόρυβο Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 55 61
Static F/F X Βασίζεται στο προηγούμενο F/F Παράγει στατικές, εξόδους Περιλαμβάνει Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 56 62
Static F/F X Βασίζεται στο προηγούμενο F/F Παράγει στατικές, εξόδους Περιλαμβάνει Ανάδραση Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 56 63
Static F/F X Βασίζεται στο προηγούμενο F/F Παράγει στατικές, εξόδους Περιλαμβάνει Ανάδραση Επιπλέον αντιστροείς Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 56 64
Static F/F X Βασίζεται στο προηγούμενο F/F Παράγει στατικές, εξόδους Περιλαμβάνει Ανάδραση Επιπλέον αντιστροείς Είναι από τα πλέον χρησιμοποιούμενα F/Fs σε βιβλιοθήκες τυποποιημένων κυκλωματικών κυττάρων (standard cell libraries) καθώς χαρακτηρίζεται από: Απλότητα Ευστάθεια Ικανοποιητική ενεργειακή απόδοση Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 56 65
NORA ynamic Flip-Flop (1/3) Κάθε F/F αποτελείται από 2 latches => εν δυνάμει συναγωνισμός μεταξύ τους Λόγω της καθυστέρησης του αντιστροέα, ο ανταγωνισμός μπορεί να οξυνθεί από τη χρονική απόκλιση ανάμεσα στο ρολόι και στο Όταν πέτει το, τότε το αλλά και το είναι ταυτόχρονα σε χαμηλή στάθμη => τα pmos είναι ΟΝ και στις δύο πύλες μετάδοσης Αν η χρονική απόκλιση (καθυστέρηση αντιστροέα) είναι πολύ μεγάλη τα δεδομένα μπορεί να διέλθουν διαμέσου και των δύο latches κατά την κατερχόμενη ακμή του ρολογιού => λανθασμένη λειτουργία Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 57 66
NORA ynamic Flip-Flop (2/3) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 58 67
NORA ynamic Flip-Flop (2/3) C 2 MOS flip-flop με latches C 2 MOS (αντί αντιστροείς & πύλες μετάδοσης) Επειδή η κάθε βαθμίδα αντιστρέει τα δεδομένα διέρχονται από τα nmos του ενός latch και του pmos του άλλου Απουγή κινδύνων λόγω χρονικής απόκλισης για τα δύο χρονισμένα στο ρολόι pmos Ισχύει και όταν τοποθετηθεί άρτιος αριθμός αντίστροων λογικών βαθμίδων ανάμεσα στα latches Αυτή η τεχνική ονομάζεται χωρίς ανταγωνισμό (No RAce, NORA) Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 58 68
NORA 0-0 Overlap M 2 M 6 0 0 M 4 M M 8 C 1 C 2 M 1 M 5 clk!clk clk!clk H έξοδος είναι απομονωμένη από την είσοδο Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 59
NORA 1-1 Overlap M 2 M 6 M 1 1 C 1 M 3 M 7 C 2 M 1 M 5 clk!clk clk!clk Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 60
Two Phase F/F Τα προηγούμενα F/Fs παρουσιάζουν προβλήματα ελαχίστης καθυστέρησης Ειδικά όταν υπάρχει λίγη ή καθόλου λογική ανάμεσα στα F/Fs και η χρονική απόκλιση είναι μεγάλη Εναλλακτικά: χρήση ζεύγος από ρολόγια μη επικαλυπτόμενων άσεων Το F/F παίρνει την είσοδό του στην ανερχόμενη ακμή του 1 Κάνοντας το εύρος της μη επικάλυψης μεγάλο, το κύκλωμα θα λειτουργήσει σωστά παρά τις μεγάλες χρονικές αποκλίσεις Όμως, ο χρόνος της μη επικάλυψης δε χρησιμοποιείται από τη λογική => αύξηση χρόνου αποκατάστασης και ακολουθιακής επιβάρυνσης Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 61 71
Enabled Latches & F/Fs Enable: το clock αγνοείται όταν en = 0 Mux: αυξάνει τη latch - delay και την επιάνεια Clock Gating: αυξάνει skew & en setup time (πρέπει en=1 όταν clock=1 για απουγή glitches). Μείωση της κατανάλωσης (gated clock) Symbol Multiplexer esign Clock Gating esign en Latch 1 0 Latch Latch en en en Flop 1 0 en Flop Flop en Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 62 72
Reset Synchronous έναντι asynchronous Symbol Latch Flop reset reset Synchronous Reset Asynchronous Reset reset reset reset reset reset reset Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 63 73
F/F με σύγχρονο Set & reset Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 64 74
Σημείωμα Χρήσης Έργων Τρίτων Η ανάπτυξη της παρουσίασης βασίστηκε στις διαάνειες του συγγράμματος «CMOS VLSI esign: A Circuits and Systems Perspective (4 th Edition)», Neil H.E. Weste, avid Money Harris, Pearson, 2011. Διαθέσιμες στη διαδικτυακή διεύθυνση http://pages.hmc.edu/harris/cmosvlsi/4e/index.html 2011 avid Money Harris Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 65 75
Σημείωμα Αναοράς Copyright Πανεπιστήμιο Πατρών, Βασίλης Παλιουράς, Γεώργιος Θεοδωρίδης, «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων (VLSI) IΙ». Έκδοση: 1.0 Πάτρα 2015 Διαθέσιμο στη διαδικτυακή διεύθυνση https://eclass.upatras.gr/courses/ee892/ Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 65 76
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου των διδασκόντων καθηγητών. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 65 77