Κυκλώματα αποθήκευσης με ρολόι Latches και Flip-Flops Γιώργος Δημητρακόπουλος Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης 1
Γιατί χρειαζόμαστε τα ρολόγια Συνδιαστική λογική Η έξοδος εξαρτάται μόνο από τις τρέχουσες εισόδους Ακολουθιακή λογική Η έξοδος εξαρτάται από την τρέχουσα τιμή των εισόδων και από τις προηγούμενες εξόδους Χρειαζόμαστε ένα τρόπο να διαχωρίσουμε μεταξύ του παρελθόντος, της τρέχουσας χρονικής στιγμής και των μελλοντικών χρονικών στιγμών Οι τιμές αυτές συνήθως καλείται κατάσταση του ακολουθιακού κυκλώματος Για παράδειγμα FSMs, pipeline 2
Βασικά στοιχεία αποθήκευσης - Latch Το Latch διέρχεται από 2 καταστάσεις Transparent (ανοικτό): Όταν το CLK=1 H τιμή του D περνάει στο Q Opaque (κλειστό): Όταν το CLK = 0 H τιμή του παγιδεύεται. Το : αποθηκεύει την παλιά τιμή D Q clock Active High Latch clock D Q 3
Βασικά στοιχεία αποθήκευσης - Flip-Flops Το Flip-Flop διέρχεται από 2 καταστάσεις Aνοίγει με την θετική (ή αρνητική) ακμή του CLK H τιμή του D περνάει στο Q Kλειστό για όλες τις άλλες τιμές του CLK H τιμή του D παγιδεύεται. Το Q αποθηκεύει την παλιά τιμή D Q clock clock D Q 4
Παρατήρηση Για τη σχεδίαση ακολουθιακής λογικής αυτό που μας απασχολεί είναι να φροντίσουμε να έχουμε τα σήματα μας (εισόδου και εξόδου) «συσχετισμένα» στο χρόνο Δε μας ενδιαφέρει ποιος θέτει τα όρια μεταξύ των χρονικών στιγμών και αυτό είναι το ρολόι Αυτό που κύρια μας απασχολεί είναι τα σήματα του παρελθόντος να μην μπερδευτούν με τα σήματα της τρέχουσας χρονικής στιγμής Αν η καθυστέρηση από κάθε μονοπάτι της συνδιαστικής λογικής από τη είσοδο προς τη έξοδος ήταν ακριβώς η ίδια (ΠΟΛΥ ΔΥΣΚΟΛΟ να το επιτύχεις στην πράξη) τότε: Δε θα χρειαζόμασταν ρολόγια Τα σήματα πάντα θα ήταν χρονικά συσχετισμένα και διαχωρισμένα σε συγκεκριμένες χρονικές αποστάσεις Η ζητούμενη κατάσταση θα αποθηκεύονται έμμεσα στα καλώδια και τις πύλες Παρόλα αυτά...δύσκολα θα αποχωριστούμε τα ρολόγια 5
Πως μπορούμε να αποθηκεύσουμε πληροφορία με εξωτερικό έλεγχο Από δύο αντιστροφείς μπορούμε να πάμε σε ένα SR latch Μπορούμε επίσης να προσθέσουμε και ρολόι Πως μπορούμε απλούστερα χωρίς να χρειαζόμαστε τόσες στατικές πύλες 6
Βασικό κύκλωμα Latch Το βασικό κύκλωμα Latch Ενεργοποιείται όταν CLK = 1 Τότε η τιμή του data περνάει στον ενδιάμεσο κόμβο Q Πολύ απλό στη σχεδίαση και μικρό H τιμή αποθηκεύεται δυναμικά Προβλήματα με leakage και θόρυβο Q 7
Προβλήματα στο βασικό δυναμικό Latch H τιμή του ενδιάμεσου κόμβου μπορεί να επηρεαστεί από μια πληρώρα παραμέτρων Δύσκολα μπορείς να επιτύχεις αξιόπιστη λειτουργία Distant driver 1 1 D 2 3 4 S 2 5 V DD Q V SS D 1 noise on input 2 leakage -particle and cosmic 3 rays 4 unrelated signal coupling 5 pow er supply ripple 8
Βελτιωμένη εκδοχή προστασία εισόδου Πρόσθεσε έναν στατικό αντιστροφέα στην είσοδο. Αποφεύγεις προβλήματα με οvershoot και undershoot της εισόδου η οποία ήταν πριν συνδεδεμένη στο source των τρανζίστορς Πάλι τα προβλήματα με τον κόμβο αποθήκευσης δε λύθηκαν 9
Κάνε το κόμβο αποθήκευσης στατικό Πρόσεθεσε έναν αντιστροφέα ανάδρασης ώστε η αποθήκευση να γίνεται στατικά Ο αντιστροφέας ανάδρασης πρέπει να είναι ασθενής (λίγο ρεύμα) ώστε να χάνει τη μάχη στην περίπτωση που θέλουμε να εισάγουμε νέα τιμή Θυμηθείται λειτουργία 6Τ κελιού SRAM Πρόσεξτε το sizing του αντιστροφέα απο πλευράς κατανάλωσης ισχύος και τη συμπεριφορά του κάτω από variations των χαρακτηριστικών των τρανζίστορ 10
Βελτίωσε τον τρόπο αποθήκευσης Έλεγξε την «αντίσταση» του αντιστροφέα ανάδρασης με τη χρήση του ρολογιού Είτε μια transmission gate σε σειρά με αντιστροφέα Είτε ενα tristate 11
Aποθήκευση υπο-συνθήκη κυκλωματικές λεπτομέρειες D Clk Q D Clk Q Clk Clk rem oved 12
Ασφαλές κύκλωμα Latch ικανoποιτικές αποδόσεις Απομόνωσε το κόμβο αποθήκευσης από τον κόμβο εξόδου. Επιπλέον αντιστροφέας για την έξοδο Ασφαλής σχεδιασμός λειτουργεί κάτω από διαφορετικές συνθήκες Όχι ότι πιο γρήγορο μπορούμε να κατασκευάσουμε. Μπορούμε να κερδίσουμε σε ταχύτητα χάνοντας κάτι από την ασφάλεια λειτουργίας Πολύ μικροί χρόνοι Setup και hold 13
Χρονικοί περιορισμοί Latch Οι setup και hold χρόνοι ορίζονται σε σχέση με την τιμή του CLK που ΚΛΕΙΝΕΙ το Latch (CLOCK FALL1 0) Χρόνος Setup: Ο χρόνος πριν την πτώση του ρολογιού όπου τα δεδομένα πρέπει να έχουν σταθεροποιηθεί και να μην αλλάζουν Χρόνος Ηοld: Ο χρόνος μετά την πτώση του ρολογιού όπου τα δεδομένα πρέπει να παραμείνουν σταθερά χωρίς να αλλάζουν Έξω απο το παράθυρο δειγματοληψίας που ορίζουν οι χρόνοι setup και hold τα δεδομένα μπορεί να αλλάξουν Η καθυστέρηση αλλαγή της εξόδου (για ένα ανοικτό latch) εξαρτάται από το χρόνο άφιξης των δεδομένων σε σχέση με τη στιγμή που το latch ανοίγει (γίνεται transparent) με την άνοδο του ρολογιού Αν τα δεδομένα έρχονται νωρίτερα delay = TCLKQ Aν τα δεδομένα έρχονται μετά το άνοιγμα delay = TDQ 14
Xρονισμοί περιορισμοί και καθυστερήσεις Latch TCLKQ TDQ 15
Χρόνος setup για το Latch Ένα active high latch «κλείνει» (γίνεται opaque) όταν το CLK μεταβαίνει από το 1 στο 0 Πρέπει να δεδομένα να είναι σταθερά τουλάχιστον ένα setup χρόνο πιο πρίν Γιατί αυτό απαιτείται ; Ας δούμε πως συμπεριφέρεται το βασικό δυναμικό latch για την αντίθετη περίπτωση Πείραμα: Η αλλαγή των δεδομένων γίνεται ολοένα και πιο κοντά στην ακμή του ρολογιού 16
Γραφική αναπαράσταση χρόνου setup 17
Γραφική αναπαράσταση χρόνου setup 18
Γραφική αναπαράσταση χρόνου setup 19
Γραφική αναπαράσταση χρόνου setup 20
Γραφική αναπαράσταση χρόνου setup 21
Χρόνος hold για το Latch Ένα active high latch «κλείνει» (γίνεται opaque) όταν το CLK μεταβαίνει από το 1 στο 0 Πρέπει να δεδομένα να είναι σταθερά τουλάχιστον ένα hold χρόνο μετά τη μετάβαση του clock από το 1 στο 0 Γιατί αυτό απαιτείται ; Ας δούμε πως συμπεριφέρεται το βασικό δυναμικό latch για την αντίθετη περίπτωση Πείραμα: Η αλλαγή των δεδομένων γίνεται ολοένα και πιο κοντά στην ακμή του ρολογιού 22
Γραφική αναπαράσταση χρόνου hold 23
Γραφική αναπαράσταση χρόνου hold 24
Γραφική αναπαράσταση χρόνου hold 25
Γραφική αναπαράσταση χρόνου hold 26
Γραφική αναπαράσταση χρόνου hold 27
Ακμοπυροδοτητά στοιχεία αποθήκευσης Μπορείς να τα κατασκευάσεις χρησιμοποιώντας δύο latches το ένα μετά το άλλο (Master-Slave Flip-flop) Τα δύο latch τροφοδοτούνται από αντίθετα ρολόγια Είτε από ένα πραγματικό ακμοπυροδοτητό κύκλωμα 28
Λειτουργία Master-Slave Flip-Flop Στον πρώτο μισό κύκλο (CLK=0) λειτουργεί ο Master και στο δεύτερο μισό ανοίγει o Slave (CLK=1) Eξομοιώνουμε έτσι την θετική ακμή 29
Master Slave Flip-Flop Από τα πρώτα Master-Slave Flip-Flops. Όλες οι επιλογές του ρολογιού γίνονται με tristate και όχι transmission gates 30
Master-Slave Flip-flop PowerPC 603 flip-flop Προσέξτε πως ενεργοποιείται στην αρνητική ακμή Γρηγορότερο από το προηγούμενο με χειρότερα προβλήματα θορύβου στην είσοδο 31
Ένα ακόμα Master-Slave Flip-flop Επεξεργαστής CELL Γενικού σκοπού flip-flop Δε χρησιμοποιείται στα time-critical μονοπάτια Προσέξτε τη σύνδεση λογικής πύλης κατευθείαν στην είσοδο του flip-flop Ουσιαστικά προκύπτει μια συνδιασμένη πύλη FF 32
Πραγματικά ακμοπυροδοτητά flip-flops Ενα sense-amplifier γεννάει τους παλμούς R και S και ένα στατικό SR-latch τους «πιάνει» και τους αποθηκεύει Flip-flop υψηλών επιδόσεων με αρνητικό setup time χρόνο!!! 33
Διαφορές μεταξύ τρόπων σχεδίασης flip-flop Data Data Data Data No Clock Clock S Pulse Generator Q Slave Latch Q R Flip-Flop Pulse Capturing Latch Clock: 1 Clock: 2 Q 1 Q 2 Q Master (L 1 ) Latch Slave (L 2 ) Latch Q 1 Q 2 Q M-S Latch Flip-Flop 34
Πως μπορείτε να τα ξεχωρίσετε Λειτουργικά ισοδύναμα Δεν μπορείτε να δείτε διαφορά Αν όμως η ακμή του ρολογιού αρχίσει να χαλάει... Clock Data Data F-F ΜS FF Clock Clock Q FF Q L Data Q L Q FF Flip-Flop failed! 35
Xρονικοί περιορισμοί σε Flip-flops CLK D t setup t hold Περιορισμός χρόνου setup: Ο ελάχιστος χρόνος πριν την ακμή του ρολογιού όπου τα δεδομένα είσοδου πρέπει να του καταχωρητή έχουν σταθεροποιηθεί Περιορισμός χρόνου hold: O ελάχιστός χρόνος μετά την ακμή του ρολογιού που τα δεδομένα εισόδου πρέπει να μείνουν σταθερά (δεν επιτρέπεται να αλλάξουν) Παράθυρο δειγματοληψίας TA = TSETUP (πριν την ακμή) + THOLD μετά t a 36
Setup και hold σε Master-Slave Flip-Flops Για ένα master-slave flip-flop Απο ποιο latch εξαρτάται ο setup χρόνος; Απο ποιο latch εξαρτάται ο hold χρόνος; Ποια χρονική απόσταση πρέπει να έχουν οι παλμοί των δύο latches ώστε να εξασφαλίζεται η ασφαλής λειτουργία των flip-flops; 37
Pulsed (ή Glitch) Latch Πρόκειται για μια υβριδική λύση Είναι ένα στοιχείο αποθήκευσης που μοιάζει με flip-flop αλλά αποτελείται μόνο από ένα latch To ρολόι του είναι ένας κανονικός παλμός που παράγει ο pulse generator από το πραγματικό ρολόι του συστήματος To latch ανοίγει (transparent) μόνο για όσο διαρκεί αυτός ο πολύ στενός παλμός που δημιουργείται μετά την ακμή του ρολογιού. Σε όλη την άλλη διάρκεια το latch είναι κλειστό Συμπεριφέρεται σαν να ήταν ακμυπυροδοτητό στοιχείο Pulse clock pulse 38
Παραδείγμα Pulsed-latches 39
Άλλος σχεδιασμός Intel explicit pulsed-latch Απλός και αποτελεσματικός σχεδιασμός O pulse generator θα μπορούσε να μοιραστεί από περισσότερα του ενός latches Οχι σε πολλά γιατί λόγω των συρμάτων ο παλμός μπορεί να εξασθενίσει και να μην μπορεί να ενεργοποιήσει τα πιο απομακρυσμένα latches Static Latch Pulse generator 40