Σχεδίαση κυκλωμάτων ακολουθιακής λογικής Βασικές αρχές Σχεδίαση Latches και flip-flops Γιώργος Δημητρακόπουλος Δημοκρίτειο Πανεπιστήμιο Θράκης Φθινόπωρο 2013 Ψηφιακά ολοκληρωμένα κυκλώματα 1
Ακολουθιακή λογική Συνδιαστική λογική Η έξοδος εξαρτάται μόνο από τις τρέχουσες εισόδους Ακολουθιακή λογική Η έξοδος εξαρτάται από την τρέχουσα τιμή των εισόδων και από τις προηγούμενες εξόδους Χρειαζόμαστε ένα τρόπο να διαχωρίσουμε μεταξύ του παρελθόντος, της τρέχουσας χρονικής στιγμής και των μελλοντικών χρονικών στιγμών Kατάσταση του ακολουθιακού κυκλώματος Για παράδειγμα FSMs, pipeline Ψηφιακά ολοκληρωμένα κυκλώματα 2
Παράδειγμα ακολουθιακής λογικής (1) Με το πάτημα του κουμπιού ανάβει το λαμπάκι Το λαμπάκι παραμένει αναμμένο Το λαμπάκι σβήνει με το πάτημα του κουμπιού Cancel Ψηφιακά ολοκληρωμένα κυκλώματα 3
Παράδειγμα ακολουθιακής λογικής (2) Η απλή συνδυαστική υλοποίηση οδηγεί σε αδιέξοδο Πρέπει να θυμόμαστε την κατάσταση της εισόδου και με κάποιο τρόπο να την επανατροφοδοτήσουμε στην είσοδο Ψηφιακά ολοκληρωμένα κυκλώματα 4
Παράδειγμα ακολουθιακής λογικής (3) Η έξοδος μέσω ενός καλωδίου οδηγείται ξανά στην είσοδο ΠΟΛΥ ΕΠΙΚΥΝΔΥΝΟ ΣΤΗ ΓΕΝΙΚΗ ΠΕΡΙΠΤΩΣΗ Ψηφιακά ολοκληρωμένα κυκλώματα 5
Ακολουθιακή συμπεριφορά S=1, R=0 => Q=1 Ψηφιακά ολοκληρωμένα κυκλώματα 6
Ακολουθιακή συμπεριφορά S=0, R=1 => Q=0 Ψηφιακά ολοκληρωμένα κυκλώματα 7
Ακολουθιακή συμπεριφορά S=0, R=0, Q δεν αλλάζει Θυμάται την παλιά του τιμή Ψηφιακά ολοκληρωμένα κυκλώματα 8
Ακολουθιακή συμπεριφορά S=0, R=0, Q δεν αλλάζει Θυμάται την παλιά του τιμή Ψηφιακά ολοκληρωμένα κυκλώματα 9
Μετασχηματισμός Μετασχηματισμός σε συμμετρικά ζεύγη με πύλες NOR και NAND Οι έξοδοι είναι πάντα συμπληρωματικές Τα δύο ζεύγη είναι ισοδύναμα αν θεωρήσουμα Ψηφιακά ολοκληρωμένα κυκλώματα 10 αντεστραμμένες εισόδους για τις NAND πύλες
Προβληματική κατάσταση Ταλαντώσεις Με αυτή την υλοποίηση επιτρέπουμε να πατηθούν ταυτόχρονα τα Call(S) και Cancel (R) Οι έξοδοι δεν είναι η μια το συμπλήρωμα της άλλης Αν στη συνέχεια μεταβεί και το S και το R στο 0 τότε δε γνωρίζουμε τη τιμή της εξόδου Πιθανόν το κύκλωμα να οδηγήθει προσωρινά σε ταλαντώσεις και να σταθεροποιηθεί σε μια τυχαία τιμή Ψηφιακά ολοκληρωμένα κυκλώματα 11
SR latch με επίτρεψη Πρόσθεσε μια είσoδο επιτρεψης Clk Τα εσωτερικά Sint, Rint να αλλάξουν μόνο όταν Clk=1 Tα εσωτερικά Sint, Rint δεν μπορούν να είναι ταυτόχρονα 1 Clk S R Q 0 0 0 Hold 0 0 1 Hold 0 1 0 Hold 0 1 1 Hold 1 0 0 Hold 1 0 1 0 1 1 0 1 1 1 1? Eίναι η ασφαλής λειτουργία εξασφαλισμένη; Ψηφιακά ολοκληρωμένα κυκλώματα 12
Απλό latch μιας εισόδου με επίτρεψη (ρολόι) Χρησιμοποιώντας το SR latch θα θέλαμε να εμφανίσουμε μια είσοδο D και ένα σήμα ρολογιού φτιάχνοντας ένα απλό D latch Οταν D=1 γράφεται 1 To ισοδύναμο στο SR θα ήταν S=1, R=0 Οταν D=0 γράφεται 0 Το ισοδύναμο στο SR θα ήταν S=0, R=1 Με απλή παρατήρηση προκύπτει πως η ίδια ακριβώς λειτουργία επιτυγχάνεται όταν S=D και R=Db D Clk Q 0 0 Hold 0 1 0 1 0 Hold 1 1 1 Ψηφιακά ολοκληρωμένα κυκλώματα 13
Ο μανδαλωτής - latch Latch Transparent (ανοικτό): Όταν το CLK=1 H τιμή του D περνάει στο Q Latch Opaque (κλειστό): Όταν το CLK = 0 H τιμή του παγιδεύεται. Σαν να αποθηκεύει την παλιά τιμή Η βασική συμπεριφορά του μανδαλωτή μπορεί να επιτευχθεί μέσω ενός RS latch Πως μπορούμε να πάμε απευθείας στη σχεδίαση του μανδαλωτή; Ποιοι άλλοι τρόποι υπάρχουν; Ψηφιακά ολοκληρωμένα κυκλώματα 14
Η παγίδα του μανδαλωτή To latch αποτελείται από ένα διακόπτη και μια παγίδα Οταν ο διακόπτης κλειστος το latch συμπεριφέρεται σαν ενα καλώδιο Οταν ο διακόπτης ανοιγεί δεν εισέρχεται νέα πληροφορία στο latch Οταν το latch κλείσει η τελευταία τιμή που πέρασε παγιδεύεται Που κρατιέται η παγιδευμένη πληροφορία; Η πληροφορία χάνεται με την ανάγνωση ο πυκνωτής αποφορτίζεται Η πληροφορία ανατροφοδοτείται συνέχεια Ψηφιακά ολοκληρωμένα κυκλώματα 15
Ζεύγος αντιστροφέων με ανατροφοδότηση Το ζευγάρι αυτό μπορεί να αποθηκεύσει 1 bit πληροφορίας Η αποθήκευση είναι στατική δεν απαιτεί refresh O ένας αντιστροφέας βοηθάει τον άλλο ώστε να κρατηθεί η αποθηκευμένη τιμή Η εγγραφή είναι δύσκολη. Με κάποιο τρόπο πρέπει να νικηθεί ο κύκλος της ανάδράσης γράφοντας αντίθετες τιμές στις δύο πλευρές του κύκλου Ψηφιακά ολοκληρωμένα κυκλώματα 16
Πως μπορούμε να γράψουμε στο ζεύγος των αντιστροφέων Με τη διακοπή της ανάδρασης Ετσι ο ένας αντιστροφέας δε θα μάχεται για να κρατήσει ζωντανή την τιμή της ανάδρασης Με τη διακοπή της τροφοδοσίας και εγγραφή Οι αντιστοφείς θα είναι ηλεκτρικά αδύναμοι δε θα μπορέσουν να κρατήσουν τους κόμβους εξόδου στις παλιές τιμές τους Με ηλεκτρική βία Νικώντας με περισσότερο ρεύμα την ανάδραση Ανάλογα με την τιμή που θέλουμε να γράψουμε οδηγούμε είτε την δεξιά είτε την αριστερή πλυερά της ανάδρασησς στο GND Ψηφιακά ολοκληρωμένα κυκλώματα 17
Σχεδίαση latch Τεχνική 1: Διακοπή ανάδρασης Latch ανοιχτό Q Latch κλειστό Q D Q D Q CLK = 1 CLK = 0 CLK D Q κλειστό Ανοιχτό: νέες τιμές περνούν ανοιχτό κλειστό Κλειστό: Καμμιά νέα τιμή Ψηφιακά ολοκληρωμένα κυκλώματα 18
Διακοπή ανάδρασης κυκλωματικά Οι διακόπτες με υλοποιούνται με transmission gates Ελέγχονται από αντίθετες φάσεις του ρολογιού Οι φάσεις αυτές γεννιώνται τοπικά από ένα κεντρικό σήμα ρολογιού Ψηφιακά ολοκληρωμένα κυκλώματα 19
Διακοπή ανάδρασης μέσω tristate αντιστροφέα Αν αφαιρεθεί μια σύνδεση το ζευγάρι αντιστροφέας και transmission gate μετρατρέπεται σε τρι-καταστατο (tristate) αντιστροφέα H πιο αποδοτική σχεδίαση latch Ψηφιακά ολοκληρωμένα κυκλώματα 20
Διακοπή τροφοδοσίας Set-Reset Latch Set Reset Q 0 0 Hold 0 1 0 1 0 1 1 1 Illegal Μπορεί να προκαλέσει oscillations!!! Οι είσοδοι Set/Reset διακόπτουν τη σύνδεση GND των δύο αντιστροφέων που είναι κρυμμένοι στη λογική των πυλών NAND και εξαναγκάζουν την έξοδο μέσω των PMOS τρανζίστορ να κινηθεί προς το VDD Ετσι μπορεί να γίνει αλλαγή κατάστασης οι αντιστροφείς είναι ανίκανοι να οδηγήσουνε την έξοδο τους στο GND Οταν Set/Reset γίνουν ξανά 1 τότε η νέα τιμή αποθηκεύεται εξατίας της ανάδρασης Ψηφιακά ολοκληρωμένα κυκλώματα 21
Κυκλωματική υλοποιήση του D-latch μέσω RS latch Δύο σύνθετες πύλες AND-OR-Invert (AOI) σε ανάδραση Με το μετασχηματισμό του SR latch από NAND πύλες σε NOR πύλες παρατηρείστε πως δεν αποκόπτεται πλέον η γείωση από το κρυμμένο ζευγάρι αντιστροφέων Ψηφιακά ολοκληρωμένα κυκλώματα 22
Εγγραφή με ηλεκτρική βία Αφαίρεσε τις περιττές συνδέσεις των PMOS τρανζίστορ Αυτό που μένει μπορεί να αλλάξει την τιμή της ανάδρασης μόνο μέσω ηλεκτρικής βίας Πάντου προσπαθούμε να γράψουμε το λογικό 0 Το γράφουμε από τ αριστερά όταν θέλουμε να γράψουμε 0 Το γράφουμε από τα δεξιά όταν θέλουμε να γράψουμε 1 Το ζεύγος των NMOS τρανζίστορ σε σειρά πρέπει να νικήσουν τα PMOS τρανζίστορ του αντιστροφέα που μάχεται να κρατήσει την τιμή στο λογικό 1 Ψηφιακά ολοκληρωμένα κυκλώματα 23
Πόση ώρα το latch θα είναι ανοιχτό; Τα latches που σχεδιάζουμε συνεχίζουν να έχουν ένα βασικό πρόβλημα Οταν Clk=1 μέσα από πόσα latches θα ταξιδέψει ένα σήμα Εξαρτάται απο το πόσο χρόνο το Clk=1 Για το Clk_A θα διασχίσει πολλά latches Για το Clk_B θα διασχίσει λίγα latches Δύσκολο να διαλέξουμε το πλάτος του παλμού ώστε να διασχίσει μόνο ένα Η λύση θα ήταν ο παλμός να διαρκεί πολύ λίγο Να είναι μια ακμή Ψηφιακά ολοκληρωμένα κυκλώματα 24
Αναλογία χρόνου που το latch μένει ανοιχτό To πρόβλημα εμφανίζεται και στην ανατροφοδότηση της εξόδου συνδυαστικής λογικής H μπάρα πρέπει να ανέβει για λίγο ώστε να μην επιτρέψει σε περισσότερα αυτοκίνητα να περάσουν την κάθε φορά Ψηφιακά ολοκληρωμένα κυκλώματα 25
Η ακμή μπορεί να είναι κυριολεκτική Pulsed Latch Static Latch clock pulse Pulse generator To ρολόι του είναι ένας κανονικός παλμός που παράγει ο pulse generator από το πραγματικό ρολόι του συστήματος Mόνο που το πλάτος του παλμού είναι πολύ μικρό To latch ανοίγει (transparent) μόνο για όσο διαρκεί αυτός ο πολύ στενός παλμός που δημιουργείται μετά την ακμή του ρολογιού. Σε όλη την άλλη διάρκεια το latch είναι κλειστό Συμπεριφέρεται σαν να ήταν ακμυπυροδοτητό στοιχείο Ψηφιακά ολοκληρωμένα κυκλώματα 26
Λειτουργία σε δύο φάσεις Προσέθεσε και μια άλλη μπάρα η οποία θα ανοίγει σε αντίθετες χρονικές στιγμές από την πρώτη Μόνο ένα αυτοκίνητο θα βρίσκεται υποχρεωτικά στο γκισέ ανεξάρτητα από την ταχύτητα που θα ανοιγοκλείνουν οι μπάρες Η αναλογία αυτή οδηγεί στη χρήση διπλών μανδαλωτών Ψηφιακά ολοκληρωμένα κυκλώματα 27
Δύο μανδαλωτές με δύο μη-επικαλυπτόμενες φάσεις ρολογιού Προσθέτουμε ακόμη ένα μανδαλωτή ο οποίος ανοίγει όταν ο άλλος μανδαλωτής είναι κλειστός Ο υπολογιστμός οργανώνεται σε δύο βήματα ανάλογα με ποια φάση του ρολογιού φ1 ή φ2 είναι ενεργή Ψηφιακά ολοκληρωμένα κυκλώματα 28
Ενοποίηση των δύο μανδαλωτών Χρησιμοποιούμε 2 μανδαλωτές για να κρατήσουμε 1 bit πληροφορίας Επομένως με το ίδιο κόστος θα μπορούσαμε να φτιάξουμε νέα στοιχεία αποθήκευσης τα οποία θα ελέγχονταν εξωτερικά από ένα σήμα ρολογιού Οι δύο φάσεις θα γινόταν απλά οι δύο συμπληρωμάτικές εκδοχές του ρολογιού Ψηφιακά ολοκληρωμένα κυκλώματα 29
Λειτουργία στις ακμές με master-slave latch Οταν clock=0 o master ανοιχτος και ο slave κλειστός Η τιμή του Α περνάει στο Χ Η τιμή του Χ δεν περνά στην έξοδο Ζ Οταν clock = 1 o master κλειστός και ο slave ανοιχτός Η τιμή του Α δεν περνάει στο Χ Η τελευταία τιμή του Χ περνά στην έξοδο Ζ Η έξοδος εμφανίζεται να αλλάζει μετά την μετάβαση του clock από 0 σε 1 Η τιμή της εξόδου είναι η τελευταία τιμή του Α που πρόλαβε να περάσει στο Χ πριν κλείσει ο master latch Ψηφιακά ολοκληρωμένα κυκλώματα 30
Λειτουργία flip-flop Η ενεργοποίηση των flip-flops στις ακμές του ρολογιού λύνει το πρόβλημα που είχαμε με τους Latches στη σειρά (καταχωρητής ολίσθησης shift register) Στο σχήμα κάθε δεδομένο στην είσοδο ενός flip-flop περνά στην έξοδο του flip-flop στην ακμή του ρολογιού Δεν μπορεί να διασχίσει και άλλο flip-flop στη σειρά Με την ακμή του ρολογιού και τα 4 flip-flop ταυτόχρονα πέρνουν ένα δείγμα της εισόδου τους και το περνούν στην έξοδο τους. Δεν παίζει ρόλο πόση ώρα το Clk θα είναι στο λογικό 1 Παίζει μόνο ρόλο πότε θα έρθει η επόμενη ακμή (αυτό στη συνέχεια του μαθήματος) Ψηφιακά ολοκληρωμένα κυκλώματα 31
Λειτουργία flip-flop με master-slave latches Clock Cycle Α Α Α HIGH LOW B A B B A A A HIGH LOW C B B A A C C B B A A D C C B B A D D C C B B LOW HIGH LOW HIGH Ψηφιακά ολοκληρωμένα κυκλώματα 32
Προσωμοίωση κυκλώματος με flip-flop Ψηφιακά ολοκληρωμένα κυκλώματα 33
Χωρο-χρονική ανάλυση ακολουθιακών κυκλωμάτων Απλή αναπαράσταση για ευκολότερη «προσωμοίωση» της λογικής συμπεριφοράς των ακολουθιακών κυκλωμάτων Ψηφιακά ολοκληρωμένα κυκλώματα 34
Flip-Flop με Master-Slave latches Τοποθετώντας δύο από τα πιο αποδοτικά latches που σχεδιάσαμε οδηγούμαστε στο πιο ευρέως χρησιμοποιούμενο flip-flop (masterslave) Ψηφιακά ολοκληρωμένα κυκλώματα 35
Symbol Synchronous Reset Asynchronous Reset Latch Flop Αρχικοποίηση των latches και flip-flops D Q D Q reset reset Q Q reset D reset D Q reset D Q D reset Q reset reset Ψηφιακά ολοκληρωμένα κυκλώματα 36
Πλήρης επιλογή σημάτων αρχικοποίησης D set reset Q reset set Το σήμα Set οδηγεί την έξοδο στο 1 ενώ το Reset την οδηγεί στο 0 Η αλλαγή της εξόδου γίνεται ασύγχρονα, δηλαδή ανέξαρτητα της ακμής του ρολογιού Το κύκλωμα απλά επαυξάνει τη λογική των αντιστροφέων της ανάδρασης Οι πύλες που δέχονται τη φάση φ του ρολογιού επιτρέπουν την τρι-καταστατη λειτουργία της πύλης αποκόπτωντας πλήρως τη σύνδεση των υπολοίπων τρανζίστορ με τους ακροδέκτες της τροφοδοσίας και της γείωσης Ψηφιακά ολοκληρωμένα κυκλώματα 37