Κεφάλαιο 6 Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα
6.1 Εισαγωγή Η εκτέλεση διαδοχικών λειτουργιών απαιτεί τη δημιουργία κυκλωμάτων που μπορούν να αποθηκεύουν πληροφορίες, στα ενδιάμεσα στάδια των λειτουργιών αυτών. Αυτού του τύπου τα κυκλώματα ονομάζονται ακολουθιακά. Στο παρακάτω φαίνεται το σχηματικό διάγραμμα ενός ακολουθιακού κυκλώματος. Σχηματικό διάγραμμα ακολουθιακού κυκλώματος Ένα ακολουθιακό κύκλωμα περιλαμβάνει συνδυαστικά κυκλώματα και τουλάχιστον ένα στοιχείο μνήμης. Τα στοιχεία μνήμης είναι κυκλώματα που έχουν τη δυνατότητα να αποθηκεύουν πληροφορίες σε δυαδική μορφή. Οι αποθηκευμένες πληροφορίες, σε οποιαδήποτε χρονική στιγμή, καθορίζουν την κατάσταση του ακολουθιακού κυκλώματος τη δεδομένη στιγμή. Το ακολουθιακό κύκλωμα λαμβάνει δυαδικές πληροφορίες-δεδομένα μέσω των εισόδων του. Οι τιμές των εισόδων, σε συνδυασμό με την παρούσα κατάσταση των στοιχείων μνήμης, καθορίζουν τις τιμές των εξόδων του κυκλώματος και κατά συνέπεια και την επόμενη κατάσταση των στοιχείων μνήμης. Δηλαδή, η κατάσταση ενός ακολουθιακού κυκλώματος καθορίζεται από μια χρονική ακολουθία τιμών εισόδων, εσωτερικών καταστάσεων και εξόδων.
6.2 Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα Τα ακολουθιακά κυκλώματα διακρίνονται σε δύο βασικούς τύπους, ανάλογα με τις χρονικές στιγμές, κατά τις οποίες: (α) καθορίζονται οι τιμές των εισόδων και (β) αλλάζει η εσωτερική κατάσταση των κυκλωμάτων. Έτσι, ένα ακολουθιακό κύκλωμα μπορεί να είναι: Σύγχρονο: Η εφαρμογή της εισόδου, η εκτέλεση των λειτουργιών, η λήψη της εξόδου γίνεται σε καθορισμένες χρονικές στιγμές, με τη λειτουργία ενός «παλμού ρολογιού» Ασύγχρονο: Οι αλλαγές κατάστασης δεν γίνονται σε καθορισμένους χρόνους αλλά σε τυχαίους χρόνους που καθορίζονται από το κύκλωμα και μόνο. Ο συγχρονισμός στα σύγχρονα κυκλώματα επιτυγχάνεται με χρήση περιοδικών παλμών ρολογιού Η σχεδίαση ασύγχρονων κυκλωμάτων είναι δύσκολη, αφού η λειτουργία τους εξαρτάται απ την καθυστέρηση διάδοσης των σημάτων μέσα στο κύκλωμα και απ τις χρονικές στιγμές μεταβολής των τιμών των εισόδων. Η επιλογή συνεπώς είναι η σχεδίαση σύγχρονων κυκλωμάτων, στα οποία ωστόσο περιέχονται και μονάδες που βασίζονται στην ασύγχρονη λογική. Τέτοιες δομικές μονάδες είναι τα ασύγχρονα στοιχεία μνήμης
που ονομάζονται μανδαλωτές και αποτελούν τη βάση για την υλοποίηση των Flip-Flop, που αποθηκεύουν πληροφορίες στα σύγχρονα κυκλώματα. Τα σύγχρονα ακολουθιακά κυκλώματα που χρησιμοποιούν παλμούς ρολογιού ως εισόδους στα στοιχεία μνήμης ονομάζονται χρονιζόμενα ακολουθιακά κυκλώματα. Οι τιμές των εξόδων των στοιχείων μνήμης (δηλ. της κατάστασής τους) μπορούν να μεταβάλλονται μόνο κατά τη διάρκεια εφαρμογής των παλμών. Όταν δεν υπάρχει παλμός ρολογιού, οι τιμές των εξόδων δεν αλλάζουν, ακόμα και αν οι τιμές των εισόδων μεταβληθούν. Τα στοιχεία μνήμης ονομάζονται Flip-Flop και είναι διατάξεις που μπορούν να αποθηκεύουν 1 bit δυαδικών δεδομένων Σχηματικό διάγραμμα σύγχρονου ακολουθιακού κυκλώματος Ένα Flip-Flop διαθέτει μία ή δύο εξόδους. Η μία αντιστοιχεί στην κανονική τιμή του bit που αποθηκεύεται, ενώ η δεύτερη έξοδος είναι «προαιρετική» και αντιστοιχεί στο συμπλήρωμα της τιμής του αποθηκευμένου bit. 6.3 Μανδαλωτής SR Είναι ένα κύκλωμα που αποτελείται από δύο πύλες NOR, που συνδυάζονται όπως φαίνεται στο παρακάτω σχήμα
Μανδαλωτής SR με πύλες ΝΟR. Ο μανδαλωτής έχει δύο εισόδους, που χαρακτηρίζονται ως S (set) και R (Reset), καθώς και δύο αξιοποιήσιμες εξόδους, που καθορίζουν την κατάσταση του κυκλώματος. Η κατάσταση Q = 1 και Q = 0, του μανδαλωτή χαρακτηρίζεται ως κατάσταση set. Η κατάσταση Q = 0 και Q = 1, του μανδαλωτή χαρακτηρίζεται ως κατάσταση Reset. Οι έξοδοι είναι η μία συμπλήρωμα της άλλης. Όταν και οι δύο είσοδοι πάρουν την τιμή 1 ταυτόχρονα, τότε προκύπτει μία μηεπιτρεπτή κατάσταση. Η λειτουργία του μανδαλωτή περιγράφεται στον παρακάτω πίνακα Είσοδοι 6.4 Μανδαλωτής S R Έξοδοι S R Q Q Κατάσταση 1 0 1 0 Set 0 0 1 0 Store 0 1 0 1 Reset 0 0 0 1 Store 1 1 0 0 Μη-επιτρεπτή Λειτουργία του μανδαλωτή SR Είναι ένα κύκλωμα που αποτελείται από δύο πύλες ΝΑΝD, που συνδυάζονται όπως φαίνεται στο παρακάτω σχήμα
Μανδαλωτής S R με πύλες ΝΑΝD H λειτουργία του μανδαλωτή περιγράφεται στον παρακάτω πίνακα Είσοδοι Έξοδοι S R Q Q Κατάσταση 0 1 1 0 Set 1 1 1 0 Store 1 0 0 1 Reset 1 1 0 1 Store 0 0 1 1 Μη-επιτρεπτή Λειτουργία του μανδαλωτή S R 6.5 Χρονιζόμενος μανδαλωτής SR Η λειτουργία του βασικού κυκλώματος του μανδαλωτή SR μπορεί να τροποποιηθεί, με χρήση μιας πρόσθετης εισόδου ελέγχου (παλμός ρολογιού), που καθορίζει το πότε μεταβάλλεται η κατάστασή του. Το σχηματικό διάγραμμα του κυκλώματος φαίνεται στο παρακάτω σχήμα. Χρονιζόμενος Μανδαλωτής SR Ο πίνακας λειτουργίας του είναι ο παρακάτω.
Είσοδοι Έξοδοι C S R Q Q Κατάσταση 0 X X Q Q Store 1 0 0 Q Q Store 1 0 1 0 1 Reset 1 1 0 1 0 Set 1 1 1 1 1 Μη-επιτρεπτή Λειτουργία του χρονιζόμενου μανδαλωτή S R Όταν και οι τρεις είσοδοι βρεθούν στην τιμή 1, οι τιμές των εισόδων του βασικού μανδαλωτή γίνονται 0. Αυτό οδηγεί σε μη-επιτρεπτή κατάσταση, αφού και οι δύο έξοδοι παίρνουν τιμή 1. 6.6 Flip-Flop Πράγματι, για δεδομένες τιμές της εισόδου θα πάρουμε πολύ σύντομα (σε χρόνο που αντιστοιχεί στο χρόνο καθυστέρησης της πύλης) στην έξοδο την τιμή της συνάρτησης ί για τη συγκεκριμένη είσοδο. Μέχρι τώρα εξετάσαμε μια κατηγορία ψηφιακών κυκλωμάτων, τα συνδυαστικά κυκλώματα. Βασικό χαρακτηριστικό τους είναι ότι η έξοδός τους κάθε χρονική στιγμή είναι μια λογική συνάρτηση της εισόδου τους και μόνο αυτής. Ας θεωρήσουμε το απλούστατο λογικό κύκλωμα μιας πύλης ΑΝD όπως φαίνεται στο παρακάτω σχήμα Ας υποθέσουμε τώρα ότι μετατρέπουμε το προηγούμενο κύκλωμα του σχήματος στο εξής νέο του παρακάτω σχήματος
Αυτό που κάναμε στο προηγούμενο κύκλωμα ήταν ότι προσθέσαμε ένα δρόμο ανάδρασης στη συνιστώσα y της εισόδου. Δηλαδή, ένα δρόμο που συνεπάγεται ότι η τιμή της εξόδου f δρα αναδρομικά για τον υπολογισμό της νέας τιμής της. Έτσι αν υποθέσουμε ότι μια χρονική στιγμή t η έξοδος του κυκλώματος έχει τιμή f(t), την επόμενη στιγμή t+1 (όπου η μοναδιαία χρονική καθυστέρηση αντιστοιχεί στο χρόνο καθυστέρησης του κυκλώματος) η συνάρτηση θα είναι αυτή της σχέσης f(t+1) = xf(t) Με άλλα λόγια με το παραπάνω κύκλωμα πετύχαμε το ότι η έξοδος δεν είναι συνάρτηση μόνο της εισόδου αλλά και της εξόδου της προηγούμενης χρονικής στιγμής. Δηλαδή, πετύχαμε μια εξάρτηση από το χρόνο της εξόδου του κυκλώματος. Είναι φανερό ότι το κύκλωμα μπορούσε να είναι τέτοιο, ώστε να κρατάει την ίδια έξοδο για απεριόριστο χρονικό διάστημα (όσο το τροφοδοτούμε με ισχύ), μέχρι κάποιο σήμα εισόδου να το κάνει να αλλάξει κατάσταση. Στη συνέχεια του κεφαλαίου θα περιγράψουμε μια κατηγορία τέτοιων κυττάρων αποθήκευσης δυαδικής πληροφορίας, που λέγονται flip-flop και τα οποία χρησιμοποιούνται ευρύτατα σε όλα τα ψηφιακά συστήματα με μνήμη. Το βασικό λογικό κύκλωμα ενός flip-flop αποτελείται από δύο πύλες ΝΟR(ή ισοδύναμα ΝΑΝD) που η έξοδος καθεμιάς είναι μια είσοδος της
άλλης. Οι εξωτερικές είσοδοι των πυλών είναι η είσοδος θέσεως S (set) και η είσοδος επαναφοράς R (reset). Οι έξοδοι των δύο πυλών είναι συμπληρωματικές και συμβολίζονται συνήθως με Q και Q. Η έξοδος Q ονομάζεται και κατάσταση του flip-flop. Το flip-flop αυτό χαρακτηρίζεται ως βασικό, γιατί αποτελεί τη βάση όλων των υπολοίπων flip-flop που θα αναλυθούν στις επόμενες παραγράφους. Το λογικό κύκλωμα του βασικού flip-flop με πύλες ΝΟR και ο πίνακας αληθείας του φαίνονται στο παρακάτω σχήμα. Όταν η είσοδος του flip-flop είναι S = 1 και R = 1, η τιμή Q(t+1) είναι ακαθόριστη, γιατί έχουμε ταύτιση των συνιστωσών εξόδου Q και Q', οπότε η συγκεκριμένη είσοδος δεν επιτρέπεται. Παρατηρούμε ότι το βασικό flip-flop λειτουργεί σαν κύτταρο μνήμης, όταν R = 0 και S = 0. Πράγματι, στην περίπτωση αυτή έχουμε: Q(t+1) = ΝΟR(R,Q'(t)) = ΝΟR(0,Q'(t)) = ΝΟR(Q'(t)) = Q(t) και Q (t+1) = ΝΟR(R,Q (t)) = ΝΟR(0,Q (t)) = ΝΟR(Q (t)) = Q (t) Με όμοιο τρόπο μπορεί να δειχτεί ότι,όταν η είσοδος είναι R = 1 και S = 0, έχουμε επαναφορά της κατάστασης του flip-flop στη στάθμη 0, ενώ, όταν είναι R = 0 και S = 1, έχουμε θέση αυτής στη στάθμη 1.
Το λογικό κύκλωμα του βασικού flip-flop με πύλες ΝΑΝD και ο πίνακας αληθείας του φαίνονται στο παρακάτω σχήμα. 3.6.1 RS Flip-Flop Συνήθως επιθυμούμε η διέγερση του flip-flop να μη γίνεται οποιαδήποτε στιγμή εφαρμόζεται ένας παλμός στον ακροδέκτη R ή στον ακροδέκτη S της εισόδου, αλλά σε μια ορισμένη χρονική στιγμή που καθορίζεται από έναν ωρολογιακό παλμό CΡ (clock pulse). Για να πετύχουμε κάτι τέτοιο, μεταβάλλουμε το κύκλωμα του βασικού flip-flop και παίρνουμε έτσι το συγχρονιζόμενο flip-flop που έχει έναν επιπλέον ακροδέκτη εισόδου για τον ωρολογιακό παλμό. Σ αυτό το flipflop, που λέγεται και DC. συζευγμένο (DC coupled), συνδέονται δύο πύλες ΝΑΝD (ή ΝΟR) στους ακροδέκτες της εισόδου έτσι, ώστε ο παλμός του ρολογιού να είναι αυτός που επιτρέπει με μια λογική πράξη τους εξωτερικούς ακροδέκτες εισόδου να περνούν τις τιμές τους στο εσωτερικό του flip-flop. Ένα λογικό κύκλωμα με πύλες ΝΑΝD ενός τέτοιου RS φαίνεται στο παρακάτω σχήμα.
Με την παραπάνω τροποποίηση του βασικού flip-flop. επιτυγχάνουμε η διέγερση του flip-flop. να γίνεται μόνο κατά τη διάρκεια του παλμού CΡ και όχι οποιαδήποτε χρονική στιγμή. Γενικά τα συγχρονιζόμενα flip-flop. χρησιμοποιούνται όπου ο συγχρονισμός του κυκλώματος παίζει πρωταρχικό ρόλο στη λειτουργία του, όπως για παράδειγμα στους ηλεκτρονικούς υπολογιστές. Ξεκινώντας από το RS flip-flop. μπορούμε να εξετάσουμε τρία άλλα είδη flip-flop. που λειτουργούν παρόμοια με τα RS 3.6.2 JK Flip-Flop Πρόκειται ουσιαστικά για μια εξελιγμένη μορφή του RS flip-flop, αφού η μόνη του διαφορά από το τελευταίο είναι ότι δέχεται επιπλέον και την είσοδο R = 1, S = 1 (που ήταν απαγορευμένη στο RS,εξαιτίας της απροσδιοριστίας που συνεπαγόταν για την έξοδο Q), η οποία οδηγεί το flip-flop σε κατάσταση συμπληρωματική της προηγούμενης. Μπορούμε να φανταστούμε το JΚ flip-flop σαν ένα κύκλωμα με ένα συνδυαστικό μέρος και ένα RS flip-flop. Το λογικό κύκλωμα και ο πίνακας αληθείας ενός JΚ flip-flop παρουσιάζονται παρακάτω.
3.6.3 T Flip-Flop Η ονομασία του Τ flip-flop προέρχεται από τη δυνατότητα του συγκεκριμένου flip-flop να αναστρέφει (toggle) την κατάσταση. Και το Τ flip-flop έχει έναν ακροδέκτη εισόδου Τ και έναν για το CΡ και αντιστρέφει την κατάστασή του, όταν η είσοδός του γίνει Τ = 1, ενώ διατηρεί την προηγούμενη κατάστασή του, όταν η είσοδος γίνει Τ = 0. Είναι εύκολο να διαπιστώσει κανείς ότι κάτι τέτοιο γίνεται με ένα JΚ flipflop που έχει βραχυκυκλωμένους τους ακροδέκτες της εισόδου του, όπως στο παρακάτω σχήμα. 3.6.4 D Flip-Flop Το D flip-flop παίρνει το όνομά του από τη δυνατότητά του να κρατά δεδομένα. Έχει έναν ακροδέκτη εισόδου D και έναν για το CΡ και η λειτουργία του είναι η μεταφορά της τιμής της εισόδου στην έξοδο. Παρατηρώντας τον πίνακα αληθείας του RS flip-flop, βλέπουμε ότι η δεύτερη και η τρίτη γραμμή εξυπηρετούν τη λειτουργία του D flip-flop, με την έννοια ότι η συνιστώσα S της εισόδου μεταφέρεται στην έξοδο Q. Επομένως το D flip-flop μπορεί να υλοποιηθεί με ένα RS flip-flop με το
ακροδέκτη R της εισόδου του συνδεδεμένο με τον S μέσω ενός αντιστροφέα έτσι, ώστε το νέο flip-flop να λειτουργεί στη δεύτερη και την τρίτη γραμμή του πίνακα αληθείας του RS flip-flop, όπως φαίνεται στο παρακάτω σχήμα. Είναι φανερό ότι θα μπορούσαμε να χρησιμοποιήσουμε JK flip-flop αντί για RS. Το D flip-flop είναι μια διάταξη καθυστέρησης, δηλαδή καθυστερεί τη μεταφορά ενός bit πληροφορίας κατά έναν ωρολογιακό παλμό.