ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΥΝΔΥΑΣΤΙΚΗ ΛΟΓΙΚΗ 2017, Δρ. Ηρακλής Σπηλιώτης
Συνδυαστικά και ακολουθιακά κυκλώματα Τα λογικά κυκλώματα χωρίζονται σε συνδυαστικά (combinatorial) και ακολουθιακά (sequential). Σε ένα συνδυαστικό κύκλωμα οι έξοδοι σε κάθε χρονική στιγμή καθορίζονται από τις τρέχουσες εισόδους. Ένα ακολουθιακό κύκλωμα περιέχει στοιχεία μνήμης, με αποτέλεσμα οι έξοδοι του να εξαρτώνται από τις τρέχουσες αλλά και από προηγούμενες εισόδους. Τα ακολουθιακά κυκλώματα είναι τα δομικά στοιχεία των ψηφιακών συστημάτων.
Συνδυαστικά κυκλώματα Κάθε συνδυαστικό κύκλωμα αποτελείται από ένα σύνολο διασυνδεδεμένων πυλών. Οι n δυαδικές μεταβλητές εισόδου προέρχονται από εξωτερικές πηγές. Οι m μεταβλητές εξόδου παράγονται από τη συνδυαστική λογική και τροφοδοτούν άλλα λογικά κυκλώματα. Για n μεταβλητές εισόδου, υπάρχουν 2 n πιθανοί δυαδικοί συνδυασμοί τιμών εισόδου. Για κάθε συνδυασμό τιμών εισόδου, παράγεται ένας συνδυασμός τιμών εξόδου. Κάθε συνδυαστικό κύκλωμα μπορεί να καθορισθεί από ένα πίνακα αληθείας που δίνει τις εξόδους για κάθε συνδυασμό εισόδων. Επίσης κάθε συνδυαστικό κύκλωμα μπορεί επίσης να περιγραφεί με m λογικές συναρτήσεις, μία για κάθε έξοδο. Κάθε λογική συνάρτηση έχει ως ανεξάρτητες μεταβλητές τις n εισόδους.
Συνδυαστικά κυκλώματα Στα ψηφιακά κυκλώματα οι λογικές τιμές αντιστοιχούν σε ηλεκτρικές τάσεις ή άλλα φυσικά σήματα. Θα ασχοληθούμε με: Ανάλυση της συμπεριφοράς ενός λογικού κυκλώματος. Σύνθεση ενός κυκλωματος που θα έχει μια συγκεκριμένη συμπεριφορά.
Διαδικασία ανάλυσης Ξεκινάμε από ένα λογικό διάγραμμα. Καταλήγουμε σε λογικές συναρτήσεις ή σε πίνακα αληθείας ή σε λεκτική περιγραφή του κυκλώματος. Ελέγχουμε αν το κύκλωμα είναι συνδυαστικό: το λογικό διάγραμμα ενός συνδυαστικού κυκλώματος έχει μόνο λογικές πύλες, χωρίς διαδρομές ανάδρασης, βρόχους ή στοιχεία μνήμης. Αν το κύκλωμα είναι ακολουθιακό χρειάζεται άλλες μεθόδους. Δίνουμε ονόματα στις εξόδους των πυλών. Προσδιορίζουμε τις συναρτήσεις που αντιστοιχούν στις εξόδους των πυλών. Προχωράμε στο επόμενο επίπεδο πυλών (αν υπάρχει) μέχρι να φθάσουμε στις εξόδους του κυκλώματος.
Διαδικασία ανάλυσης
Διαδικασία ανάλυσης Μπορούμε να προσδιορίσουμε τον πίνακα αληθείας, με τα ακόλουθα βήματα: 1. Σχηματίζουμε τον πίνακα και τοποθετούμε τους 2 n συνδυασμούς των εισόδων. 2. Δίνουμε ονόματα στις εξόδους των πυλών. 3. Παράγουμε τον πίνακα αληθείας για τις πύλες που εξαρτώνται μόνο από τις εισόδους. 4. Παράγουμε τον πίνακα αληθείας για τις υπόλοιπες πύλες, μέχρι να προσδιορίσουμε τις τιμές των εξόδων.
Διαδικασία ανάλυσης
Διαδικασία σχεδίασης Η σχεδίαση ενός συνδυαστικού κυκλώματος ξεκινά από τις προδιαγραφές και καταλήγει σε ένα λογικό διάγραμμα ή σε λογικές συναρτήσεις οι οποίες είναι ισοδύναμες με το λογικό διάγραμμα. Τα βήματα είναι τα εξής: 1. Από τις προδιαγραφές καθορίζουμε τον απαιτούμενο αριθμό εισόδων και εξόδων και δίνουμε κατάλληλα ονόματα σε αυτά τα σήματα. 2. Κατασκευάζουμε τον πίνακα αληθείας, που ορίζει τις σχέσεις εισόδων και εξόδων. 3. Βρίσκουμε τις απλοποιημένες συναρτήσεις Boole των εξόδων. 4. Σχεδιάζουμε το λογικό διάγραμμα και επαληθεύουμε την ορθότητα της σχεδίασης.
Διαδικασία σχεδίασης Ορισμένα σημεία που πρέπει να προσέχουμε: Είναι σημαντικό οι προδιαγραφές του ζητούμενου κυκλώματος, να μην είναι ελλιπείς και να μετατρέπονται σε πίνακα αληθείας με σωστό τρόπο. Κατά την απλοποίηση λογικών συναρτήσεων μπορεί να καταλήξουμε σε περισσότερες από μία ισοδύναμες απλοποιημένες εκφράσεις, όπου καλούμαστε να επιλέξουμε μόνο μία. Στη σχεδίαση ενός κυκλώματος υπάρχουν συγκεκριμένοι περιορισμοί όπως πλήθος πυλών, πλήθoυς εισόδων πυλών, της ικανότητας οδήγησης κάθε πύλης δηλαδή σε πόσες πύλες μπορεί να συνδεθεί η έξοδος μιας πύλης και άλλα. Δεν υπάρχει ένας γενικός κανόνας για την επίτευξη της αποδοτικής λύσης.
Διαδικασία σχεδίασης Παράδειγμα μετατροπής κώδικα BCD σε Excess-3 (συν-3). Και στους δύο κώδικες χρησιμοποιούνται 4 bit για την αναπαράσταση δεκαδικών ψηφίων. Από τις 2 4 =16 καταστάσεις χρησιμοποιούνται μόνο οι 10, οι έξι είναι αχρησιμοποίητες και θεωρούνται αδιάφοροι όροι. Ονομάζουμε A,B,C,D τις εισόδους και w,x,y,z τις εξόδους. Σχηματίζουμε τον πίνακα αληθείας.
Διαδικασία σχεδίασης Για κάθε έξοδο στον πίνακα αληθείας σχηματίζουμε τον αντίστοιχο χάρτη, με σκοπό να καταλήξουμε σε μια απλοποιημένη συνάρτηση. Οι αδιάφοροι όροι τοποθετούνται στους χάρτες ως Χ. Για κάθε έξοδο καταλήγουμε στην απλοποιημένη συνάρτηση που φαίνεται στον αντίστοιχο χάρτη.
Διαδικασία σχεδίασης Από τις λογικές συναρτήσεις των εξόδων σχηματίζουμε το λογικό διάγραμμα. Στη συνέχεια θα μελετήσουμε ορισμένα συχνά χρησιμοποιούμενα συνδυαστικά κυκλώματα.
Δυαδικός αθροιστής - αφαιρέτης Υπάρχουν οι εξής τέσσερις περιπτώσεις κατά την πρόσθεση δύο δυαδικών ψηφίων: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 10 Στην τελευταία περίπτωση το άθροισμα έχει δύο ψηφία. Το πιο σημαντικό ονομάζεται κρατούμενο (carry). Όταν προσθέτουμε δύο αριθμούς των n ψηφίων, το άθροισμα στη γενική περίπτωση έχει n+1 ψηφία. Αν οι δύο αριθμοί έχουν περισσότερα από 1 ψηφία, το κρατούμενο που προκύπτει προστίθεται στο ζεύγος των αμέσως περισσότερο σημαντικών ψηφίων. Το κύκλωμα που εκτελεί την πρόσθεση 2 ψηφίων ονομάζεται ημιαθροιστής (half adder). Το κύκλωμα που εκτελεί την πρόσθεση 3 ψηφίων (2 των προσθετέων και ένα κρατούμενο) ονομάζεται πλήρης αθροιστής (full adder). Ένας πλήρης αθροιστής υλοποιείται με το συνδυασμό 2 ημιαθροιστών, έτσι προκύπτει και το όνομα ημιαθροιστής.
Ημιαθροιστής Το κύκλωμα πρέπει να έχει 2 εισόδους x,y και δύο εξόδους, άθροισμα S και κρατούμενο C. Δημιουργούμε τον πίνακα αληθείας, εξάγουμε τις απλοποιημένες συναρτήσεις και καταλήγουμε στο λογικό διάγραμμα.
Πλήρης αθροιστής Ο πλήρης αθροιστής παράγει το άθροισμα τριών bit x,y,z. Τα x,y είναι τα bit των δύο προσθετέων, το z είναι το κρατούμενο από την προηγούμενη τάξη. Απαιτούνται δύο έξοδοι, κρατούμενο C και άθροισμα S.
Πλήρης αθροιστής Ο πλήρης αθροιστής μπορεί να υλοποιηθεί με δύο ημιαθροιστές και μια πύλη OR.
Δυαδικός αθροιστής Είναι ένα ψηφιακό κύκλωμα που αθροίζει δύο δυαδικούς αριθμούς n ψηφίων. Μπορεί να κατασκευασθεί με n πλήρεις αθροιστές συνδεδεμένους σε σειρά. Το κρατούμενο εξόδου του i-οστού αθροιστή, συνδέεται στο κρατούμενο εισόδου του (i+1)-οστού αθροιστή. Για i=0, δηλαδή για το λιγότερο σημαντικό ψηφίο (LSBit) επειδή δεν υπάρχει κρατούμενο εισόδου, μπορεί να χρησιμοποιηθεί ημιαθροιστής. Στον παρακάτω πίνακα βλέπουμε τη πρόσθεση δύο αριθμών 4 ψηφίων, Α=1011, Β=0011 που μας δίνει άθροισμα S=1110.
Δυαδικός αθροιστής Στο σχήμα βλέπουμε το λογικό διάγραμμα ενός δυαδικού αθροιστή 4 bit, που αποτελείται από 4 πλήρεις αθροιστές (Full Adder, FA). Η πρόσθεση γίνεται παράλληλα, δηλαδή ταυτόχρονα προστίθενται όλα τα ζεύγη A i +B i. Το αρχικό κρατούμενο C 0 διαδίδεται μετασχηματισμένο μέσα από τους πλήρεις αθροιστές και καταλήγει στην έξοδο του δυαδικού αθροιστή ως κρατούμενο εξόδου C 4. Για το λόγο αυτό ονομάζεται και αθροιστής ριπής κρατουμένου.
Διάδοση κρατούμενου Παρατηρούμε ότι η πρόσθεση στο δυαδικό αθροιστή γινεται παράλληλα, αλλά η διάδοση κρατούμενων από το C 0 μέχρι το τελικό C n-1, καθυστερεί τόσο ώστε το αρχικό κρατούμενο να περάσει μέσα από όλους τους αθροιστές, δημιουργώντας σε κάθε αθροιστή ένα νέο κρατούμενο κ.ο.κ. Επειδή και το S i σε κάθε επίπεδο εξαρτάται από το κρατούμενο το οποίο εφαρμόζεται στον αθροιστή, καταλήγουμε στο ότι η τελική τιμή του αθροίσματος S θα σταθεροποιηθεί όταν όλα τα κρατούμενα υπολογισθούν και διαδοθούν. Ο αριθμός των επιπέδων πυλών που πρέπει να λειτουργήσουν για να γίνει η διάδοση, βρίσκεται από το κύκλωμα του πλήρους αθροιστή και το πλήθος των bit του δυαδικού αθροιστή. Ο χρόνος διάδοσης κρατούμενων είναι σημαντικό χαρακτηριστικό του δυαδικού αθροιστή, επειδή περιορίζει την ταχύτητα με την οποία μπορούν να προστεθούν δύο αριθμοί. Αυτό γιατί το τελικό άθροισμα θεωρείται σωστό μόνο αν έχουν προλάβει τα κρατούμενα να διαδοθούν μέσω των πυλών. Επειδή στα ψηφιακά κυκλώματα πολλές λειτουργίες υλοποιούνται με διαδοχικές προσθέσεις, ο χρόνος που απαιτείται για να υλοποιηθεί η λειτουργία μιάς πρόσθεσης είναι κρίσιμος.
Διάδοση κρατούμενου Στο κύκλωμα του πλήρη αθροιστή, το κρατούμενο εισόδου C i διαδίδεται μέσω μιας πύλης AND και μιας πύλης OR, δηλαδή από δύο επίπεδα πυλών για να παραχθεί το κρατούμενο εξόδου C i+1. Σε έναν δυαδικό αθροιστή των n bit, υπάρχουν 2n επίπεδα πυλών. Αν η καθυστέρηση διάδοσης της κάθε πύλης είναι 15ns, τότε για έναν αθροιστή των 32 bit, απαιτούνται 960ns για τη δημιουργία του τελικού αθροίσματος. Επομένως ο μέγιστος ρυθμός λειτουργίας του αθροιστή περιορίζεται στις ~10 6 προσθέσεις/sec.
Πρόβλεψη κρατούμενου (carry look-ahead) Μια λύση στο πρόβημα της καθυστέρησης διάδοσης κρατούμενου, είναι η πρόβλεψη κρατούμενου (carry look-ahead). Στο κύκλωμα του πλήρη αθροιστή του σχήματος έχουν ορισθεί τα σήματα P i και G i. To G i είναι σήμα παραγωγής κρατούμενου (όταν ΑΒ=1) ανεξάρτητα από το κρατούμενο εισόδου C i. Το P i είναι σήμα διάδοσης κρατούμενου, επειδή προσδιορίζει αν ένα κρατούμενο εισόδου C i θα περάσει στην έξοδο C i+1 ως 1 στην επόμενη βαθμίδα πρόσθεσης.
Γεννήτρια πρόβλεψης κρατούμενου Αν θεωρήσουμε έναν αθροιστή των 4 bit, τότε με τις αλγεβρικές εκφράσεις που είδαμε προκύπτουν οι ακόλουθες εξισώσεις για τα κρατούμενα εισόδου κάθε αθροιστή: Παρατηρούμε ότι κάθε κρατούμενο υλοποιείται ως άθροισμα γινομένων, δηλαδή με πύλες δύο επιπέδων. Επίσης παρατηρούμε πως τα C1, C2, C3 παράγονται ταυτόχρονα. Το επιπλέον κόστος που προκύπτει από την αυξημένη πολυπλοκότητα αντισταθμίζεται από την επιτάχυνση της πράξης της πρόσθεσης. Οι συναρτήσεις Boole για τα κρατούμενα υλοποιούνται από το κύκλωμα του σχήματος, που ονομάζεται γεννήτρια κρατούμενου.
Δυαδικός αθροιστής με πρόβλεψη κρατούμενου Στο σχήμα βλέπουμε έναν δυαδικό αθροιστή 4 bit με πρόβλεψη κρατούμενου. Οι πύλες AND παράγουν τα σήματα G i παραγωγής κρατούμενου. Οι πύλες XOR παράγουν τα σήματα P i διάδοσης κρατούμενου.
Δυαδικός αφαιρέτης Για να κάνουμε την αφαίρεση Α-Β, μπορούμε να υπολογίσουμε το συμπλήρωμα ως προς 2 του Β και να το προσθέσουμε στο Α, δηλαδή Α + Β 2s όπως έχουμε δει στην ενότητα για τους προσημασμένους αριθμούς και τα συμπληρώματα. Το συμπλήρωμα ως προς 1 του Β, υλοποιείται με αντιστροφή κάθε bit του αριθμού Β. Το συμπλήρωμα ως προς 2 του Β, προκύπτει αν προσθέσουμε 1 στο συμπλήρωμα ως προς 1 του Β, B 2s = B 1s + 1. Το κύκλωμα του δυαδικού αφαιρέτη μπορεί να προκύψει από έναν δυαδικό αθροιστή, τα bit του Β εμφανίζονται συμπληρωμένα και το αρχικό κρατούμενο εισόδου C 0 είναι 1. Δηλαδή η πράξη που εκτελείται είναι Α + Β 1s + 1 = A + B 2s. Για μη προσημασμένους αριθμούς το αποτέλεσμα είναι Α - Β αν Α Β και (Β - Α) 2s αν Α < Β. Για προσημασμένους αριθμούς το αποτέλεσμα είναι Α - Β εφόσον δεν παρουσιαστεί υπερχείλιση.
Δυαδικός αφαιρέτης Γνωρίζουμε ότι x 1=x και x 0=x. Όταν το σήμα ελέγχου Μ = C 0 = 1, τότε το κύκλωμα του σχήματος λειτουργεί ως δυαδικός αφαιρέτης. Όταν Μ = 0, το κύκλωμα λειτουργεί ως αθροιστής. Παρατηρούμε πως το ίδιο κύκλωμα μπορεί να χρησιμοποιηθεί και για τις δύο πράξεις. Η πύλη XOR με έξοδο V, αφορά τον εντοπισμός πιθανής υπερχείλισης.
Υπερχείλιση Όταν προστίθενται δύο αριθμοί n ψηφίων και το άθροισμα απαιτεί n+1 ψηφία, τότε συμβαίνει υπερχείλιση (overflow). Η υπερχείλιση είναι πρόβλημα στους ψηφιακούς υπολογιστές, επειδή το πλήθος των bit είναι καθορισμένο. Η ανίχνευση υπερχείλισης σε άθροισμα μη-προσημασμένων αριθμών, γίνεται με την εξέταση του τελικού κρατούμενου. Σε έναν προσημασμένο το πιο αριστερό bit είναι bit προσήμου. Επίσης οι αρνητικοί αριθμοί είναι πάντοτε σε μορφή συμπληρώματος ως προς 2. Αν οι δύο αριθμοί είναι ετερόσημοι, δε μπορεί να συμβεί υπερχείλιση γιατί το μέτρο του αθροίσματος είναι μικρότερο από το μέτρο του μεγαλύτερου αριθμού. Αν οι δύο αριθμοί είναι ομόσημοι τότε μπορεί να συμβεί υπερχείλιση.
Υπερχείλιση Ένας καταχωρητής των 8 bit αποθηκεύει προσημασμένους αριθμούς του εύρους [-128 10, +127 10 ]. Δύο προσημασμένοι αριθμοί των 8 bit, +70 10, +80 10 αποθηκεύονται σε καταχωρητές των 8 bit. Το άθροισμα των δύο αριθμών +150 10, υπερβαίνει τη χωρητικότητα του καταχωρητή 8 bit. Επίσης το άθροισμα των αριθμών (-70 10 ) + (-80 10 ) = -150 10, υπερβαίνει τη χωρητικότητα του καταχωρητή 8 bit.
Υπερχείλιση Η υπερχείλιση σε άθροισμα προσημασμένων αριθμών, ανιχνεύεται αν το κρατούμενο στη θέση προσήμου (τελικό κρατούμενο) και το κρατούμενο στην προηγούμενη θέση είναι διαφορετικά. Στο δυαδικό αθροιστή αφαιρέτη υπάρχει η πύλη XOR, όταν V=0 δεν έχει συμβεί υπερχείλιση. Για μη προσημασμένους αριθμούς, όταν V=1, το αποτέλεσμα της πράξης χρειάζεται n+1 bit δηλαδή έχει συμβεί υπερχείλιση. Για προσημασμένους αριθμούς όταν C=1, έχει προκύψει κρατούμενο 1 από πρόσθεση ή δανεικό ψηφίο από αφαίρεση.
Δεκαδικός αθροιστής BCD Θεωρούμε την πρόσθεση δύο ψηφίων BCD και ενός κρατούμενου εισόδου. Το μέγιστο αποτέλεσμα είναι 9+9+1=19. Αν χρησιμοποιήσουμε δυαδικό αθροιστή 4 bit, θα λάβουμε το άθροισμα στο δυαδικό σύστημα με τα bit ΚΖ 8 Ζ 4 Ζ 2 Ζ 1. Το Κ είναι κρατούμενο, οι δείκτες στα ψηφία Ζ είναι τα βάρη του κώδικα BCD. Θα πρέπει να αντιστοιχηθεί το δυαδικό άθροισμα στο άθροισμα BCD. Αν το δυαδικό άθροισμα είναι μεγαλύτερο από 1001 2 = 9 10, δεν αναπαριστά έγκυρο αριθμό BCD. Αν προσθέσουμε το 6 10 τότε διορθώνουμε και το νέο άθροισμα δίνει σωστό BCD αριθμό και κρατούμενο εξόδου. Εξετάζοντας τον πίνακα παρατηρούμε πως οι τιμές που χρειάζονται διόρθωση έχουν: Κ=1 ή Ζ 8 Ζ 4 =1 ή Ζ 8 Ζ 2 =1. Η συνθήκη για να γίνει διόρθωση είναι: C = Κ + Ζ 8 Ζ 4 + Ζ 8 Ζ 2
Δεκαδικός αθροιστής BCD Η συνθήκη C = Κ + Ζ 8 Ζ 4 + Ζ 8 Ζ 2, αποτελεί και τελικό κρατούμενο εξόδου. Στο κύκλωμα του σχήματος, όταν το τελικό κρατούμενο εξόδου C = 0 ο δεύτερος αθροιστής προσθέτει το 0000 2, στο ήδη παραχθέν άθροισμα Ζ 8 Ζ 4 Ζ 2 Ζ 1 και δε το μεταβάλλει. Όταν C=1, τότε ο κάτω αθροιστής προσθέτει το 6 10 =0110 2 στο ήδη παραχθέν άθροισμα Ζ 8 Ζ 4 Ζ 2 Ζ 1. Το κρατούμενο του δεύτερου αθροιστή αγνοείται γιατί δίνει την ίδια πlηροφορία με το C. Για την κατασκευή παράλληλου δεκαδικού αθροιστή n δεκαδικών ψηφίων, απαιτούνται n στάδια αθροιστών BCD, το κρατούμενο εξόδου από κάθε στάδιο συνδέεται σαν κρατούμενο εισόδου στο επόμενο στάδιο.
Δυαδικός πολλαπλασιαστής Ο δυαδικός πολλαπλασιασμός εκτελείται κάθετα όπως των δεκαδικών αριθμών. Κάθε ψηφίο του πολλαπλασιαστή πολλαπλασιάζεται με τον πολλαπλασιαστέο, με πρώτο το ελάχιστα σημαντικό bit. Τα μερικά γινόμενα μετατοπίζονται μια θέση αριστερά και στη συνέχεια αθροίζονται και προκύπτει το γινόμενο. Στο σχήμα φαίνεται ο πολλαπλασιασμός δύο αριθμών των 2 bit και ένα κύκλωμα για τον πολλαπλασιασμό τους. Χρησιμοποιούνται 2 ημιαθροιστές. Συνήθως απαιτούνται πλήρεις αθροιστές, αν τα μερικά γινόμενα έχουν περισσότερα από 2 bit. Για τον Μ bit στον πολλαπλασιαστή και Ν bit στον πολλαπλασιαστέο, απαιτούνται ΜxN πύλες AND, Μ-1 αθροιστές των Ν bit και παράγεται ένα γινόμενο των M+N bit.
Δυαδικός πολλαπλασιαστής Στο σχήμα βλέπουμε ένα κύκλωμα πολλαπλασιασμού όπου ο πολλαπλασιαστής Α έχει 3 bit και ο πολλαπλασιαστέος B έχει 4 bit. Απαιτούνται: 12 πύλες AND 2 αθροιστές των 4 bit To γινόμενο έχει εύρος 12 bit.
Συγκριτής μέτρου δύο αριθμών Ο συγκριτής δύο αριθμών προσδιορίζει τη σχέση μεγέθους δύο αριθμών Α,Β, δηλαδή αν είναι ίσοι ή ποιός είναι μεγαλύτερος. Οι είσοδοι του συγκριτή είναι οι δύο αριθμοί. Υπάρχουν τρεις έξοδοι, οι οποίες δείχνουν αν A<B, A=B, A>B. O πίνακας αληθείας του κυκλώματος, αν οι αριθμοί αποτελούνται από n bit, έχει 2 2n γραμμές, οπότε η διαδικασία υλοποίησης είναι δύσκολη. Ο συγκριτής ως κύκλωμα έχει μια κανονικότητα στη δομή του, που επιτρέπει τη σχεδίαση με τρόπο παρόμοιο με αυτόν που υλοποιούμε μτ το μυαλό μας. Έστω Α=Α 3 Α 2 Α 1 Α 0 και Β=Β 3 Β 2 Β 1 Β 0. Οι αριθμοί είναι ίσοι αν όλα τα ψηφία ίδιας σημαντικότητας είναι ίσα, x i = A i B i + A i B i, i=0,1,2,3. Οι αριθμοί είναι ίσοι αν: (Α=Β) = x 3 x 2 x 1 x 0. Ελέγχουμε αν Α>Β, αν το πιο σημαντικό ψηφίο του Α είναι μεγαλύτερο από του Β, αν είναι ίσα ελέγχουμε τα επόμενα έως ότου βρεθεί ένα ζεύγος άνισων ψηφίων και ισχύει Α i >B i. Η διαδικασία που περιγράψαμε, μπορεί να εκφρασθεί με τις ακόλουθες λογικές συναρτήσεις:
Συγκριτής μέτρου δύο αριθμών Στο σχήμα φαίνεται το λογικό διάγραμμα συγκριτή δύο αριθμών 4 bit. Υπάρχει σημαντικός βαθμός επαναληψιμότητας (A i B i, A i B i ) και ο αριθμός των πυλών είναι μικρός. Οι μεταβλητές x i παράγονται με XNOR, x i = (A i B i + A i B i ) Για την κατασκευή συγκριτή περισσότερων bit, η παραπάνω μέθοδος μπορεί να επεκταθεί.
Αποκωδικοποιητής Ένας δυαδικός κώδικας των n bit μπορεί να αναπαραστήσει έως 2 n διακριτά στοιχεία κωδικοποιημένης πληροφορίας. Ο αποκωδικοποιητής (decoder) είναι συνδυαστικό κύκλωμα που μετατρέπει κωδικοποημένη δυαδική πληροφορία n γραμμών εισόδου, σε ισοδύναμη πληροφορίας που τοποθετείτι σε έως 2 n γραμμές εξόδου. Εάν για την κωδικοποιημένη πληροφορίας των n bit δε χρησιμοποιούνται όλοι οι δυνατοί συνδυασμοί, τότε ο αποκωδικοποιητής μπορεί να έχει λιγότερες εξόδους από 2 n. Οι αποκωδικοποιητές χαρακτηρίζονται από το πλήθος των σημάτων εισόδου εξόδου, έτσι τους αποκαλούμε αποκωδικοποιητές n-σε-m, όπου m 2 n.
Αποκωδικοποιητής Δεξιά φαίνεται αποκωδικοποιητής 3-σε-8. Το κύκλωμα παράγει κάθε φορά έναν ελαχιστόρο των τριών μεταβλητών εισόδου. Κάθε φορά μόνο μια έξοδος έχει τιμή 1, όλες οι υπόλοιπες έχουν τιμή 0. Κάτω φαίνεται ο πίνακας αληθείας του κυκλώματος.
Αποκωδικοποιητής Στο σχήμα φαίνεται αποκωδικοποιητής 2-σε-4 κατασκευασμένος με πύλες NAND. Οι έξοδοι του αποκωδικοποιητή δίνονται στη συμπληρωμένη μορφή τους. Επίσης περιλαμβάνει είσοδο επίτρεψης (enable) Ε, η οποία όταν Ε=0 επιτρέπει τη λειτουργία, ενώ όταν Ε=1 κάθε έξοδος του κυκλώματος είναι 1. Επίσης παρουσιάζεται και ο πίνακας αληθείας. Κάθε αποκωδικοποιητής μπορεί να λειτουργήσει ως αποπλέκτης (demultiplexer). Συγκεκριμένα εδώ, αν θεωρήσουμε το Ε ως σειριακή είσοδο δεδομένων, και το ΑΒ ως εισόδους επιλογής, τότε ανάλογα με την τιμή ΑΒ τα δεδομένα της εισόδου Ε θα εμφανίζονται μόνο σε μία έκοδο και όλοες οι άλλες έξοδοι θα είναι 1. π.χ. Αν ΑΒ=01, η έξοδος D 1 θα εμφάνιζε τα σειριακά δεδομένα του Ε. Ένας αποκωδικοποιητής με είσοδο επίτρεψης ονομάζεται αποκωδικοποιητής αποπλέκτης.
Αποκωδικοποιητής Αποκωδικοποιητές με είσοδο επίτρεψης, μπορούν να διασυνδέονται για τη δημιουργία μεγαλύτερων αποκωδικοποιητών. Οι δύο decoders 3-σε-8 σχηματίζουν έναν decoder 4-σε-16. Για w=0, ενεργοποιείται ο decoder με εξόδους D 0 -D 7, ενώ όταν w=1, ενεργοποιείται ο decoder με εξόδους D 8 -D 15. Οι είσοδοι επίτρεψης (enable) είναι χρήσιμο χαρακτηριστικό των κυκλωμάτων. Υπάρχουν και άλλα κυκλώματα όπου οι είσοδοι επίτρεψης, κάνουν εφικτή τη διασύνδεση κυκλωμάτων.
Υλοποίηση λογικών συναρτήσεων με αποκωδικοποιητή Ο αποκωδικοποιητής παράγει τους 2 n ελαχιστόρους των n μεταβλητών. Έστω μια συνάρτηση Boole σε μορφή αθροίσματος ελαχιστόρων. Αν χρησιμοποιήσουμε έναν decoder και μια πύλη OR που θα αθροίζει τους ελαχιστόρους υλοποιούμε τη συνάρτηση. Για παράδειγμα ο πλήρης αθροιστής, S(x,y,z)=Σ(1,2,4,7), C(x,y,z,)=Σ(3,5,6,7) που υλοποιείται με decoder 3-σε-8 και δύο πύλες OR. Ανάλογα με τις τιμές των εισόδων x, y, z παράγονται τα σήματα εξόδου S, C. Αν μια συνάρτηση F έχει πολλούς έστω k ελαχιστόρους και απαιτεί πύλη OR με k εισόδους, μπορεί να εκφρασθεί σε μορφή συμπληρώματος F με 2 n -k ελαχιστόρους. Στην περίπτωση αυτή χρησιμοποιούμε πύλη NOR για το άθροισμα ώστε ή έξοδος να είναι (F ) =F. Αν ο decoder είναι κατασκευασμένος με NAND, τότε αντί για OR χρησιμοποιείται NAND για την άθροιση, γιατί NAND NAND ισοδυναμεί με AND OR.
Κωδικοποιητής Ο κωδικοποιητής (encoder) είναι το αντίστροφο κύκλωμα του αποκωδικοποιητή. Έχει 2 n γραμμές εισόδου και n γραμμές εξόδου. Ο πίνακας αληθείας αντιστοιχεί σε έναν κωδικοποιητή οκταδικού σε δυαδικό. Μία είσοδος έχει την τιμή 1 κάθε χρονική στιγμή. Οι τρεις έξοδοι προσδιορίζονται από τον πίνακα αληθείας με τις ακόλουθες εξισώσεις και το κύκλωμα μπορεί να υλοποιηθεί με τρεις πύλες OR.
Κωδικοποιητής Στο προηγούμενο κύκλωμα αν δύο είσοδοι γίνουν 1, π.χ. D 3 και D 6 τότε η έξοδος θα είναι 111, το οποίο δεν αναπαριστά ούτε το 3 ούτε το 6. Για να αποφευχθεί η ασάφεια ορίζεται μια σειρά προτεραιότητας εισόδων, ώστε να κωδικοποιείται μόνο μια είσοδος κάθε στιγμή. Αν οι είσοδοι με μεγαλύτερους δείκτες έχουν μεγαλύτερη προτεραιότητα, τότε στην περίπτωση D 3 =D 6 =1, η έξοδος θα γίνει 110=6 10 γιατί το D 6 έχει μεγαλύτερη προτεραιότητα από το D 3. Μια άλλη ασάφεια μπορεί να προκύψει όταν όλες οι είσοδοι είναι 0. Στην περίπτωση αυτή προκύπτει έξοδος 000, δηλαδή σαν αν είναι D 0 =1. Το πρόβλημα μπορεί να λυθεί αν χρησιμοποιηθεί μια ακόμα έξοδος που θα δείχνει αν τουλάχιστον μια είσοδος είναι 1.
Κωδικοποιητής προτεραιότητας Ο κωδικοποιητής προτεραιότητας (priority encoder) περιλαμβάνει την έννοια της προτεραιότητας των εισόδων. Αν δύο η περισσότερες είσοδοι είναι ταυτόχρονα 1, θα κωδικοποιηθεί η είσοδος με τη μεγαλύτερη προτεραιότητα. Έστω κωδικοποιητής προτεραιότητας με εισόδους D 0 D 1 D 2 D 3 και εξόδους x, y, V. Η έξοδος V γίνεται 1 όταν τουλάχιστον μια είσοδος είναι 1, αλλιώς V=0. Από τον πίνακα αληθείας παρατηρούμε: Όσο μεγαλύτερη η τιμή του δείκτη τόσο μεγαλύτερη η προτεραιότητα της εισόδου. Αντί για 16 γραμμές χρησιμοποιούμε μόνο 4, με χρήση των αδιάφορων όρων που σημειώνονται με Χ. Όταν D3=1 δε μας ενδιαφέρουν τα D 0 D 1 D 2 κ.ο.κ.
Πολυπλέκτης Ο πολυπλέκτης (multiplexer) έχει 2 n σήματα εισόδου, ένα σήμα εισόδου που ονομάζεται σήμα επιλογής n bit και μια έξοδο. Ανάλογα με την τιμή του σήματος επιλογής, επιλέγεται ένα από τα 2 n σήματα εισόδου και κατευθύνεται στην έξοδο. Ο πολυπλέκτης 2-σε-1 του σχήματος (a), έχει δύο σήματα εισόδου, ένα σήμα επιλογής S 1 bit και ένα σήμα εξόδου. Όταν S=0 τότε Υ=Ι 0, αλλιώς όταν S=1 τότε Υ=Ι 1. Το σύμβολο του πολυπλέκτη έχει τραπεζοειδές σχήμα, όπως φαίνεται στο σχήμα (b).
Πολυπλέκτης Ο πολυπλέκτης 4-σε-1 έχει 4 εισόδους I 3, I 2, I 1, I 0 και μια έξοδο Υ. Επειδή έχει 4 εισόδους, το σήμα επιλογής S αποτελείται από 2 bit S 1 S 0. Τα bit S 1 S 0 αποκωδικοποιούνται έτσι ώστε να επιλέγουν μόνο μία από τις 4 πύλες AND. Οι άλλες 3 πύλες AND έχουν τουλάχιστον μια μηδενική είσοδο και επομένως μηδενική έξοδο. Η πύλη OR στην έξοδο αθροίζει τις εξόδους των πυλών AND και παρέχει την έξοδο του πολυπλέκτη. Ο πολυπλέκτης αποκαλείται και επιλογέας δεδομένων (data selector), επειδή επιλέγει μία από πολλές εισόδους και οδηγεί τις πληροφορίες της επιλεγμένης εισόδου στην έξοδο.
Πολυπλέκτης Η δομή ενός πολυπλέκτη θυμίζει αποκωδικοποιητή. Πράγματι το σήμα επιλογής του πολυπλέκτη ο τρόπος αποκωδικοποίησης του είναι το κύκλωμα του αποκωδικοποιητή, όπου μόνο μια πύλη AND μπορεί να είναι ενεργοποιημένη. Στις πύλες ΑΝD του πολυπλέκτη εφαρμόζονται και τα σήματα εισόδου και επίσης υπάρχει και μια πύλη OR. Οι πολυπλέκτες μπορούν να έχουν είσοδό επίτρεψης, η οποία όταν είναι σε ενεργή κατάσταση το κύκλωμα λειτουργεί ως πολυπλέκτηςκαι όταν είναι σε μη ενεργή κατάσταση οι έξοδοι είναι όλες 0.
Πολυπλέκτης Οι πολυπλέκτες μπορούν να συνδυάζονται για να σχηματίζουν πολυπλέκτες με είτε με περισσότερες εισόδους είτε με περισσότερα bit ανά είσοδο. Στο σχήμα φαίνεται πολυπλέκτης 2- σε-1, όπου κάθε είσοδος είναι σήμα 4 bit. Ο πολυπλέκτης αυτός έχει 4 πολυπλέκτες 2-σε-1 όπου κάθε είσοδος είναι 1 bit. Επίσης υπάρχει το σήμα επίτρεψης E, δηλαδή λειτουργεί όταν Ε=0, αλλιώς όταν Ε=1 οι έξοδοι είναι 0.
Υλοποίηση λογικών συναρτήσεων με πολυπλέκτη Όπως είδαμε και στους αποκωδικοποιητές οι οποίοι μπορούν να υλοποιήσουν μια λογική συνάρτηση, έτσι και ένας πολυπλέκτης με n-1 bit σήμα επιλογής, μπορεί να χρησιμοποιηθεί για την υλοποίηση λογικών συναρτήσεων n μεταβλητών. Η διαδικασία υλοποίησης μιας λογικής συνάρτησης με πολύπλέκτη είναι η ακόλουθη: Χρησιμοποιούμε πίνακα αληθείας για να περιγράψουμε τη λογική συνάρτηση. Συνδέουμε τις n-1 μεταβλητές στις εισόδους του σήματος επιλογής του πολυπλέκτη. Για κάθε συνδυασμό των μεταβλητών επιλογής, υπολογίζουμε την επιθυμητή έξοδο του κυκλώματος ως συνάρτηση της n-οστής μεταβλητής. Η έκφραση αυτή είναι 0, 1, η μεταβλητή ή το συμπλήρωμα της. Οι τιμές αυτές εφαρμόζονται στις εισόδους δεδομένων του πολυπλέκτη.
Υλοποίηση λογικών συναρτήσεων με πολυπλέκτη Έστω η συνάρτηση τριών μεταβλητών F(x,y,z)=Σ(1,2,6,7) Επιλέγουμε ένα πολυπλέκτη 4-σε-1. Συνδέουμε τις μεταβλητές x,y στο σήμα επιλογής του πολυπλέκτη S 1 S 0. Κατασκευάζουμε τον πίνακα αληθείας και για κάθε τιμή των μεταβλητών του γινομένου xy, προσπαθούμε να γράψουμε της F σαν συνάρτηση μόνο του z. Υπάρχουν 4 μόνο τιμές, οι οποίες είναι F={0,1,z,z ). Στη συνέχεια συνδέουμε στην αντίστοιχη είσοδο του πολυπλέκτη την τιμή της F που βρήκαμε.
Υλοποίηση λογικών συναρτήσεων με πολυπλέκτη Έστω F(A,B,C,D)=Σ(1,3,4,11,12,13,14,15). Υπάρχουν 4 μεταβλητές, άρα χρησιμοποιούμε πολυπλέκτη με 3 bit σήμα επιλογής, δηλαδή 8-σε-1. Στην είσοδο επιλογής S 2 S 1 S 0 εφαρμόζουμε τις μεταβλητές ABC. Κατασκευάζουμε τον πίνακα αληθείας και για κάθε συνδυασμό των ΑΒC εκφράζουμε την F ως συνάρτηση του D και συνδέουμε στην αντίστοιχη είσοδο του πολυπλέκτη την τιμή αυτή.
Τρισταθείς πύλες Οι πύλες τριών καταστάσεων (ή τρισταθείς) έχουν 3 δυνατές καταστάσεις. Οι δύο καταστάσεις είναι το λογικό 0 ή το λογικό 1. Η τρίτη κατάσταση είναι η υψηλή αντίσταση εξόδου (high impedance), συμβολίζεται με Ζ, όπου: 1. Η έξοδος συμπεριφέρεται ως ανοικτό κύκλωμα 2. Το τρισταθές κύκλωμα δε συμμετέχει στον καθορισμό της λογικής τιμής της εξόδου του 3. Το κύκλωμα που συνδέεται στην έξοδο της τρισταθούς πύλης, δεν επηρεάζεται καθόλου από τις εισόδους της πύλης. Οι τρισταθείς πύλες μπορούν να υλοποιήσουν μια λογική πράξη, αλλά ο πιο χρησιμοποιούμενος τύπος είναι ο τρισταθής απομονωτής (buffer). Το σήμα ελέγχου C, καθορίζει τη λειτουργία. Όταν C=1, τότε Y=A. Όταν C=0, τότε Y=Ζ.
Τρισταθείς πύλες Η κατασκευή πολυπλεκτών με τρισταθείς πύλες γίνεται βραχυκυκλώνοντας τις εξόδους των απομονωτών, δημιουργώντας ένα κοινό κόμβο εξόδου. Δεν υπάρχει κίνδυνος υπερφόρτωσης των εξόδων των αντίστοιχων πυλών με τρισταθείς απομονωτές (σε αντίθεση με χρήση συμβατικών πυλών). Στο σχήμα (a), φαίνεται ένας πολυπλέκτης 2-σε-1 και στο σχήμα (β) ένας πολυπλέκτης 4-σε-1. Ο αποκωδικοποιητής στο σχήμα (b), διασφαλίζει ότι η έξοδος μόνο ενός τρισταθούς απομονωτή είναι ενεργή κάθε χρονική στιγμή.
Ασκήσεις
Ασκήσεις
Ασκήσεις
Ασκήσεις
Ασκήσεις
Ασκήσεις
Ασκήσεις
Ασκήσεις