ΗΜΥ-211: Εργαστήριο Σχεδιασμού Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2009 Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches), Flip-FlopsFlops και Μετρητές Ριπής Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ακολουθιακά Κυκλώματα (συν.) Κυκλώματα που εξετάσαμε μέχρι τώρα Κυκλώματα που αποθηκεύουν πληροφορίες Καταστάσεις Χρόνου MKM - 2 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 1
Ακολουθιακή Λογική: Βασικές έννοιες Τα κυκλώματα ακολουθιακής λογικής έχουν την ικανότητα να «θυμούνται» προηγούμενες καταστάσεις του κυκλώματος και προηγούμενες τιμές στις εισόδους. Έξοδοι του κυκλώματος μπορούν να χρησιμο- ποιηθούν ως νέες τιμές εισόδου στο κύκλωμα (κυκλώματα μ ανάδρασης = feedback circuits). Τα στοιχεία αποθήκευσης είναι κυκλώματα που μπορούν να αποθηκεύουν δυαδική πληροφορία: μνήμη. MKM - 3 Σύγχρονα vs. Ασύγχρονα Κυκλώματα Υπάρχουν 2 τύποι ακολουθιακών κυκλωμάτων: Σύγχρονο (latch mode) ακολουθιακό κύκλωμα: Η συμπεριφορά του ορίζεται βάσει των τιμών στις εξόδους και στα στοιχεία μνήμης, σε διακριτές στιγμές του χρόνου. Αυτού του είδους τα κυκλώματα πετυχαίνουν συγχρονισμό χρησιμοποιώντας ένα σήμα χρονισμού, το γνωστό ως ρολόι. Ασύγχρονο (fundamental mode) ακολουθιακό κύκλωμα: Η συμπεριφορά του ορίζεται από την σειρά των αλλαγών των τιμών στις εισόδους σε συνεχή χρόνο. Οι τιμές των εξόδων μπορούν να αλλάξουν ανά πάσα στιγμή, χωρίς κανένα συγκεκριμένο συγχρονισμό (clockless). MKM - 4 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 2
Σήμα Ρολογιού Γεννήτρια Ρολογιού: Περιοδικό σήμα από παλμούς ρολογιού Σήματα με ίδια περίοδο MKM - 5 Σύγχρονα Ακολουθιακά Κυκλώματα: Flip-flops για καταστάσεις μνήμης Τα flip-flops flops έχουν ως εισόδους σήματα από το συνδυαστικό κομμάτι του κυκλώματος καθώς και σήμα από ένα ρολόι με περιοδικούς παλμούς μεταξύ αμετάβλητων περιοδικών διαστημάτων. MKM - 6 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 3
Στοιχεία Μνήμης Buffers Η αποθηκεμένη τιμή δεν μπορεί να αλλάξει Inverters MKM - 7 SR latch (από NOR) -- SR: set-reset, δισταθή στοιχείο με 2 εισόδους. Προσέξτε την «ακαθόριστη» τιμή για S=R=1. -- ιαβάζοντας τη λογική: Q = (R+Q ) και Q = (S+Q) MKM - 8 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 4
R=S=1?? Ακαθόριστη έξοδος γιατί: Όταν S=R=1, τότε και οι 2 έξοδοι γίνονται 0. Εάν και οι 2 έξοδοι είναι 0, η κατάσταση του SR latch εξαρτάται από την είσοδο που παραμένει στην τιμή 1 για περισσότερο χρόνο, πριν γίνει 0. Άρα είναι όντως,, ακαθόριστη κατάσταση ΠΡΕΠΕΙ να αποφευχθεί. MKM - 9 SR Latches MKM - 10 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 5
Προσομοίωση SR Latch MKM - 11 SR Latch με σήμα Ελέγχου Το Latch είναι ευαίσθητο σε αλλαγές στις εισόδους ΜΟΝΟ όταν το =1 Σημαντικό στοιχείο, χρησιμοποιείται για σχεδιασμό άλλων latches και flip-flops flops Θεωρείται και ως flip-flop, flop, άλλα όχι βάση του ορισμού του βιβλίου σας MKM - 12 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 6
SR Latch με σήμα Ελέγχου (συν.) S =LK LK R S R Q Q S R LK S R Q Q 0 0 1 1 1 Q 0 Q 0 Store 0 1 1 1 0 0 1 Reset 1 0 1 0 1 1 0 Set 1 1 1 0 0 1 1 Disallowed X X 0 1 1 Q 0 Q 0 Store MKM - 13 D Latch Ένας τρόπος αποφυγής των ανεπιθύμητων ακαθόριστων καταστάσεων στο RS flip-flop flop, είναι η εξασφάλιση ότι οι είσοδοι S και R δεν θα πάρουν ποτέ την τιμή 1 ταυτόχρονα. Αυτό επιτυγχάνεται με ένα SR-latch latch, όπου S=D και R=D D-latch: MKM - 14 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 7
D Latch (συν.) S D S Q LK R R Q D LK Q Q 0 1 0 1 1 1 1 0 X 0 Q 0 Q 0 S R LK Q Q 0 0 1 Q 0 Q 0 Store 0 1 1 0 1 Reset 1 0 1 1 0 Set 1 1 1 1 1 Disallowed X X 0 Q 0 Q 0 Store MKM - 15 Flip-FlopsFlops Τα Latches είναι διαυγή (transparent) δηλ., οποιαδήποτε αλλαγή στην κατάσταση του latch είναι αντιληπτή και στις εξόδους (αν υπάρχει σήμα ελέγχου, αυτό ισχύει κατά τη διάρκεια που =1). Αυτό προκαλεί προβλήματα συγχρονισμού, αφού η κατάσταση ενός latch μπορεί να αλλάξει πολλαπλές φορές όταν =1! Λύση: Χρησιμοποιούμε latches για τη δημιουργία των flip- flops που μπορούν να ανταποκριθούν (update) ΜΟΝΟ σε ΣΥΓΚΕΚΡΙΜΕΝΕΣ χρονικές στιγμές (όχι ανά πάσα στιγμή ή κατά τη διάρκεια ενός διαστήματος). MKM - 16 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 8
Πυροδότηση (Triggering) Latch/FF Ο μηχανισμός που επιτρέπει σε ένα στοιχείο μνήμης (latch ή FF) να αλλάξει κατάσταση Τρόποι Πυροδότησης: Ασύγχρονα, δηλ. εντελώς διαυγή (π.χ. SR-latch) latches Πυροδότηση-επιπέδου (level trigger, =1) (π.χ. SR-latch ή D-latch με σήμα ελέγχου ) Master-Slave (π.χ. SR-FF, D-FF) FFs Πυροδότηση-ακμής: θετική ή αρνητική ακμή του (rising or falling edge trigger, = ή = ) (π.χ. SR-FF, D-FF) MKM - 17 Εναλλακτικές λύσεις στην επιλογή FF Τύποι FF: SR D JK Τρόποι ενεργοποίησης (triggering) triggering): Master-Slave: χρησιμοποιεί πυροδότηση-επιπέδου αλλά με 2 latches, έτσι ώστε η κατάσταση του FF αλλάζει μόνο μια φορά σε μία περίοδο του ρολογιού Ενεργοποίηση-ακμής: θετική ήαρνητική ακμή του (rising or falling edge trigger, = ή = ) MKM - 18 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 9
Master-Slave SR-FF χρησιμοποιώντας SR latches Χρησιμοποιεί πυροδότηση-επιπέδου. Κατάσταση Q=Y, όταν =0. Επίσης, τo Υ δεν μπορεί να αλλάξει τιμή όταν =0. MKM - 19 Master-Slave SR-FF χρησιμοποιώντας SR latches (συν.) S R Q Q 0 0 1 Q 0 Q 0 Store 0 1 1 0 1 Reset 1 0 1 1 0 Set 1 1 1 1 1 Disallowed X X 0 Q 0 Q 0 Store Όταν =1, ο master ενεργοποιείται και φυλάει νέα δεδομένα, και ο slave αποθηκεύει παλιά δεδομένα. Όταν =0, η κατάσταση του master αποθηκεύεται στον slave (Q=Y), ενώ ο master δεν είναι ευαίσθητος σε νέα δεδομένα. Master Slave MKM - 20 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 10
Master-Slave JK Flip-FlopFlop MKM - 21 Πρόβλημα 1. Η αλλαγή στις εξόδους του FF έχει καθυστέρηση κατά ½ περίοδο του ρολογιού το κύκλωμα γίνεται πιο αργό. 2. S και/ή R μπορούν να αλλάξουν πολλαπλές φορές όταν =1 Q = 1, S = 0 1 0 και R = 0 Master latch = 1 (set) Slave = 1 (set), όταν =0 Q = 1, S = 0 1 0 και R = 0 1 0 Master latch = 1 (set) και μετά = 0 (reset) Slave = 0 (reset), όταν =0 Γνωστό ως «1 s catching» MKM - 22 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 11
Λύση: Πυροδότηση Ακμής Ένα ακμοπυροδοτούμενο FF, αγνοεί τις αλλαγές κατά τη διάρκεια ενός παλμού. Πυροδοτείται μόνο όταν υπάρχει μετάβαση της τιμής του ρολογιού (clock transition, / ) Υλοποίηση ακμοπυροδοτούμενων FF: Άμεσα, σε επίπεδο ηλεκτρονικού κυκλώματος Με master-slave slave D-FF MKM - 23 Ακμοπυροδοτούμενα Flip-Flops Flops Συνδέουμε ένα D-latch με πυροδότηση-επιπέδου (master) με ένα SR-latch με πυροδότηση-επιπέδου (slave) και συμπληρωματικά ρολόγια. D-FF με Θετική Ακμοπυροδότηση MKM - 24 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 12
JK FF με Θετική Ακμοπυροδότηση MKM - 25 Καθιερωμένα Γραφικά Σύμβολα Μανδαλωτές (latches) S S D D R R SR-latch S R -latch D-latch με =1 D-latch με =0 MKM - 26 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 13
Καθιερωμένα Γραφικά Σύμβολα (συν.) Master-Slave Flip Flops -- Πυροδότηση Επιπέδου (level-triggering) S R πυροδοτούμενο SR J K πυροδοτούμενο JK S R πυροδοτούμενο SR J K πυροδοτούμενο JK MKM - 27 Καθιερωμένα Γραφικά Σύμβολα (συν.) Ακμοπυροδοτούμενα (Edge-triggered) Flip Flops D D Ακμοπυροδοτούμενο D Ακμοπυροδοτούμενο D J K Ακμοπυροδοτούμενο JK J K Ακμοπυροδοτούμενο JK MKM - 28 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 14
Χαρακτηριστικός Πίνακας (haracteristic Table) Καθορίζει τις λογικές ιδιότητες/χαρακτηριστικά / ενός flip-flop flop (όπως ένας πίνακας αληθείας για μια λογική πύλη). Q(t) παρούσα κατάσταση στο χρόνο t Q(t+1) επόμενη κατάσταση στο χρόνο t+1 MKM - 29 Χαρακτηριστικός Πίνακας (συν.) Χρόνος t εννοείται (δηλ. J(t) και K(t)) J K Q(t+1) 0 0 Q(t) JK Flip-FlopFlop Λειτουργία Καμία Αλλαγή/Hold 0 1 0 Reset 1 0 1 Set 1 1 Q(t) Συμπλήρωμα MKM - 30 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 15
Χαρακτηριστικός Πίνακας (συν.) S R Q(t+1) 0 0 Q(t) SR Flip-FlopFlop Λειτουργία Καμία Αλλαγή/Hold 0 1 0 Reset 1 0 1 Set 1 1? Ακαθόριστο/Άκυρο MKM - 31 Χαρακτηριστικός Πίνακας (συν.) D D Flip-FlopFlop Q(t+1) Λειτουργία 0 0 Set 1 1 Reset Χαρακτηριστική Εξίσωση: Q(t+1) = D(t) (haracteristic Equation) -- Εκφράζει την τιμή των εξόδων στο χρόνο t+1 σε σχέση με την τιμή των εισόδων στο χρόνο t, για ένα flip-flop MKM - 32 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 16
Ασύγχρονο Set/Reset Πολλές φορές είναι επιθυμητό να μπορούμε να θέσουμε την τιμή ενός FF (set ή reset) ανεξάρτητα με το ρολόι ασύγχρονο set/reset Παράδειγμα: Στο ξεκίνημα (power-up) χρησιμοποιούμε ασύγχρονο set/reset έτσι ώστε να ξεκινούμε από μια γνωστή κατάσταση (known state). Ασύγχρονο set == άμεσο set == Preset Ασύγχρονο reset == άμεσο reset == lear MKM - 33 Ασύγχρονο Set/Reset (συν.) S 1J 1K R 1 IEEE καθιερωμένο γραφικό σύμβολο για JK-FF με άμεσα set & reset n υπονοεί ότι το n ελέγχει όλα τα άλλα σήματα με σήμανση που ξεκινά από n. Σε αυτή την περίπτωση, το 1 ελέγχει τα 1J and 1K. S R 1 Πίνακας Λειτουργίας 1J 1K Q(t+1) 0 1 X X X 1 Preset 1 0 X X X 0 lear 0 0 X X X Ακαθόριστο 1 1 0 0 Q(t) Hold 1 1 0 1 0 Reset 1 1 1 0 1 Set 1 1 1 1 Q(t) -- Συμπλήρωμα MKM - 34 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 17
Μετρητές (ounters) Ένας μετρητής είναι ένας καταχωρητής που «μετρά» μια προκαθορισμένη ακολουθία καταστάσεων, βάση της εφαρμογής παλμών του ρολογιού. Οι μετρητές κατηγοριοποιούνται σε: Μετρητές Ριπής: Το ρολόι του συστήματος ενώνεται στην είσοδο ρολογιού του LSB FF. Για τα υπόλοιπα FFs, η έξοδος ενός FF ενώνεται στην είσοδο ρολογιού του επόμενου σημαντικού FF. εν υπάρχει κοινό ρολόι. Χαμηλή κατανάλωση ισχύος. Γιατί; Σύγχρονους Μετρητές: Όλα τα FFs έχουν κοινό ρολόι Χρήση λογικής για υλοποίηση της επόμενης κατάστασης. MKM - 35 Μετρητής Ριπής (Ripple ounter) Πως δουλεύει; Στην θετική ακμή στην είσοδο του ρολογιού του Α, το Α συμπληρώνεται Η είσοδος ρολογιού για το B είναι το συμπλήρωμα της εξόδου του A Όταν το Α αλλάξει από 1 σε 0 (αρνητική ακμή), υπάρχει θετική ακμή (0 σε 1) στην είσοδο ρολογιού του Β, προκαλώντας το Β να συμπληρωθεί Προς-τα-πάνω (upward counting). Γιατί; lock Reset MKM - 36 A B D D R R 0 1 2 3 0 1 A B Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 18
Μετρητής Ριπής (συν.) Τα βέλη δείχνουν την σχέση αιτίας- αποτελέσματος P από την προηγούμενη διαφάνεια A Η Η αντίστοιχη B ακολουθία καταστάσεων είναι: 0 1 2 3 0 1 (B,A) = (0,0), (0,1), (1,0), (1,1), (0,0), (0,1), Κάθε επιπρόσθετο bit,, D, συμπεριφέρεται έ όπως το bit B, αλλάζοντας 50% λιγότερο συχνά από το προηγούμενο bit. Για 3 bits: (,B,A) = (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1), (0,0,0), MKM - 37 Μετρητής Ριπής (συν.) lock-to-output καθυστέρηση. Πόση είναι, για n-ffs; ripple effect Τα βέλη δείχνουν την σχέση αιτίας- αποτελέσματος P από την προηγούμενη διαφάνεια A Η Η αντίστοιχη B ακολουθία καταστάσεων είναι: 0 1 2 3 0 1 (B,A) = (0,0), (0,1), (1,0), (1,1), (0,0), (0,1), Κάθε επιπρόσθετο bit,, D, συμπεριφέρεται έ όπως το bit B, αλλάζοντας 50% λιγότερο συχνά από το προηγούμενο bit. Για 3 bits: (,B,A) = (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1), (0,0,0), MKM - 38 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 19
Άλλο παράδειγμα: Μετρητής Ριπής προς-τα-πάνω 4ων-bit, με JK FFs J=K=1 Q i (t+1) = Q i (t) FFs είναι αρνητικά ακμοπυροδοτούμενα Θυμηθείτε... MKM - 39 Λειτουργία: Παράδειγμα (συν.) Το λιγότερο σημαντικό bit bt (Q 0 ) συμπληρώνεται σε κάθε αρνητική ακμή του ρολογιού του συστήματος. Κάθε φορά του το Q 0 αλλάζει από 1 σε 0, το Q 1 συμπληρώνεται. Κάθε φορά του το Q 1 αλλάζει από 1 σε 0, το Q 2 συμπληρώνεται. Κάθε φορά του το Q 2 αλλάζει από 1 σε 0, το Q 3 συμπληρώνεται, MKM - 40 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 20
Μετρητής Ριπής προς-τα-κάτω 4ων-bit με JK-FFs Χρησιμοποιήστε ασύγχρονο Set (ή Preset) (S) για να ξεκινήσει από 1111. Εναλλακτικοί σχεδιασμοί: Αλλαγή της ακμοπυροδότησης σε θετική Ένωση της συμπληρωμένης εξόδου του κάθε FF στην είσοδο ρολογιού του επόμενου σημαντικού FF στη σειρά MKM - 41 Προσομοίωση MKM - 42 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 21