17. Μανδαλωτές ως στοιχεία μνήμης

Ένα στοιχείο μνήμης είναι ένα ψηφιακό κύκλωμα που βρίσκεται σε συγκεκριμένη κατάσταση στο λογικό 0 ή 1, η οποία διατηρείται μέχρι να αλλάξει ένα σήμα εισόδου του. Οι βασικές διαφορές μεταξύ των διαφόρων τύπων στοιχείων μνήμης, αφορούν τον αριθμό εισόδων που διαθέτουν αυτά και τον τρόπο με τον οποίο οι είσοδοι των στοιχείων μνήμης επηρεάζουν την επόμενη δυαδική κατάσταση.

Τα στοιχεία μνήμης που ενεργοποιούνται κατά την παρουσία του επιπέδου του παλμού ρολογιού, ονομάζονται μανδαλωτές (latches) ενώ εκείνα που ενεργοποιούνται από μεταβάσεις τιμών του σήματος ρολογιού, ονομάζονται flip-flop. Λέμε ότι οι μανδαλωτές είναι διατάξεις ευαίσθητες στο επίπεδο σήματος ρολογιού, ενώ τα flip-flop είναι διατάξεις ευαίσθητες στις ακμές του σήματος ρολογιού ή ακμοπυροδότητες διατάξεις.

Ο μανδαλωτής τύπου SR είναι ένα κύκλωμα με δυο πύλες NOR συνδεδεμένες χιαστί ή δυο πύλες NAND συνδεμένες χιαστί. Διαθέτει δυο εισόδους, τις S (από τη θέση set) και R (από το μηδενισμό reset). Ο μανδαλωτής τύπου SR κατασκευάζεται με δυο συνδεμένες χιαστί πύλες NOR όπως παρουσιάζεται στο ακόλουθο σχήμα.

Όταν η έξοδος Q=1 και Q’=0, λέμε ότι ο μανδαλωτής βρίσκεται σε κατάσταση θέσης (set state). Όταν Q=0 και Q’=1, τότε ο μανδαλωτής βρίσκεται σε κατάσταση επαναφοράς ή μηδενισμού. Κανονικά, οι έξοδοι Q και Q’είναι συμπληρώματα αλλήλων. Ωστόσο, εάν και οι δυο είσοδοι γίνουν ταυτόχρονα 1, εμφανίζεται μια μη επιθυμητή κατάσταση, κατά την οποία και οι δυο έξοδοι γίνονται 0 (αντί να είναι συμπληρώματα αλλήλων) Εάν στη συνέχεια, οι δύο είσοδοι γίνουν ταυτόχρονα 0, ο μανδαλωτής θα μεταβεί σε μια μη προβλέψιμη κατάσταση, δηλαδή, σε μια μετασταθή κατάσταση. Για τον λόγο αυτό, στις πρακτικές εφαρμογές απαγορεύεται οι δυο είσοδοι του μανδαλωτή να λάβουν ταυτόχρονα την τιμή 1.

Εάν τεθεί S=1 και R=0 ταυτόχρονα, το κύκλωμα μεταβαίνει σε κατάσταση θέσης. Η επιστροφή του S στο 0 αφήνει το κύκλωμα στην ίδια κατάσταση. Όταν και οι δυο είσοδοι είναι στο 0, στιγμιαία εφαρμογή ενός 1 στην είσοδο R προκαλεί μετάβαση στην κατάσταση μηδενισμού. Μετά τη μετάβαση αυτή, ακόμη κι αν το R επανέλθει στο 0, το κύκλωμα παραμένει στην κατάσταση μηδενισμού. Έτσι, όταν και οι δυο είσοδοι S και R είναι ίσες με 0, ο μανδαλωτής μπορεί να είναι είτε σε κατάσταση θέσης είτε σε κατάσταση μηδενισμού, ανάλογα με το ποια είσοδος του ήταν πιο πρόσφατα σε τιμή 1.

