Ελίνα Μακρή elmak@unipi.gr
Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D, T, SR, JK)
Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D, T, SR, JK)
Σχεδίαση Ψηφιακών Κυκλωμάτων
Λογικές Πύλες Πίνακας Αληθείας Πύλη AND ( Α Β ) A B out 0 0 0 0 1 0 1 0 0 1 1 1 Πύλη OR ( Α + Β ) A B out 0 0 0 0 1 1 1 0 1 1 1 1
Λογικές Πύλες Πίνακας Αληθείας Πύλη ΝΟΤ ( Α ) A out 0 1 1 0 Πύλη NAND ( (Α Β) ) A B out 0 0 1 0 1 1 1 0 1 1 1 0
Λογικές Πύλες Πίνακας Αληθείας Πύλη NOR ( (Α + Β) ) A B out 0 0 1 0 1 0 1 0 0 1 1 0 Πύλη XOR ( Α Β = AB + A B ) A B out 0 0 0 0 1 1 1 0 1 1 1 0
Λογικές Πύλες Πίνακας Αληθείας Πύλη XNOR ( (Α Β) = AB + A B ) Ισοδυναμίες - De Morgan A B out 0 0 1 0 1 0 1 0 0 1 1 1
Λογικές Πύλες Πίνακας Αληθείας Παράδειγμα Να υπολογιστεί ο πίνακας αληθείας της συνάρτησης: f(x,y) = xy + x y Μπορείτε να σχεδιάσετε κύκλωμα που να υλοποιεί τη λογική παράσταση με μία πύλη;
Λογικές Πύλες Πίνακας Αληθείας Παράδειγμα Να υπολογιστεί ο πίνακας αληθείας της συνάρτησης: f(x,y) = xy + x y x y x' y' xy' x'y xy'+ x'y 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 Το κύκλωμα είναι λογική πύλη ΧΟR δύο εισόδων.
Λογικές Πύλες Πίνακας Αληθείας Άσκηση Να υπολογιστεί ο πίνακας αληθείας της συνάρτησης: f(x,y) = xy + x y Μπορείτε να σχεδιάσετε κύκλωμα που να υλοποιεί τη λογική παράσταση με μία πύλη;
Λογικές Πύλες Πίνακας Αληθείας Άσκηση Να υπολογιστεί ο πίνακας αληθείας της συνάρτησης: f(x,y) = xy + x y x y x' y' xy x'y' xy + x'y' 0 0 1 1 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 Το κύκλωμα είναι λογική πύλη ΧΝΟR δύο εισόδων. x y XNOR f(x,y)
Χάρτες KARNAUGH Χρησιμοποιούνται για την απλοποίηση των λογικών συναρτήσεων αντί της χρήσης των θεωρημάτων της άλγεβρας BOOLE. Άθροισμα Γινομένων (Ελαχιστόρων) Αν έχουμε τον πίνακα αληθείας μιας συνάρτησης, μπορούμε να βρούμε το άθροισμα των ελαχιστόρων χρησιμοποιώντας τις σειρές του πίνακα για τις οποίες το αποτέλεσμα της συνάρτησης είναι 1. x y z f(x,y,z) f (x,y,z) 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 f = x y z + x y z + x yz + x yz + xyz = m 0 + m 1 + m 2 + m 3 + m 6 = m(0,1,2,3,6) f = xy z + xy z + xyz = m 4 + m 5 + m 7 = m(4,5,7) Κανονική Μορφή Συνάρτησης Αντίστροφη Συνάρτηση
Χάρτες KARNAUGH Χάρτης Karnaugh 2 μεταβλητών Από τον πίνακα αληθείας 2 μεταβλητών, μπορούμε να φτιάξουμε τον χάρτη Karnaugh 2 μεταβλητών. x y Ελαχιστόροι 0 0 x y 0 1 x y 1 0 xy 1 1 xy X Y 0 1 0 x y x y 1 xy xy Από τον χάρτη Karnaugh, μπορούμε να δούμε ποιοί ελαχιστόροι είναι κοινοί. Y X 0 1 0 x y x y 1 xy xy Y Y X x y x y X xy xy
Χάρτες KARNAUGH Χάρτης Karnaugh 2 μεταβλητών Παράδειγμα 1 Έστω οτι θέλουμε να ελαχιστοποιήσουμε την έκφραση: x y + x y Βλέπουμε οτι το x εμφανίζεται και στους 2 όρους της έκφρασης και αντιστοιχεί στην πάνω σειρά του πίνακα. Y x y x y X xy xy Y 1 1 X xy xy Τι γίνεται όμως αν απλοποιήσουμε τη συνάρτηση χρησιμοποιώντας άλγεβρα ΒΟΟLE? x y + x y = x (y + y) [y + y = 1] = x 1 [x 1 = x ] = x
Χάρτες KARNAUGH Χάρτης Karnaugh 2 μεταβλητών Παράδειγμα 2 Έστω οτι θέλουμε να ελαχιστοποιήσουμε την έκφραση: x y + xy Βλέπουμε οτι το y εμφανίζεται και στους 2 όρους της έκφρασης και αντιστοιχεί στην δεξιά στήλη του πίνακα. Y x y x y X xy xy Y x y 1 X xy 1 Αποτέλεσμα: x y + xy = y
Χάρτες KARNAUGH Χάρτης Karnaugh 2 μεταβλητών Παράδειγμα 3 Έστω οτι θέλουμε να ελαχιστοποιήσουμε την έκφραση: x y + x y + xy Βλέπουμε οτι: x y + x y = x (αντιστοιχεί στην πάνω γραμμή του πίνακα) x y + xy = y (αντιστοιχεί στην δεξιά στήλη του πίνακα) Y x y x y X xy xy Y 1 1 X xy 1 Αποτέλεσμα: x y + x y + xy = x + y
Χάρτες KARNAUGH Χάρτης Karnaugh 3 μεταβλητών Ο χάρτης Κarnaugh 3 μεταβλητών είναι ο παρακάτω: YZ 00 01 11 10 0 x y z x y z x yz x yz X 1 xy z xy z xyz xyz x y z x y z x yz x yz X xy z xy z xyz xyz Οποιαδήποτε 2, 4 ή 8 γειτονικά τετράγωνα έχουν κοινούς παράγοντες: Z Y Y x y z x y z x yz x yz X xy z xy z xyz xyz Z x y z + x yz = x z(y + y) = x z 1 = x z Οι 2 μονάδες (άσσοι) αντιστοιχούν σε δύο μεταβλητές.
Χάρτες KARNAUGH Χάρτης Karnaugh 3 μεταβλητών Οποιαδήποτε 2, 4 ή 8 γειτονικά τετράγωνα έχουν κοινούς παράγοντες: Y x y z x y z x yz x yz X xy z xy z xyz xyz Z x y z + xy z + x yz + xyz = z (x y + xy + x y + xy) = z (y (x + x) + y(x + x)) = z (y +y) = z Οι 4 μονάδες (άσσοι) αντιστοιχούν σε μια μεταβλητή.
Χάρτες KARNAUGH Χάρτης Karnaugh 4 μεταβλητών Ο χάρτης Κarnaugh 4 μεταβλητών είναι ο παρακάτω: Y w x y z w x y z w x yz w x yz w xy z w xy z w xyz w xyz W wxy z wxy z wxyz wxyz wx y z wx y z wx yz wx yz X Z
Χάρτες KARNAUGH Άσκηση 2 Απλοποιήστε την συνάρτηση f(x,y,z) = xy + y z + xz
Χάρτες KARNAUGH Άσκηση 2 Λύση Απλοποιήστε την συνάρτηση f(x,y,z) = xy + y z + xz. Αρχικά, πρέπει να μετατρέψουμε την συνάρτηση σε άθροισμα ελαχιστόρων αν δεν είναι ήδη. Ένας εύκολος τρόπος να το κάνουμε είναι να φτιάξουμε πίνακα αληθείας για την συνάρτηση. Παραλείποντας τις ενδιάμεσες στήλες ο τελικός πίνακας αληθείας που προκύπτει είναι ο παρακάτω: x y z f(x,y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 f(x,y,z) = x y z + xy z + xyz + xyz H λογική συνάρτηση f που προέκυψε από τον πίνακα αληθείας είναι σε κανονική μορφή (άθροισμα ελαχιστόρων).
Χάρτες KARNAUGH Άσκηση 2 Λύση Εναλλακτικά, μπορούμε να το κάνουμε μέσω άλγεβρας Boole. xy + y z + xz = (xy 1) + (y z 1) + (xz 1) = (xy (z + z)) + (y z (x + x)) + (xz (y + y)) = (xyz + xyz) + (x y z + xy z) + (xy z + xyz) = xyz + xyz + x y z + xy z Και στις 2 περιπτώσεις έχουμε το ίδιο αποτέλεσμα.
Χάρτες KARNAUGH Άσκηση 2 Λύση Στη συνέχεια, θα υπολογίσουμε τον χάρτη Karnaugh 3 μεταβλητών. f(x,y,z) = x y z + xy z + xyz + xyz x y z x y z x yz x yz X xy z xy z xyz xyz Z Y Ένας τρόπος απεικόνισης είναι να βάλουμε στη θέση των τετραγώνων το 1. 1 X 1 1 1 Z Y
Χάρτες KARNAUGH Άσκηση 2 Λύση Δημιουργούμε ομάδες των 2, 4 ή 8 μονάδων. Y 1 X 1 1 1 Z Ο παραπάνω πίνακας αντιστοιχεί: Y x y z X xy z xyz xyz Z Αποτέλεσμα: xy + y z + xz = y z + xy
Χάρτες KARNAUGH Άσκηση 2 Λύση Το ίδιο αποτέλεσμα απλοποίησης θα προέκυπτε αν προσπαθούσαμε να κάνουμε την απλοποίηση μέσω της άλγεβρας Boole. f(x,y,z) = x y z + xy z + xyz + xyz Συνάρτηση x y z + xy z + xyz + xyz = Αποτέλεσμα: xy + y z + xz = y z + xy Αξίωμα/Θεώρημα Επιμεριστική Ιδιότητα xy (z + z) + y z (x + x) = z + z = 1, x + x = 1 xy + y z
Χάρτες KARNAUGH Διαδικασία Απλοποίησης Συνάρτησης Μας δίνεται μια συνάρτηση και θέλουμε να την απλοποιήσουμε. Αρχικά, πρέπει να μετατρέψουμε την συνάρτηση σε άθροισμα ελαχιστόρων αν δεν είναι ήδη. Ένας εύκολος τρόπος να το κάνουμε είναι να φτιάξουμε πίνακα αληθείας για την συνάρτηση. Η συνάρτηση που προκύπτει από τον πίνακα αληθείας είναι σε κανονική μορφή, αλλά δεν είναι σε απλοποιημένη μορφή. Για να απλοποιήσουμε μια συνάρτηση που είναι σε κανονική μορφή εφαρμόζουμε χάρτη Karnaugh 2, 3 ή 4 μεταβλητών ανάλογα την περίπτωση. Στον χάρτη Karnaugh τοποθετούμε τους άσσους, τους ομαδοποιούμε και στη συνέχεια βγάζουμε κοινό παράγοντα. Τέλος, προκύπτει η απλοποιημένη μορφή της συνάρτησης.
Truth Table Solver
Είναι ένα πρόγραμμα το οποίο λύνει (solves) τον πίνακα αληθείας και έχει σαν έξοδο όλες τις πιθανές ελαχιστοποιημένες boolean εκφράσεις. Χρησιμοποιεί τον αλγόριθμο Quine-McCluskey algorithm (Tabulation method) για να πραγματοποιήσει boolean minimization. Είναι ένα εύκολο στη χρήση γραφικό περιβάλλον (GUI), το οποίο μπορεί να λύσει έναν πίνακα αληθείας χρησιμοποιώντας μέχρι και 16 μεταβλητές σαν είσοδο. Είναι free και open source πρόγραμμα και είναι γραμμένο σε Java.
Website http://truthtablesolve.sourceforge.net/ Download http://sourceforge.net/projects/truthtablesolve/files/
Γραφικό Περιβάλλον
Προκειμένου να υπολογίσουμε μια ελαχιστοποιημένη boolean έκφραση ακολουθούμε τα παρακάτω βήματα. 2. Επιλέγουμε ποιά έξοδος θα έχει αποτέλεσμα 1, ποιά 0 και ποιά d. 1. Επιλέγουμε αριθμό μεταβλητών. 4. Στο συγκεκριμένο πλαίσιο εμφανίζεται η ελαχιστοποιημένη έκφραση. 3. Πατάμε «Solve».
Function Number Of Terms Τιμή 0 1 d (don t care = αδιάφορος όρος) Τιμές 2 3... 15 16
Χρήση του Truth Table Solver 1. Δεδομένου οτι έχουμε ήδη υπολογίσει τον πίνακα αληθείας μέσω πράξεων, μπορούμε να επαληθεύσουμε τα αποτελέσματα που βρήκαμε εισάγοντάς τα στο πρόγραμμα. 2. Εισάγοντας τον αριθμό των μεταβλητών, μπορούμε να δούμε το συνδυασμό των τιμών τους και ανάλογα με το αν επιλέξουμε να έχει σαν αποτέλεσμα η συνάρτηση 0, 1 ή d να δούμε την boolean έκφραση.
Παράδειγμα Να υπολογιστεί ο πίνακας αληθείας της συνάρτησης και στη συνέχεια να επαληθευτεί το αποτελέσμα μέσω του Truth Table Solver. f(x,y) = xy + x y Έχουμε ήδη υπολογίσει τον παρακάτω πίνακα αληθείας (προηγούμενες διαφάνειες). x y x' y' xy' x'y xy'+ x'y 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0
Παράδειγμα Επαλήθευση του αποτελέσματος μέσω του Truth Table Solver. x y xy' + x'y 0 0 0 0 1 1 1 0 1 1 1 0
Παράδειγμα Επαλήθευση του αποτελέσματος μέσω του Truth Table Solver. x y xy' + x'y 0 0 0 0 1 1 1 0 1 1 1 0 Παρατηρούμε οτι το αποτέλεσμα είναι όντως αυτό που βρήκαμε από τον πίνακα αληθείας.
Άσκηση 1 Να υπολογιστεί ο πίνακας αληθείας της συνάρτησης. Να απλοποιηθεί η συνάρτηση χρησιμοποιώντας χάρτη Karnaugh. Να επαληθευτεί το αποτελέσμα μέσω του Truth Table Solver. f(x,y) = x y + x y + xy
Άσκηση 1 Λύση Να υπολογιστεί ο πίνακας αληθείας της συνάρτησης. Πίνακας Αληθείας: f(x,y) = x y + x y + xy x y x' y' x y' x'y xy x y + x'y + xy 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 Κανονική μορφή της συνάρτησης: f(x,y) = x y + x y + xy
Άσκηση 1 Λύση Να απλοποιηθεί η συνάρτηση χρησιμοποιώντας χάρτη Karnaugh. Χάρτης Karnaugh: f(x,y) = x y + x y + xy Κανονική μορφή της συνάρτησης Y 1 1 X 1 Y x y x y X xy xy Αποτέλεσμα: x y + x y + xy = x + y
Άσκηση 1 Λύση Να επαληθευτεί το αποτελέσμα μέσω του Truth Table Solver. x y x y' + x'y + xy 0 0 1 0 1 1 1 0 0 1 1 1
Άσκηση 1 Λύση Να επαληθευτεί το αποτελέσμα μέσω του Truth Table Solver. x y x y' + x'y + xy 0 0 1 0 1 1 1 0 0 1 1 1 Παρατηρούμε οτι το αποτέλεσμα είναι όντως αυτό που βρήκαμε από τον πίνακα αληθείας.
Άσκηση 2 Δεδομένου του πίνακα αληθείας να βρεθεί η απλοποιημένη συνάρτηση μέσω του Truth Table Solver. x y z f (x,y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0
Άσκηση 2 Λύση Εύρεση απλοποιημένης συνάρτησης μέσω του Truth Table Solver. x y z f (x,y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0
Άσκηση 2 Λύση Εύρεση απλοποιημένης συνάρτησης μέσω του Truth Table Solver. x y z f (x,y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0
Logisim
Λογικές Πύλες Σχεδίαση Είναι ένα free και open source εργαλείο για το σχεδιασμό ψηφιακών κυκλωμάτων. Το Logisim επιτρέπει το σχεδιασμό και την προσομοίωση ψηφιακών κυκλωμάτων. Είναι ένα εκπαιδευτικό εργαλείο, το οποίο βοηθάει να μάθουμε πως λειτουργούν τα ψηφιακά κυκλώματα.
Λογικές Πύλες Σχεδίαση Website http://www.cburch.com/logisim/el/index.html Download http://sourceforge.net/projects/circuit/ Documentation http://www.cburch.com/logisim/el/docs.html
Λογικές Πύλες Σχεδίαση Γραφικό Περιβάλλον
Λογικές Πύλες Σχεδίαση Ας σχεδιάσουμε μια απλή πύλη για να δούμε πως λειτουργεί το Logisim... Πύλη AND Προσθέτουμε μία πύλη AND, είτε από το μενού πάνω, είτε από τις πύλες δεξιά της οθόνης.
Λογικές Πύλες Σχεδίαση Πύλη AND Προσθέτουμε εισόδους, εξόδους και καλωδίωση.
Λογικές Πύλες Σχεδίαση Πύλη AND Κάνοντας διπλό κλικ στην πύλη AND μπορούμε να ορίσουμε πόσες εισόδους θα έχει. Επιλέγουμε 2.
Λογικές Πύλες Σχεδίαση Πύλη AND Μενού -> Εργο -> Ανάλυση κυκλώματος
Λογικές Πύλες Σχεδίαση Πύλη AND Μενού -> Εργο -> Ανάλυση κυκλώματος (Είσοδοι, Έξοδοι)
Λογικές Πύλες Σχεδίαση Πύλη AND Μενού -> Εργο -> Ανάλυση κυκλώματος (Πίνακας, Έκφραση)
Λογικές Πύλες Σχεδίαση Πύλη AND Μενού -> Εργο -> Ανάλυση κυκλώματος (Ελαχιστοποιημένο: Άθροισμα Γινομένων, Γινόμενο Αθροισμάτων)
Λογικές Πύλες Σχεδίαση Άσκηση 1 f(a,b,c) = a + b ac + bc Να σχεδιάσετε με Logisim το κύκλωμα της συνάρτησης και να βρείτε την έκφραση, τον πίνακα αληθείας και τον χάρτη Karnaugh (ελαχιστοποιημένο άθροισμα γινομένων).
Λογικές Πύλες Σχεδίαση Άσκηση 1 Λύση f(a,b,c) = a + b ac + bc
Λογικές Πύλες Σχεδίαση Άσκηση 1 Λύση f(a,b,c) = a + b ac + bc
Λογικές Πύλες Σχεδίαση Άσκηση 1 Λύση f(a,b,c) = a + b ac + bc
Λογικές Πύλες Σχεδίαση Άσκηση 1 Λύση f(a,b,c) = a + b ac + bc
Λογικές Πύλες Σχεδίαση Άσκηση 2 D(A,B,C) = A (B + C) Να σχεδιάσετε με Logisim το κύκλωμα της συνάρτησης και να βρείτε την έκφραση, τον πίνακα αληθείας και τον χάρτη Karnaugh (ελαχιστοποιημένο άθροισμα γινομένων). Στη συνέχεια να υπολογίσετε με Logisim το κύκλωμα με χρήση ΜΟΝΟ πυλών NAND.
Λογικές Πύλες Σχεδίαση Άσκηση 2 Λύση D(A,B,C) = A (B + C)
Λογικές Πύλες Σχεδίαση Άσκηση 2 Λύση D(A,B,C) = A (B + C)
Λογικές Πύλες Σχεδίαση Άσκηση 2 Λύση D(A,B,C) = A (B + C)
Λογικές Πύλες Σχεδίαση Άσκηση 2 Λύση D(A,B,C) = A (B + C)
Λογικές Πύλες Σχεδίαση Άσκηση 2 Λύση Υπολογισμός κυκλώματος με χρήση ΜΟΝΟ πυλών NAND.
Λογικές Πύλες Σχεδίαση Άσκηση 2 Λύση Υπολογισμός κυκλώματος με χρήση ΜΟΝΟ πυλών NAND.
Λογικές Πύλες Σχεδίαση Αντικατάσταση πυλών με πύλες NAND Πύλη NOT Ισχύει: Επομένως, έχουμε την παρακάτω ισοδυναμία:
Λογικές Πύλες Σχεδίαση Αντικατάσταση πυλών με πύλες NAND Πύλη AND Ισχύει: Δηλαδή η AND πύλη μπορεί να αντικατασταθεί από μια NAND, η έξοδος της οποίας αντιστρέφεται από μια δεύτερη NAND. Επομένως, έχουμε την παρακάτω ισοδυναμία:
Λογικές Πύλες Σχεδίαση Αντικατάσταση πυλών με πύλες NAND Πύλη OR Θεώρημα De Morgan: Επομένως, έχουμε την παρακάτω ισοδυναμία:
Λογικές Πύλες Σχεδίαση Αντικατάσταση πυλών με πύλες NOR Η λογική NOR είναι η δυαδική της λογικής NAND. Πύλη NOT Ισχύει η παρακάτω ισοδυναμία: Πύλη OR Ισχύει η παρακάτω ισοδυναμία:
Λογικές Πύλες Σχεδίαση Αντικατάσταση πυλών με πύλες NOR Πύλη AND Ισχύει η παρακάτω ισοδυναμία:
Λογικές Πύλες - Ανακεφαλαίωση Κύκλωμα ΜΟΝΟ με πύλες NAND Στο χάρτη Karnaugh ομαδοποιούμε τους άσσους και καταλήγουμε σε άθροισμα γινομένων (απλοποιημένη συνάρτηση). Κάνουμε διπλό inverse στο αποτέλεσμα (χρήση DeMorgan). Καταλήγουμε σε κύκλωμα μόνο με πύλες NAND. Κύκλωμα ΜΟΝΟ με πύλες NOR Στο χάρτη Karnaugh ομαδοποιούμε τα μηδενικά (και ΌΧΙ τους άσσους). Βρίσκουμε την αντίστροφη συνάρτηση, εφόσον ομαδοποιήσαμε τα μηδενικά. Κάνουμε διπλό inverse στο αποτέλεσμα (χρήση DeMorgan). Καταλήγουμε σε κύκλωμα μόνο με πύλες NOR. Αδιάφοροι Όροι Είναι πλεονάζοντες όροι, των οποίων η τιμή δεν μας ενδιαφέρει αν θα είναι 0 ή 1. Χρησιμοποιούνται για την ομαδοποίηση στους χάρτες Karnaugh.