ΗΜΥ-20: Σχεδιασμός Ψηφιακών Συστημάτων Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches) και Flip-Flops Flops Διδάσκουσα: Μαρία Κ. Μιχαήλ Ακολουθιακά Κυκλώματα Συνδυαστική Λογική: Η τιμή σε μία έξοδο εξαρτάται μόνο από τις τρέχουσες τιμές των εισόδων. Μπορεί να εκτελέσει χρήσιμες λειτουργίες (πρόσθεση/αφαίρεση/πολλαπλασιασμό/ ). Απαιτεί διαδοχή μεταξύ πολλών βασικών στοιχείων. Ακριβή και συνήθως όχι ευέλικτη. Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών MKM - 2 Ακολουθιακά Κυκλώματα (συν.) Ακολουθιακή Λογική: Η τιμή σε μία έξοδο δεν εξαρτάται μόνο από τις τρέχουσες τιμές των εισόδων, αλλά και από τις προηγούμενες τιμές των εισόδων. Αποθηκεύει πληροφορίες μεταξύ λειτουργιών (δεν απαιτεί διαδοχή). Χρειάζεται κάποιου είδους μνήμη για να μπορεί να «θυμάται» τις προηγούμενες τιμές των εισόδων. Ακολουθιακά Κυκλώματα (συν.) Κυκλώματα που Κυκλώματα που αποθηκεύουν εξετάσαμε μέχρι τώρα πληροφορίες Καταστάσεις Χρόνου MKM - 3 MKM - 4 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops
Ακολουθιακή Λογική: Βασικές έννοιες Τα κυκλώματα ακολουθιακής λογικής έχουν την ικανότητα να «θυμούνται» προηγούμενες καταστάσεις του κυκλώματος και προηγούμενες τιμές στις εισόδους. Έξοδοι του κυκλώματος μπορούν να χρησιμο- ποιηθούν ως νέες τιμές εισόδου στο κύκλωμα (κυκλώματα μ ανάδρασης = feedback circuits). Τα στοιχεία αποθήκευσης είναι κυκλώματα που μπορούν να αποθηκεύουν δυαδική πληροφορία: μνήμη. Σύγχρονα vs. Ασύγχρονα Κυκλώματα Υπάρχουν 2 τύποι ακολουθιακών κυκλωμάτων: Σύγχρονο (latch mode) ακολουθιακό κύκλωμα: Η συμπεριφορά του ορίζεται βάσει των τιμών στις εξόδους και στα στοιχεία μνήμης, σε διακριτές στιγμές του χρόνου. Αυτού του είδους τα κυκλώματα πετυχαίνουν συγχρονισμό χρησιμοποιώντας ένα σήμα χρονισμού, το γνωστό ως ρολόι. Ασύγχρονο (fundamental mode) ακολουθιακό κύκλωμα: Η συμπεριφορά του ορίζεται από την σειρά των αλλαγών των τιμών στις εισόδους σε συνεχή χρόνο. Οι τιμές των εξόδων μπορούν να αλλάξουν ανά πάσα στιγμή, χωρίς κανένα συγκεκριμένο συγχρονισμό (clockless). MKM - 5 MKM - 6 Σήμα Ρολογιού Σύγχρονα Ακολουθιακά Κυκλώματα: Flip-flops για καταστάσεις μνήμης Γεννήτρια Ρολογιού: Περιοδικό σήμα από παλμούς ρολογιού Σήματα με ίδια περίοδο MKM - 7 Τα flip-flops flops έχουν ως εισόδους σήματα από το συνδυαστικό κομμάτι του κυκλώματος καθώς και σήμα από ένα ρολόι με περιοδικούς παλμούς μεταξύ αμετάβλητων περιοδικών διαστημάτων. MKM - 8 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 2
Στοιχεία Μνήμης Προσομοίωση ιακριτών Γεγονότων (Discrete Event imulation) Buffers Η αποθηκεμένη τιμή δεν μπορεί να αλλάξει Inverters Χρησιμοποιείται για την καλύτερη κατανόηση της χρονικής συμπεριφοράς ρ ενός κυκλώματος. Κανόνες:. Οι πύλες μοντελοποιούνται με 2 τρόπους: a) Βάσει της λειτουργίας τους, με μηδενική καθυστέρηση (ideal, instantaneous) b) Με σταθερή καθυστέρηση ανά πύλη (fixed gate delay) 2. Κάθε αλλαγή στις τιμές εισόδων αξιολογείται, βάσει του μοντέλου μηδενικής καθυστέρησης, για να υπολογιστούν τυχόν αλλαγές στις τιμές εξόδων (=γεγονός) ό (evaluation of event) 3. Αλλαγές στις τιμές εξόδων προγραμματίζονται βάσει του μοντέλου σταθερής καθυστέρησης (scheduling of event) 4. Οι τιμές εξόδων (και πιθανόν άλλα επηρεαζόμενα σήματα) αλλάζουν μόνο στον χρόνο του προγραμματιζόμενου γεγονότος MKM - 9 MKM - 0 Προσομοίωση πύλης NAND Παράδειγμα: : NAND 2-εισόδων με καθυστέρηση 0.5 ns: A B F(Instantaneous) DELAY 0.5 ns. Θεωρήστε ότι οι A και B έχουν τιμή εδώ και ώρα Σε χρόνο t=0, η A αλλάζει σε 0 και όταν t= 0.8 ns, αλλάζει πίσω σε t (ns) A B F(I) F Σχόλια 0 0 A=B= για αρκετή ώρα 0 0 0 0 F(I) αλλάζει σε 0.5 0 0 F αλλάζει σε μετά από 0.5 ns 0.8 0 0 F(Instantaneous) αλλάζει σε 0.3 0 0 F αλλάζει σε 0 μετά από 0.5 ns MKM - F Μοντέλο Καθυστέρησης Πυλών Θεωρείστε τις πιο κάτω πύλες NOT, AND και OR, με καθυστέρηση n ns, όπου n = 0.2 ns, n = 0.4 ns και n = 0.5 ns, αντίστοιχα: 0.2 0.4 0.5 MKM - 2 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 3
Μοντέλο Καθυστέρησης Κυκλώματος Θεωρείστε έναν απλό 2-σε- MUX: Με συνάρτηση: Y = A για = 0 Y = B για = A B Y A B 0.2 0.4 0.4 05 0.5 Glitch : δημιουργείται λόγω της καθυστέρησης του αντιστροφέα MKM - 3 Y Αποθήκευση Καταστάσεως Τι γίνεται αν η A ενωθεί με την Y? Συναρτήσεις: Y = B για = Y(t) εξαρτάται από Y(t 0.9) για = 0 B Y B 0.2 0.4 0.4 Μονοπάτι ανάδρασης (feedback path) 05 0.5 Το συνδυαστικό κύκλωμα μετατράπηκε σε ακολουθιακό, αφού η συνάρτηση εξόδου εξαρτάται και από προηγούμενες τιμές εισόδων (όχι μόνο τις τρέχουσες τιμές) Y είναι η αποθηκεμένη τιμή στη σκιασμένη περιοχή MKM - 4 Y Αποθήκευση Καταστάσεως (συν. συν.) Αποθήκευση Καταστάσεως (συν. συν.) Παράδειγμα προσομοίωσης: Οι τιμές εισόδων αλλάζουν με την πάροδο του χρόνου. Οι αλλαγές σημειώνονται κάθε 00 ns, έτσι ώστε καθυστερήσεις σε δέκατα του ns αγνοούνται. Χρόνος B Y Σχόλια 0 0 Y θυμάται 0 Y = B όταν = 0 Τώρα Y θυμάται B = για = 0 0 0 Καμία αλλαγή για Y όταν αλλάζει το B 0 0 Y = Bό όταν = 0 0 0 Y θυμάται B = 0 για = 0 0 0 Καμία αλλαγή για Y όταν αλλάζει το B Y εκπροσωπεί την κατάσταση του κυκλώματος, όχι απλά μια έξοδο! Θεωρείστε ότι τοποθετούμε ένα αντιστροφέα στο 0.2 μονοπάτι ανάδρασης. Συμβαίνουν τα ακόλουθα:. Το κύκλωμα γίνεται ασταθή (unstable). 2. Για = 0, το κύκλωμα γίνεται ταλαντωτής (oscillator). Μπορεί να χρησιμο- ποιηθεί ως ένα «αδρό» ρολόι. B 0.4 0.4 0.5 B Y Σχόλια 0 0 Y = B όταν = 0 Τώρα Y θυμάται B 0 0 Y,. ns αργότερα 0 Y,. ns αργότερα 0 0 Y,. ns αργότερα 0.2 Y MKM - 5 MKM - 6 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 4
R latch (από NOR) -- R: set-reset, δισταθές στοιχείο με 2 εισόδους. Προσέξτε την «ακαθόριστη» τιμή για =R=. -- ιαβάζοντας τη λογική: Q = (R+Q ) και Q = (+Q) R==?? Ακαθόριστη έξοδος γιατί: Όταν =R=, τότε και οι 2 έξοδοι γίνονται 0. Εάν και οι 2 έξοδοι είναι 0, η κατάσταση του R latch εξαρτάται από την είσοδο που παραμένει στην τιμή για περισσότερο χρόνο, πριν γίνει 0. Άρα είναι όντως,, ακαθόριστη κατάσταση ΠΡΕΠΕΙ να αποφευχθεί. MKM - 7 MKM - 8 R Latch (από NAND) R Latch (από NAND) 0 R Q Q 0 R Q Q 0 0 0 0 0 et R Q Q 0 R Q Q 0 0 0 0 0 et 0 Hold X Y NAND 0 0 0 0 0 X Y NAND 0 0 0 0 0 MKM - 9 MKM - 20 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 5
R Latch (από NAND) R Latch (από NAND) 0 R Q 0 Q R Q Q 0 0 0 0 0 et 0 Reset 0 Hold R Q 0 Q R Q Q 0 0 0 0 0 et 0 Reset 0 Hold 0 Hold X Y NAND 0 0 0 0 0 X Y NAND 0 0 0 0 0 MKM - 2 MKM - 22 R Latch (από NAND) R Latches 0 0 R Q Q X Y NAND 0 0 0 0 0 R Q Q 0 0 Disallowed 0 0 et 0 0 Reset 0 Hold 0 Hold MKM - 23 MKM - 24 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 6
Προσομοίωση R Latch R Latch με σήμα Ελέγχου Το Latch είναι ευαίσθητο σε αλλαγές στις εισόδους ΜΟΝΟ όταν το = Σημαντικό στοιχείο, χρησιμοποιείται για σχεδιασμό άλλων latches και flip-flops flops Θεωρείται και ως flip-flop, flop, άλλα όχι βάση του ορισμού του βιβλίου σας MKM - 25 MKM - 26 R Latch με σήμα Ελέγχου (συν.) =LK LK R R Q Q D Latch Ένας τρόπος αποφυγής των ανεπιθύμητων ακαθόριστων καταστάσεων στο R flip-flop flop, είναι η εξασφάλιση ότι οι είσοδοι και R δεν θα πάρουν ποτέ την τιμή ταυτόχρονα. Αυτό επιτυγχάνεται με ένα R-latch latch, όπου =D και R=D D-latch: R LK R Q Q 0 0 Q 0 Q 0 tore 0 0 0 Reset 0 0 0 et 0 0 Disallowed X X 0 Q 0 Q 0 tore MKM - 27 MKM - 28 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 7
D Latch (συν.) D LK Q D Latch με πύλες μετάδοσης R D LK Q Q 0 0 0 X 0 Q 0 Q 0 R Q R LK Q Q 0 0 Q 0 Q 0 tore 0 0 Reset 0 0 et Disallowed X X 0 Q 0 Q 0 tore = το TG κλείνει και τοtg2 ανοίγει Q =D και Q=D =0 το TG ανοίγει και το TG2 κλείνει Hold Q και Q 2 MKM - 29 MKM - 30 Flip-FlopsFlops Τα Latches είναι διαυγή (transparent) δηλ., οποιαδήποτε αλλαγή στην κατάσταση του latch είναι αντιληπτή και στις εξόδους (αν υπάρχει σήμα ελέγχου, αυτό ισχύει κατά τη διάρκεια που =). Αυτό προκαλεί προβλήματα συγχρονισμού, αφού η κατάσταση ενός latch μπορεί να αλλάξει πολλαπλές φορές όταν =! Λύση: Χρησιμοποιούμε latches για τη δημιουργία των flip- flops που μπορούν να ανταποκριθούν (update) ΜΟΝΟ σε ΣΥΓΚΕΚΡΙΜΕΝΕΣ χρονικές στιγμές (όχι ανά πάσα στιγμή ή κατά τη διάρκεια ενός διαστήματος). Πυροδότηση (Triggering) Latch/FF Ο μηχανισμός που επιτρέπει σε ένα στοιχείο μνήμης (latch ή FF) να αλλάξει κατάσταση Τρόποι Πυροδότησης: Ασύγχρονα, δηλ. εντελώς διαυγή (π.χ. R-latch) Πυροδότηση-επιπέδου (level trigger, =) (π.χ. R-latch ή D-latch με σήμα ελέγχου ) Master-lave (π.χ. R-FF, D-FF) Πυροδότηση-ακμής: θετική ήαρνητική ακμή του (rising or falling edge trigger, = ή = ) (π.χ. R-FF, D-FF) latches FFs MKM - 3 MKM - 32 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 8
Εναλλακτικές λύσεις στην επιλογή FF Τύποι FF: R D JK Τρόποι ενεργοποίησης (triggering) triggering): Master-lave: χρησιμοποιεί πυροδότηση-επιπέδου αλλά με 2 latches, έτσι ώστε η κατάσταση του FF αλλάζει μόνο μια φορά σε μία περίοδο του ρολογιού Ενεργοποίηση-ακμής: θετική ή αρνητική ακμή του (rising or falling edge trigger, = ή = ) MKM - 33 Master-lave R-FF χρησιμοποιώντας R latches Χρησιμοποιεί πυροδότηση-επιπέδου. Κατάσταση Q=Y, όταν =0. Επίσης, τo Υ δεν μπορεί να αλλάξει τιμή όταν =0. MKM - 34 Master-lave R-FF χρησιμοποιώντας R latches (συν.) R Q Q 0 0 Q 0 Q 0 tore 0 0 Reset 0 0 et Disallowed X X 0 Q 0 Q 0 tore Όταν =, ο master ενεργοποιείται και φυλάει νέα δεδομένα, και ο slave αποθηκεύει παλιά δεδομένα. Όταν =0, η κατάσταση του master αποθηκεύεται στον slave (Q=Y), ενώ ο master δεν είναι ευαίσθητος σε νέα δεδομένα. Master-lave JK Flip-Flop Flop Master lave MKM - 35 MKM - 36 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 9
Πρόβλημα. Η αλλαγή στις εξόδους του FF έχει καθυστέρηση κατά ½ περίοδο του ρολογιού το κύκλωμα γίνεται πιο αργό. 2. και/ή R μπορούν να αλλάξουν πολλαπλές φορές όταν = Q =, = 0 0 και R = 0 Master latch = (set) lave = (set), όταν =0 Q =, = 0 0 και R = 0 0 Master latch = (set) και μετά = 0 (reset) lave = 0 (reset), όταν =0 Γνωστό ως «s catching» Λύση: Πυροδότηση Ακμής Ένα ακμοπυροδοτούμενο FF, αγνοεί τις αλλαγές κατά τη διάρκεια ενός παλμού. Πυροδοτείται μόνο όταν υπάρχει μετάβαση της τιμής του ρολογιού (clock transition, / ) Υλοποίηση ακμοπυροδοτούμενων FF: Άμεσα, σε επίπεδο ηλεκτρονικού κυκλώματος Με master-slave slave D-FF MKM - 37 MKM - 38 Ακμοπυροδοτούμενα Flip-Flops Flops Συνδέουμε ένα D-latch με πυροδότηση-επιπέδου (master) με ένα R-latch με πυροδότηση-επιπέδου (slave) και συμπληρωματικά ρολόγια. JK FF με Θετική Ακμοπυροδότηση D-FF με Θετική Ακμοπυροδότηση MKM - 39 MKM - 40 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 0
Καθιερωμένα Γραφικά Σύμβολα Μανδαλωτές (latches) Καθιερωμένα Γραφικά Σύμβολα (συν.) Master-lave Flip Flops -- Πυροδότηση Επιπέδου (level-triggering) J D D R K R R πυροδοτούμενο R πυροδοτούμενο JK R-latch R -latch D-latch με = D-latch με =0 R J K πυροδοτούμενο R πυροδοτούμενο JK MKM - 4 MKM - 42 Καθιερωμένα Γραφικά Σύμβολα (συν.) Ακμοπυροδοτούμενα (Edge-triggered) Flip Flops Χαρακτηριστικός Πίνακας (haracteristic Table) D Ακμοπυροδοτούμενο D J K Ακμοπυροδοτούμενο JK D Ακμοπυροδοτούμενο D J K Ακμοπυροδοτούμενο JK Καθορίζει τις λογικές ιδιότητες/χαρακτηριστικά / ενός flip-flop flop (όπως ένας πίνακας αληθείας για μια λογική πύλη). Q(t) παρούσα κατάσταση στο χρόνο t Q(t+) επόμενη κατάσταση στο χρόνο t+ MKM - 43 MKM - 44 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops
Χαρακτηριστικός Πίνακας (συν.) Χρόνος t εννοείται (δηλ. J(t) και K(t)) J K Q(t+) 0 0 Q(t) JK Flip-Flop Flop Λειτουργία Καμία Αλλαγή/Hold 0 0 Reset 0 et Q(t) Συμπλήρωμα Χαρακτηριστικός Πίνακας (συν.) R Q(t+) 0 0 Q(t) R Flip-Flop Flop Λειτουργία Καμία Αλλαγή/Hold 0 0 Reset 0 et? Ακαθόριστο/Άκυρο MKM - 45 MKM - 46 Χαρακτηριστικός Πίνακας (συν.) D D Flip-Flop Flop Q(t+) Λειτουργία 0 0 Reset et Χαρακτηριστική Εξίσωση: Q(t+) = D(t) (haracteristic Equation) -- Εκφράζει την τιμή των εξόδων στο χρόνο t+ σε σχέση με την τιμή των εισόδων στο χρόνο t, για ένα flip-flop MKM - 47 Χαρακτηριστικός Πίνακας και Χαρακτηριστική Εξίσωση (συν.) T T Flip-Flop Flop (από JK Flip-Flop με J=K=T) Q(t+) 0 Q(t) Q(t) Λειτουργία Καμία Αλλαγή/Hold Συμπλήρωμα Χαρακτηριστική Εξίσωση: Q(t+) = T Q(t) + TQ(t) MKM - 48 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 2
Χαρακτηριστικός Πίνακας και Χαρακτηριστική Εξίσωση (συν.) Ποιες είναι οι χαρακτηριστικές εξισώσεις για το JK flip-flop και το R flip-flop; Ασύγχρονο et/reset Πολλές φορές είναι επιθυμητό να μπορούμε να θέσουμε την τιμή ενός FF (set ή reset) ανεξάρτητα με το ρολόι ασύγχρονο set/reset Παράδειγμα: Στο ξεκίνημα (power power-up) χρησιμοποιούμε ασύγχρονο set/reset έτσι ώστε να ξεκινούμε από μια γνωστή κατάσταση (known state). Ασύγχρονο set == άμεσο set == Preset Ασύγχρονο reset == άμεσο reset == lear MKM - 49 MKM - 50 Ασύγχρονο et/reset (συν.) Παράμετροι Χρονισμού για Flip-Flops Flops J K R IEEE καθιερωμένο γραφικό σύμβολο για JK-FF με άμεσα set & reset n υπονοεί ότι το n ελέγχει όλα τα άλλα σήματα με σήμανση που ξεκινά από n. Σε αυτή την περίπτωση, το ελέγχει τα J and K. R Πίνακας Λειτουργίας J K Q(t+) 0 X X X Preset 0 X X X 0 lear 0 0 X X X Ακαθόριστο 0 0 Q(t) Hold 0 0 Reset 0 et Q(t) -- Συμπλήρωμα t s -setup time: απαραίτητος χρόνος όπου οι είσοδοι του FF πρέπει να παραμείνουν σε σταθερές τιμές, πριν την πυροδότηση, για να παρατηρηθεί αλλαγή στην έξοδο. Master-slave: ίσο με το πλάτος του παλμού πυροδότησης Edge-triggered: ίσο με ένα διάστημα, πολύ μικρότερο από αυτό του πλάτους του παλμού πυροδότησης t h - hold time: απαραίτητος χρόνος όπου οι είσοδοι του FF πρέπει να κρατήσουν τις τιμές τους, μετά την πυροδότηση Συχνά μπορεί να αγνοηθεί (κοντά στο 0). t px - propagation p delay: καθυστέρηση η μετάδοσης, δηλ.,, χρόνος από την πυροδότηση μέχρι την σταθεροποίηση της νέας τιμής στην έξοδο Μετριέται από την ακμή που πυροδοτεί την αλλαγή στην έξοδο μέχρι την εμφάνιση της αλλαγής στην έξοδο Απαραίτητα, t px > t h MKM - 5 MKM - 52 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 3
Παράμετροι Χρονισμού για Flip-Flops Flops t s -setup time t h - hold time t w - clock pulse width t px -propa- gation delay t PHL -High-to-Low t PLH -Low-to-High t pd -max (t PHL, t PLH PLH ) (b) Edge-triggered (negative edge) MKM - 53 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 4