Εάν οι είσοδοι S και R του μανδαλωτή γίνουν ταυτόχρονα 1, τότε και οι δυο έξοδοι γίνονται 0. Η ταυτόχρονη ενεργοποίηση των S και R οδηγεί σε μια επόμενη κατάσταση που δεν μπορεί να προσδιοριστεί, επειδή η τελική κατάσταση του μανδαλωτή εξαρτάται από τη σειρά με την οποία είσοδοι του επιστρέφουν στο 0. Επιπλέον, παραβιάζεται η σημαντική απαίτηση να είναι οι έξοδοι συμπληρωματικές αλλήλων. Σε κανονική λειτουργία, προκειμένου να αποφευχθεί αυτή η κατάσταση, πρέπει να διασφαλίσουμε ότι δεν θα δώσουμε ποτέ τιμή 1 ταυτόχρονα στις δυο εισόδους του μανδαλωτή.

Ο μανδαλωτής τύπου SR που κατασκευάζεται με δυο πύλες NAND συνδεμένες χιαστί  παρουσιάζεται στο σχήμα. Σε κανονική λειτουργία, οι δυο είσοδοι του μανδαλωτή διατηρούνται στο 1, εκτός κι αν επιθυμούμε να αλλάξουμε την κατάσταση του μανδαλωτή. Εάν δοθεί 0 στην είσοδο S, η έξοδος Q γίνεται 1, δηλαδή ο μανδαλωτής περνά σε κατάσταση θέσης. Εάν στην συνέχεια, η είσοδος S επιστρέψει στο 1, το κύκλωμα παραμένει σε κατάσταση θέσης.

Αφού και οι δυο είσοδοι έχουν επιστρέψει στο 1, μπορούμε να αλλάξουμε την κατάσταση του μανδαλωτή, δίνοντας 0 στην είσοδο R. Το κύκλωμα τότε μεταβαίνει στην κατάσταση μηδενισμού και παραμένει εκεί, ακόμα και μετά την επιστροφή των δύο εισόδων στο 1. Η συνθήκη απαγορευμένων εισόδων για τον μανδαλωτή NAND είναι το να λάβουν οι δυο είσοδοι ταυτόχρονα τιμή 0, κάτι που πρέπει οπωσδήποτε να αποφεύγεται, ώστε να διασφαλίζεται η ομαλή και προβλέψιμη λειτουργία του μανδαλωτή.

Εάν συγκρίνουμε τον υλοποιημένο με πύλες NAND μανδαλωτή με τον υλοποιημένο με πύλες NOR μανδαλωτή, παρατηρούμε ότι, για την ίδια λειτουργία, τα σήματα εισόδου του ενός είναι τα συμπληρώματα των σημάτων εισόδου του άλλου.

Η λειτουργία του βασικού μανδαλωτή SR μπορεί να βελτιωθεί, εάν προσθέσουμε σ’ αυτόν μια επιπλέον είσοδο, η οποία καλείται είσοδος ελέγχου και προσδιορίζει πότε μπορεί να αλλάξει η κατάσταση του μανδαλωτή, καθορίζοντας εάν οι S και R μπορούν να επηρεάσουν το κύκλωμα.

Ένας μανδαλωτής SR με είσοδο ελέγχου παρουσιάζεται στο σχήμα. Περιλαμβάνει το βασικό μανδαλωτή τύπου SR και δυο πρόσθετες πύλες NAND. Η είσοδος ελέγχου Εn δρα ως σήμα επίτρεψης (enable) για τις δυο άλλες εισόδους. Οι έξοδοι των πυλών NAND παραμένουν στο επίπεδο του λογικού 1, εφόσον το σήμα επίτρεψης παραμένει στο 0.

