ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Συνδυαστική Λογική / Κυκλώματα (Μέρος B) Διδάσκουσα: Μαρία Κ Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Βελτιστοποίηση κυκλωμάτων πολλαπλών επιπέδων (μετασχηματισμοί) Λογικές Πύλες NAND και NOR πύλες Κυκλώματα με NAND και NOR Υλοποίηση 2 επιπέδων Υλοποίηση πολλαπλών επιπέδων Exclusive-OR (OR) πύλες Περιττή Συνάρτηση (Odd Function) Παραγωγή και έλεγχος ισοτιμίας (Parity) MKM - 2 Συνδιαστικά Λογικά Κυκλώματα
Βελτιστοποίηση κυκλωμάτων Πολλαπλών Επιπέδων (Multiple-level circuit optimization) Μπορεί να προσφέρει μεγαλύτερη εξοικονόμηση στο κόστος ενός κυκλώματος Θεωρήστε: G = abc + abe + d + ac + ae κόστος = 5 πύλες + 5 διασυνδέσεις a b c d e abc abe ac ae G G = ab(c+e) + d + a(c+e) κόστος = 5 πύλες + 2 διασυνδέσεις a b c d e ab(c+e) a(c+e) G MKM - 3 Βελτιστοποίηση κυκλωμάτων Πολλαπλών Επιπέδων (Multiple-level circuit optimization) G = ab(c+e) + d + a(c+e) κόστος = 5 πύλες + 2 διασυνδέσεις a b c d e ab(c+e) a(c+e) G G = (ab+a)(c+e) + d κόστος = 5 πύλες + 9 διασυνδέσεις a b c a+ab G e d c+e G = a(c+e) + d κόστος = 3 πύλες + 6 διασυνδέσεις a c e d a(c+e) G MKM - 4 Συνδιαστικά Λογικά Κυκλώματα 2
Βελτιστοποίηση κυκλωμάτων Πολλαπλών Επιπέδων (συν) εν υπάρχει συστηματική μέθοδος/αλγόριθμος (όπως χάρτες-karnaugh ή Queen-McCluskey για διεπίπεδη ελαχιστοποίηση) για πολλαπλά επίπεδα Βασιζόμαστε σε ένα σύνολο βασικών λειτουργιών μετασχηματισμών, για να βρούμε μια καλή λύση, αλλά όχι απαραίτητα βέλτιστη (sub-optimal solution) Μετασχηματισμοί: Παραγοντοποίηση (Factoring) Αποσύνθεση (Decomposition) Εξαγωγή (Extraction) Αντικατάσταση (Substitution) Απαλοιφή (Elimination ή Flattening ή Collapsing) MKM - 5 Αλγεβρικοί Μετασχηματισμοί Παραγοντοποίηση (Factoring) Εξεύρεση κοινών παραγόντων από SOP ή POS εκφράσεις, πχ: F = A C D + A BC + ABC + ACD (G = 6) Παραγ F = A (C D + BC ) + A(BC + CD ) (G = 6) Ξανά παραγ F = A C (D + B) + AC( B + D ) (G = 2) Ξανά παραγ F = (A C + AC)( B + D ) (G = ) G= αρ εισόδων για το σύνολο των πυλών = αρ διασυνδέσεων (εκτός ΝΟΤ) MKM - 6 Συνδιαστικά Λογικά Κυκλώματα 3
Αλγεβρικοί Μετασχηματισμοί (συν) Αποσύνθεση (Decomposition) Μια συνάρτηση εκφράζεται από ένα σύνολο νέων συναρτήσεων, πχ: Θεωρήστε την F = (A C + AC)( B + D ) (το αποτέλεσμα της προηγούμενης παραγοντοποίησης) Αποσύνθεση: Ορίζουμε 2 νέες συναρτήσεις: Ε = Α C +AC και H = B + D F= E H Άλλο παράδειγμα: F = Α(C +D )(E+F) + BCDE F Αποσύνθεση: Χ = CD, 2 = E+F (G=4) F = A(C +D ) 2 +BΧ E F = AΧ 2 + BΧ 2 (G=9) MKM - 7 Αλγεβρικοί Μετασχηματισμοί (συν) Εξαγωγή (Extraction) Πολλαπλές συναρτήσεις εκφράζονται από ένα σύνολο νέων συναρτήσεων, πχ : F = A B D + A BD = A (B D + BD) και H = B CD + BCD = C(B D + BD) Ορίζουμε E = B D + BD F = A E H = CE Οι 2 συναρτήσεις (F και Η) έχουν κοινό υλικό (Ε) A B D B D C E F H MKM - 8 Συνδιαστικά Λογικά Κυκλώματα 4
Αλγεβρικοί Μετασχηματισμοί (συν) Αντικατάσταση (Substitution) Αντικατάσταση μιας συνάρτησης G σε μια συνάρτηση F η F εκφράζεται ως συνάρτηση της G και κάποιων άλλων μεταβλητών Αυτό το έχουμε ήδη δει να γίνεται στο τέλος της αποσύνθεσης, πχ: F = Α(C +D )(E+F) + BCDE F Αποσύνθεση: Χ = CD, 2 = E+F F = A(C +D ) 2 +BΧ E F = AΧ 2 + BΧ 2 Αντικατάσταση MKM - 9 Αλγεβρικοί Μετασχηματισμοί (συν) Απαλοιφή (Elimination/Flattening/Collapsing) Το αντίθετο της αντικατάστασης ησυνάρτησηg (μέρος της F) αναπτύσσεται στην F, πχ Έχουμε τις πιο κάτω συναρτήσεις: = B + C Y = A + B Z = A + CY Απαλοιφή των και Υ από την Ζ: Ζ = Α (B + C) + C(A + B) Elimination = A B + A C +AC +BC Flattening Συχνά αυξάνει το κόστος, αλλά παρέχει μια νέα SOP μορφή για ελαχιστοποίηση 2 επιπέδων MKM - Συνδιαστικά Λογικά Κυκλώματα 5
Λογικές Πύλες AND, OR και NOT Μπορούμε να κατασκευάσουμε οποιοδήποτε συνδυαστικό κύκλωμα με τις πύλες AND, OR, και NOT Επιπρόσθετες λογικές πύλες μπορούν να χρησιμοποιηθούν για πρακτικούς λόγους MKM - BUFFER, NAND και NOR MKM - 2 Συνδιαστικά Λογικά Κυκλώματα 6
OR και NOR OR: πύλη μη-ισότητας Y F = Y Y F NOR: πύλη ισότητας Y F = Y Y F MKM - 3 Πύλη NAND Είναι γνωστή ως «οικουμενική» ( universal ) πύλη γιατί μπορούμε να υλοποιήσουμε οποιοδήποτε ψηφιακό κύκλωμα μόνο με αυτές τις πύλες Για να αποδείξουμε το πιο πάνω χρειάζεται να δείξουμε ότι οι πύλες AND, OR και NOT μπορούν να εκφραστούν χρησιμοποιώντας μόνο πύλες NAND MKM - 4 Συνδιαστικά Λογικά Κυκλώματα 7
Εξομοίωση πύλης NAND F = ( ) = + = F = Y F = (( Y) ) = ( +Y ) = Y = Y Y F = Y Y F = ( Y ) = +Y = +Y Y F = +Y MKM - 5 Κυκλώματα NAND Γιαναβρείτεμιαυλοποίησηενόςκυκλώματος χρησιμοποιώντας μόνο πύλες NAND ακολουθήστε τα πιο κάτω βήματα: Βρέστε ένα απλοποιημένο SOP Το SOP είναι ένα AND-OR κύκλωμα Αλλάξτε το AND-OR κύκλωμα σε ένα NAND κύκλωμα Χρησιμοποιήστε τα πιο κάτω εναλλακτικά σύμβολα: MKM - 6 Συνδιαστικά Λογικά Κυκλώματα 8
Εξομοίωση SOP με NAND Υλοποίηση 2 επιπέδων a) Αρχικό SOP (AND-OR κύκλωμα) b) Υλοποίηση χρησιμοποιώντας πύλες NAND MKM - 7 Εξομοίωση SOP με NAND (συν) Επαλήθευση: (a) G = WY + YZ (b) G = ( (WY) (YZ) ) = (WY) + (YZ) = WY + YZ MKM - 8 Συνδιαστικά Λογικά Κυκλώματα 9
SOP με NAND (ξανά!) (a) (b) (c) Αρχικό SOP AND-NOT ιπλή αντιστροφή (NOT) και ομαδοποίηση Αντικατάσταση με πύλες NAND NOT-OR MKM - 9 Υλοποίηση 2-επιπέδων με NAND Παράδειγμα F (,Y,Z) = Σm(,6) Εκφράστε την F σε SOP μορφή F = Y Z + YZ 2 Βρείτε την SOP υλοποίηση για την F 3 Αντικατάσταση: AND AND-NOT μορφή της NAND OR NOT-OR μορφή της NAND MKM - 2 Συνδιαστικά Λογικά Κυκλώματα
Παράδειγμα (συν) υεπίπεδη υλοποίηση με πύλες NAND F = Y Z + YZ MKM - 2 Κυκλώματα πολλαπλών επιπέδων NAND Ξεκινά από ένα κύκλωμα πολλαπλών επιπέδων: Μετατροπή όλων των πυλών AND σε NAND με σύμβολα AND-NOT 2 Μετατροπή όλων των πυλών OR σε NAND με σύμβολα NOT-OR 3 Έλεγχος όλων των αντιστροφέων (bubbles) στο διάγραμμα Για κάθε bubble που δεν εξουδετερώνεται με άλλο bubble πάνω στην ίδια γραμμή, προσθέτουμε μια πύλη NOT ή συμπληρώνουμε την είσοδο MKM - 22 Συνδιαστικά Λογικά Κυκλώματα
Παράδειγμα Χρησιμοποιήστε πύλες NAND και πύλες NOT για την υλοποίηση της: 2 3 4 Z=E F(AB+C +D )+GH AB () AB+C +D (2) E F(AB+C +D ) (3) E F(AB+C +D )+GH (4) MKM - 23 Ακόμα ένα Παράδειγμα MKM - 24 Συνδιαστικά Λογικά Κυκλώματα 2
Πιο απλός τρόπος! Αντικατάσταση πυλών τύπου AND και OR: 2 Πύλες NOT: MKM - 25 Παράδειγμα A B C D E (a) F A B C D E 7 8 Y 5 3 (b) 6 OI 2 4 9 F A B 5 7 Y 5 6 C D F E (c) (d) MKM - 26 Συνδιαστικά Λογικά Κυκλώματα 3
Πύλη NOR Επίσης «οικουμενική» πύλη αφού οποιοδήποτε ψηφιακό κύκλωμα μπορεί να υλοποιηθεί μόνο με πύλες NOR Μπορούμε να το αποδείξουμε με τον ίδιο τρόπο που έχουμε αποδείξει την πύλη NAND (διαφάνεια 7) MKM - 27 Κυκλώματα NOR Για την υλοποίηση μιας συνάρτησης με πύλες NOR : Βρείτε ένα απλοποιημένο POS Το POS είναι ένα κύκλωμα OR-AND Αλλάξτε το OR-AND κύκλωμα σε NOR κύκλωμα Χρησιμοποιήστε τα πιο κάτω σύμβολα MKM - 28 Συνδιαστικά Λογικά Κυκλώματα 4
Υλοποίηση 2-επιπέδων με NOR Παράδειγμα F(,Y,Z) = Σm(,6) Εκφράστε την F ( ) σε SOP μορφή: F = Σm(,2,3,4,5,7) = Y Z + YZ + YZ + Y Z + Y Z + YZ 2 F = Y + Y + Z 2 Πάρτε το συμπλήρωμα της F για να υπολογίσετε την F σε μορφή POS: F = (F ) = ('+Y)(+Y')(Z ) 3 Βρείτε την OR-AND υλοποίηση της F 4 Προσθέστε bubbles και αντιστροφείς για την μετατροπή μιας OR-AND υλοποίησης σε μια NOR-NOR υλοποίηση MKM - 29 Παράδειγμα (συν) Υλοποίηση 2 επιπέδων με πύλες NOR F = (F )' = ('+Y)(+Y')Z' MKM - 3 Συνδιαστικά Λογικά Κυκλώματα 5
Κυκλώματα πολλαπλών επιπέδων NOR Ξεκινά από ένα κύκλωμα πολλαπλών επιπέδων: Μετατροπή όλων των πυλών OR σε NOR με σύμβολα OR-NOT 2 Μετατροπή όλων των πυλών AND σε NOR με σύμβολα NOT-AND 3 Έλεγχος όλων των αντιστροφέων (bubbles) στο διάγραμμα Για κάθε bubble που δεν εξουδετερώνεται με άλλο bubble πάνω στην ίδια γραμμή, προσθέτουμε μια πύλη NOT ή συμπληρώνουμε την είσοδο MKM - 3 Πιο απλός τρόπος! Αντικατάσταση πυλών τύπου AND και OR: 2 Πύλες NOT: MKM - 32 Συνδιαστικά Λογικά Κυκλώματα 6
Παράδειγμα A B A B C D E (a) A B F C D E (b) 3 2 F C F D E (c) MKM - 33 Συνάρτηση Exclusive-OR (OR) OR (συμβολίζεται με ) : η συνάρτηση μη-ισότητας OR(,Y) = Y = Y + Y Ταυτότητες: = = = = Ιδιότητες: Y = Y -- Αντιμεταθετική ( Y) W = ( Y W) -- Προσεταιριστική MKM - 34 Συνδιαστικά Λογικά Κυκλώματα 7
Υλοποίηση OR συνάρτησης OR(a,b) = ab + a b Άμεσος τρόπος: 5 πύλες 2 αντιστροφείς, δύο AND 2-εισόδων, μια OR 2-εισόδων ή 2 αντιστροφείς & 3 NAND 2- εισόδων Έμμεσος τρόπος: 4 πύλες NAND MKM - 35 Κύκλωμα OR με 4 NAND MKM - 36 Συνδιαστικά Λογικά Κυκλώματα 8
Συνάρτηση Exclusive-NOR (NOR) NOR: η συνάρτηση ισότητας NOR(a,b) = ab + a b Παρατηρήστε ότι NOR(a,b) = ( OR(a,b) ) ( a b ) = ( a b + ab ) = (a b) (ab ) = (a + b ) (a +b) = ab + a b a b = ( a b ) = a b MKM - 37 x y = x y + xy Περιττή Συνάρτηση (Odd Function) x y z = xy z + x yz + x y z +xyz x y z w = x yzw + xy zw + xyz w + xyzw + x y z w + x yz w + x y zw +xy z w Παρατηρείτε κάτι που επαναλαμβάνεται εδώ; MKM - 38 Συνδιαστικά Λογικά Κυκλώματα 9
x y = x y + xy Περιττή Συνάρτηση (Odd Function) x y z = xy z + x yz + x y z +xyz x y z w = x yzw + xy zw + xyz w + xyzw + x y z w + x yz w + x y zw +xy z w Παρατηρείτε κάτι που επαναλαμβάνεται εδώ; Μια συνάρτηση OR n-εισόδων είναι αληθής (=) για όλους τους ελαχιστόρους που έχουν περιττό αριθμό από Γι αυτό το OR είναι γνωστό ως «η περιττή συνάρτηση» MKM - 39 Περιττή Συνάρτηση (συν) Οι ελαχιστόροι απέχουν 2 τετράγωνα ο ένας από τον άλλον MKM - 4 Συνδιαστικά Λογικά Κυκλώματα 2
Περιττή Συνάρτηση (συν) Υλοποίηση με OR 2-εισόδων MKM - 4 Άρτια Συνάρτηση Πως θα υλοποιούσατε μια άρτια συνάρτηση; Από το συμπλήρωμα του OR NOR MKM - 42 Συνδιαστικά Λογικά Κυκλώματα 2
Παραγωγή ισοτιμίας και έλεγχος Οι περιττές και άρτιες συναρτήσεις μπορούν να χρησιμοποιηθούν για την υλοποίηση κυκλωμάτων ελέγχου ισοτιμίας (parity check) που χρησιμοποιούνται για εξεύρεση λαθών και τη διόρθωσή τους Γεννήτρια Ισοτιμίας (Parity Generator): το κύκλωμα που παράγει το bit ισοτιμίας, πριν τη μετάδοση από τον αποστολέα Έλεγχος Ισοτιμίας (Parity Check): το κύκλωμα που ελέγχει την ισοτιμία στον παραλήπτη, για εξεύρεση λαθών MKM - 43 Παραγωγή Άρτιας Ισοτιμίας Παράδειγμα Η P(,Y,Z) πρέπει να παράγει για κάθε συνδυασμό εισόδων που περιέχει περιττό αριθμό από Είναι μια περιττή συνάρτηση 3 ων -εισόδων P = Y Z MKM - 44 Συνδιαστικά Λογικά Κυκλώματα 22
Έλεγχος Άρτιας Ισοτιμίας Παράδειγμα (συν) Πως θα υλοποιούσατε τον έλεγχο ισοτιμίας για το προηγούμενο παράδειγμα; α) Χρησιμοποιήστε ένα κύκλωμα OR 4 ων -εισόδων (περιττή συνάρτηση) C = Y Z P υποδεικνύει ένα λάθος ή β) Χρησιμοποιήστε ένα NOR κύκλωμα 4 ων -εισόδων (άρτια συνάρτηση) C = ( Y Z P) υποδεικνύει ορθή ισοτιμία MKM - 45 Συνδιαστικά Λογικά Κυκλώματα 23