Αυτή είναι η συνθήκη αδράνειας του μανδαλωτή SR. Όταν η είσοδος επίτρεψης γίνει 1, επιτρέπεται να επηρεάζουν τον μανδαλωτή πληροφορίες που έρχονται στην είσοδο S ή στην είσοδο R. Ο μανδαλωτής μεταβαίνει σε κατάσταση θέσης όταν S=1, R=0 και En=1. Στην περίπτωση αυτή, λέμε ότι τα σήματα S και En είναι ενεργά στο 1 (active-high enable). Για να μεταβεί ο μανδαλωτής σε κατάσταση μηδενισμού, πρέπει οι είσοδοι να λάβουν τιμές S=0, R=1 και En=1.

 Σε κάθε περίπτωση, αφού το En επιστρέψει στο 0, το κύκλωμα απενεργοποιείται, δηλαδή η κατάσταση της εξόδου δεν αλλάζει, όποιες κι εάν είναι οι τιμές των S και R. Επιπλέον, όταν En=1, εάν οι είσοδοι S και R γίνουν ταυτόχρονα 0, η κατάσταση του κυκλώματος δεν αλλάζει. Όλες αυτές οι συνθήκες παρουσιάζονται στον πίνακα λειτουργίας που συνοδεύει το λογικό διάγραμμα του μανδαλωτή SR στο παραπάνω σχήμα.

Η συνθήκη μη προσδιορίσιμης εξόδου παρουσιάζεται όταν και οι τρεις είσοδοι γίνουν 1. Σ’ αυτή την περίπτωση δυο είσοδοι του βασικού μανδαλωτή SR γίνονται 1, οπότε ο τελευταίος μεταβαίνει σε μη προσδιορίσιμη κατάσταση. Δηλαδή, με την επιστροφή της εισόδου επίτρεψης στο 0, δεν μπορούμε να είμαστε σίγουροι για την κατάσταση στην οποία θα βρεθεί ο μανδαλωτής, επειδή αυτή εξαρτάται από το ποια από τις δυο εισόδους S ή R γίνεται πρώτη 0. Η κατάσταση μη προσδιορίσιμης εξόδου καθιστά δύσκολο τον χειρισμό του μανδαλωτή SR και για τον λόγο αυτό ο συγκεκριμένος μανδαλωτής σπάνια χρησιμοποιείται στην πράξη. Ωστόσο, ο μανδαλωτής SR δεν παύει να είναι ένα σημαντικό κύκλωμα, επειδή άλλοι χρήσιμοι μανδαλωτές και flip-flop κατασκευάζονται με βάση αυτόν.

Για να αποτρέψουμε την ανεπιθύμητη κατάσταση μη προσδιορίσιμης εξόδου του μανδαλωτή SR, αρκεί να διασφαλίσουμε ότι οι είσοδοι S και R δεν θα γίνουν ποτέ ταυτόχρονα 1. Αυτό ακριβώς γίνεται στον μανδαλωτή D, ο οποίος απεικονίζεται στο σχήμα.

Αυτός ο μανδαλωτής έχει δυο μόνο εισόδους: D (δεδομένα) και En (επίτρεψη). Η είσοδος D οδηγείται απευθείας στην είσοδο S ενός ενσωματωμένου μανδαλωτή SR, ενώ το συμπλήρωμα της εφαρμόζεται στην αντίστοιχη είσοδο R. Όσο η είσοδος επίτρεψης είναι στο 0, ο ενσωματωμένος μανδαλωτής SR έχει τις εισόδους του στο 1, οπότε το κύκλωμα δεν μπορεί να αλλάξει κατάσταση, ανεξάρτητα από την τιμή του D.

Η είσοδος D δειγματοληπτείται όταν En=1. Εάν D=1, η έξοδος Q πηγαίνει στο 1, θέτοντας το κύκλωμα σε κατάσταση θέσης. Εάν D=0, η έξοδος Q γίνεται 0, θέτοντας το κύκλωμα σε κατάσταση μηδενισμού.

Ο μανδαλωτής D χρησιμοποιείται για την προσωρινή αποθήκευση δυαδικών πληροφοριών μεταξύ μιας μονάδας και του περιβάλλοντος της. Η δυαδική πληροφορία που εμφανίζεται στην είσοδο δεδομένων του μανδαλωτή D, μεταφέρεται στην έξοδο Q όταν ενεργοποιείται η είσοδος επίτρεψης. Όταν η είσοδος επίτρεψης απενεργοποιηθεί, η δυαδική πληροφορία που υπήρχε στην είσοδο δεδομένων τη στιγμή της απενεργοποίησης διατηρείται (αποθηκεύεται) ως τιμή του κόμβου Q, μέχρις ότου η είσοδος επίτρεψης ενεργοποιηθεί ξανά.