Ελαχιστοποίηση με την μέθοδο Quine McCluskey

6
ΗΡΥ 101 Λογική Σχεδίαση Συμπληρωματικό Υλικό: Ελαχιστοποίηση με την μέθοδο Quine McCluskey Έκδοση 2.0 Χειμερινό Εξάμηνο 2013 Καθ. Απόστολος Δόλλας Εργαστήριο Μικροεπεξεργαστών και Υλικού Σχολή ΗΜΜΥ Πολυτεχνείο Κρήτης

description

σημειώσεις

Transcript of Ελαχιστοποίηση με την μέθοδο Quine McCluskey

Page 1: Ελαχιστοποίηση με την μέθοδο Quine McCluskey

 

ΗΡΥ 101 

Λογική Σχεδίαση 

 

 

 

Συμπληρωματικό Υλικό: 

Ελαχιστοποίηση με την μέθοδο Quine McCluskey 

Έκδοση 2.0 

Χειμερινό Εξάμηνο 2013 

Καθ. Απόστολος Δόλλας 

  

Εργαστήριο Μικροεπεξεργαστών και Υλικού Σχολή  ΗΜΜΥ 

Πολυτεχνείο Κρήτης 

 

Page 2: Ελαχιστοποίηση με την μέθοδο Quine McCluskey

Ελαχιστοποίηση με την μέθοδο Quine McCluskey 

  

Η μέθοδος Quine McCluskey βασίζεται στο εξής θεώρημα της άλγεβρας Boole: Ax’ + 

Ax = A (Θεώρημα Τ10 στο βιβλίο του Wakerly, και η γενικευμένη του μορφή, Στο βιβλίο του 

Mano είναι η άσκηση 2.2 α με την λύση –αλλά όχι την διαδικασία‐ στο τέλος του βιβλίου). 

Για  να  το κάνουμε αυτό ομαδοποιούμε  τους όρους σύμφωνα με  τον αριθμό «0»  και «1» 

που έχουν στην αναπαράστασή τους. Π.χ. άν έχουμε μία συνάρτηση F(w,x,y,z) = Σ(....,9,...), ο 

όρος    9  που  σε  δυαδική  μορφή  είναι  1001  μπαίνει  στην  ομάδα  που  έχει  δύο  «1»  και 

αντιστοιχεί  στον  όρο w  x’  y’  z.  Η  ομαδοποίηση  για  συναρτήσεις    τεσσάρων  μεταβλητών 

είναι η εξής: 

 

Όρος  Δυαδική 

μορφή 

όρου 

Εάν έχουμε 

συνάρτηση 

τεσσάρων 

μεταβλητών 

F(w,x,y,z) 

αντιστοιχεί σε: 

0  0000  w’ x’ y’ z’ 

1  0001  w’ x’ y’ z 

2  0010  w’ x’ y z’ 

4  0100  w’ x y’ z’ 

8  1000  w x’ y’ z’ 

3  0011  w’ x’ y z 

5  0101  w’ x y’ z 

6  0110  w’ x y z’ 

9  1001  w x’ y’ z 

10  1010  w x’ y z’ 

12  1100  w x y’ z’ 

7  0111  w’ x y z 

11  1011  w x’ y z 

13  1101  w x y’ z 

14  1110  w x y z’ 

15  1111  w x y z 

 

Από  το  κανονικό  ανάπτυγμα  μίας  συνάρτησης  κρατάμε  μόνο  τους  όρους  που 

αντιστοιχούν  σε  αληθή  τιμή  της  συνάρτησης  (δηλ.  σε  «1»)  και  τους  ομαδοποιούμε 

σύμφωνα με τον παραπάνω πίνακα (ή τον αντίστοιχο πίνακα με περισσότερες ή λιγότερες 

μεταβλητές), δηλαδή δημιουργούμε το υποσύνολο του πίνακα που αντιστοιχεί στους όρους 

όπου η συνάρτηση είναι αληθής.  

 

Page 3: Ελαχιστοποίηση με την μέθοδο Quine McCluskey

Η  ελαχιστοποίηση  γίνεται  με  την  κοινή  μεταβλητή  που  διαφέρει  ανάμεσα  σε 

ζευγάρια  όρων  από  δύο  διαδοχικές  ομάδες  όταν  όλες  οι  υπόλοιπες  μεταβλητές  είναι 

ακριβώς  ίδιες,  εφόσον  υπάρχει.  Ο  όρος  που  δημιουργείται  μπαίνει  σε  καινούργια 

καταχώρηση,  με –  εκεί  που  λείπει  η  μεταβλητή,  π.χ.  οι  όροι 5  (w’ x y’  z)  και 7  (w’ x y  z) 

συνδυάζονται στον όρο (5,7), δηλαδή (w’ x – z). Οι παύλες είναι απαραίτητες. Όσοι τέτοιοι 

όροι δημιουργούνται από δύο διαδοχικές ομάδες μπαίνουν σε καινούργιες ομάδες ώστε να 

μπορούν να συνδυαστούν περαιτέρω, σε ζευγάρια όρων από διαδοχικές ομάδες (που όμως 

όλες είναι από τις καινο΄θργιες ομάδες). Επίσης, σημειώνονται οι όροι που εμπερικλείονται 

(ο  όρος  5  και  ο  όρος  5  στα  παραπάνω  παράδειγμα),  αφού  δεν  περιλαμβάνονται  σε 

ελαχιστόρους.  Η  διαδικασία  συνεχίζεται  και  όταν  τελειώσουμε  με  τον  αρχικό  πίνακα 

υπάρχουν ομάδες που προέκυψαν με νέους όρους. Συνεχίζουμε να τους συνδυάζουμε ανά 

ζευγάρι  όρων  από  διαδοχικές  ομάδες  (και  να  σημειώνουμε  ότι  περιλήφθηκαν  σε 

μεγαλύτερους  όρους),  με  τον  επί  πλέον  περιορισμό  ότι  οι  παύλες  πρέπει  να  ταιριάζουν 

ανάμεσα σε όρους που συνδυάζονται, π.χ. οι όροι w’ x – z’ και w’ x – z συνδυάζονται στον 

όρο w’ x ‐ ‐  αλλά οι όροι  w’ x – z και w’ – y z δεν μπορούν να συνδυαστούν.   Συνεχίζουμε 

την  διαδικασία  μέχρις  ότου  δεν  υπάρχουν  πλέον  διαδοχικές  δυάδες  ομάδων  για  να 

συγκρίνουμε όρους.  

 

Σημειώνουμε  ότι  κάποιοι  όροι  μπορεί  να  δημιουργηθούν  με  δύο  διαφορετικούς 

τρόπους,  στην  οποία  περίπτωση  κρατάμε  ένα  αντίγραφο  του  νέου  όρου,  αλλά 

σημειώνουμε όλους τους αρχικούς όρους που τον δημιούργησαν ότι έχουν περιληφθεί. Για 

παράδειγμα,  ο  όρος  (4,5,12,13),  που  είναι  ο  όρος  (‐  x  y’  ‐)  μπορεί  να  δημιουργηθεί  από 

συνένωση των όρων  (4,5) και  (12,13) ή μπορεί να δημιουργηθεί από συνένωση των όρων 

(4,12)  και  (5,13),  οπότε  κρατάμε  τον  όρο  (4,5,12,13)  μία  φορά,  αλλά  σημειώνουμε  τους 

όρους  (4,5),  (12,13),  (4,12),  (5,13) σαν όρους που περιλαμβάνονται σε μεγαλύτερο όρο. Ο 

τρόπος που το κάνουμε αυτό είναι ότι δημιουργούμε κάθε φορά τους μεγαλύτερους όρους, 

μαρκάροντας  τους  όρους  που  περικλείουν,  και  αφού  τελειώσει  η  διαδικασία  αυτή  αν 

κάποιος όρος εμφανίζεται δύο φορές κρατάμε την μία μόνο.  

 

  Η παραπάνω διαδικασία μας δίνει τους πρωταρχικούς όρους (prime implicants) της 

συνάρτησης,  αλλά  όχι  την  ίδια  την  ελαχιστοποιημένη  μορφή  (κάποιοι  πρωταρχικοί  όροι 

μπορεί να μην χρειάζονται στην ελαχιστοποιημένη μορφή).  

Το  τελικό  βήμα  είναι  να  δημιουργήσουμε  ένα  πίνακα,  με  στήλες  για  κάθε  όρο  (σε 

κανονικοποιημένη μορφή) της αρχικής συνάρτησης και σειρές για κάθε πρωταρχικό όρο της 

συνάρτησης.  Προφανώς  στήλες  με  μία  μόνο  καταχώρηση  αντιστοιχούν  στους  ουσιώδεις 

πρωταρχικούς  όρους  (essential  prime  implicants,  το  βιβλίο  τους  λέει  σαν  «ουσιώδεις 

πρωταρχικούς  όρους»)  και  τους  περιλαμβάνουμε.  Περιλαμβάνουμε  επίσης  και  όποιους 

άλλους  όρους  χρειαζόμαστε  για  να  ολοκληρώσουμε  την  κάλυψη  όλων  των  στηλών,  και 

κάθε φορά που  επιλέγουμε  ένα  όρο «μαρκάρουμε»  όλες  τις  στήλες  που περιλαμβάνει  ο 

όρος αυτός.  

 

Σημείωση: Στην επαναληπτική διαδικασία δεν χρειάζεται να έχετε και την στήλη με 

τους αριθμούς που αντιστοιχούν σε κάθε όρο (π.χ. 1 0 – 1) και την στήλη με τα γράμματα 

(π.χ. w x’ – z), μία από τις δύο αρκεί.  

 

Page 4: Ελαχιστοποίηση με την μέθοδο Quine McCluskey

Παράδειγμα:  

 

Ελαχιστοποιήσετε την συνάρτηση F(w,x,y,z) = Σ(2,3,4,5,6,7,10,12,13). 

 

Λύση: 

 

Δημιουργούμε αρχικά τον πίνακα με τους όρους της συνάρτησης. 

 

2  0010  w’ x’ y z’ 

4  0100  w’ x y’ z’ 

3  0011  w’ x’ y z 

5  0101  w’ x y’ z 

6  0110  w’ x y z’ 

10  1010  w x’ y z’ 

12  1100  w x y’ z’ 

7  0111  w’ x y z 

13  1101  w x y’ z 

 

Ομαδοποιοιούμε  ανά  δύο,  σημειώνοντας  τους  όρους  που  χρησιμοποιούνται. 

Διαορφώνοναι οι παρακάτω πίνακες: 

 

√  2  0010  w’ x’ y z’ 

√  4  0100  w’ x y’ z’ 

√  3  0011  w’ x’ y z 

√  5  0101  w’ x y’ z 

√  6  0110  w’ x y z’ 

√  10  1010  w x’ y z’ 

√  12  1100  w x y’ z’ 

√  7  0111  w’ x y z 

√  13  1101  w x y’ z 

 

 

√  2,3  001‐  w’ x’ y ‐ 

√  2,6  0‐10  w’ ‐ y z’ 

  2,10  ‐010  ‐ x’ y z’ 

√  4,5  010‐  w’ x y’ ‐ 

√  4,6  01‐0  w’ x ‐ z’ 

√  4,12  ‐100  ‐ x y’ z’ 

√  3,7  0‐11  w’ ‐ y z 

√  5,7  01‐1  w’ x ‐ z 

√  5,13  ‐101  ‐ x y’ z 

√  6,7  011‐  w’ x y ‐ 

√  12,13  110‐  w x y’ ‐ 

Page 5: Ελαχιστοποίηση με την μέθοδο Quine McCluskey

 

  2,3,6,7  0‐1‐  w’ ‐ y ‐ 

  2,6,3,7  0‐1‐  w’ ‐ y ‐ 

  4,5,6,7  01‐ ‐  w’ x ‐ ‐ 

  4,6,5,7  01‐ ‐  w’ x ‐ ‐ 

  4,12,5,13 ‐10 ‐  ‐ x y’ ‐ 

  4,5,12,13 ‐10 ‐  ‐ x y’ ‐ 

 

Αφού  διαγράψουμε  τους  διπλούς  όρους  (κατά  σύμβαση  κρατάμε  αυτούς  που  έχουν 

αύξουσα  αριθμητική  σειρά  εμπεριεχομένων  όρων,  αναδιατάσσοντας  τους  αριθμητικούς 

όρους  αν  χρειάζεται  αλλά  κρατώντας  τα  0,1,‐  και  μεταβλητές  ίδια),  δημιουργούμε  τον 

πίνακα με τους πρωταρχικούς όρους.  

 

  2,10  ‐010  ‐ x’ y z’ 

  2,6,3,7  0‐1‐  w’ ‐ y ‐ 

  4,5,6,7  01‐ ‐  w’ x ‐ ‐ 

  4,5,12,13 ‐10 ‐  ‐ x y’ ‐ 

 

Από  τον  πίνακα  αυτόν  δημιουργούμε  τον  πίνακα  με  την  υλοποίηση  της  συνάρτησης,  ως 

εξής: 

 

    2  3  4  5  6  7  10  12  13 

  2,10  √            √     

  2,3,6,7  √  √      √  √       

  4,5,6,7      √  √  √  √       

  4,5,12,13      √  √        √  √ 

 

Παρατηρούμε ότι ο όρος 10 περιλαμβάνεται μόνο στον πρωταρχικό όρο  (2,10),  τον οποίο 

και επιλέγουμε. Το σύμβολο √ στον πίνακα αυτόν σημαίνει ότι ο όρος περιλαμβάνεται στην 

ελάχιστη  υλοποίηση  δύο  επιπέδων  της  συνάρτησης.  Διαγράφουμε  όλες  τις  στήλες  που 

αντιστοιχούν στον όρο που περιλάβαμε, και συνεχίζουμε (λόγω κειμενογράφου η διαγραφή 

φαίνεται με μικρές οριζόντιες γραμμές, στο χαρτί διαγράφουμε ολόκληρη την στήλη με μία 

μεγάλη κάθετη γραμμή).  

 

    2  3  4  5  6  7  10  12  13 

√  2,10  √            √     

  2,3,6,7  √  √      √  √       

  4,5,6,7      √  √  √  √       

  4,5,12,13      √  √        √  √ 

 

Με αντίστοιχη διαδικασία βλέπουμε ότι ο όρος 3  περιλαμβάνεται μόνο στον πρωταρχικό 

όρο (2,3,6,7) που τον περιλαμβάνουμε επίσης, και οι όροι 12 και 13 περιλαμβάνονται μόνο 

στον  πρωταρχικό  όρο  (4,5,12,13)  που  επίσης  περιλαμβάνουμε.  Οι  παραπάνω  είναι  οι 

ουσιώδεις πρωταρχικοί όροι.  

Page 6: Ελαχιστοποίηση με την μέθοδο Quine McCluskey

 

    2  3  4  5  6  7  10  12  13 

√  2,10  √            √     

√  2,3,6,7  √  √      √  √       

  4,5,6,7      √  √  √  √       

√  4,5,12,13      √  √        √  √ 

 

Παρατηρούμε  ότι  όλοι  οι  όροι  της  συνάρτησης  καλύπτονται  από  τους  ουσιώδεις 

πρωταρχικούς  όρους  (essential  prime  implicants),  ενώ  ο  όρος  (4,5,6,7)  δεν  χρειάζεται. 

Επομένως,  η  ελάχιστη υλοποίηση  της  συνάρτησης που προκύπτει από  την μέθοδο Quine 

McCluskey  είναι  η  ακόλουθη,  που  δημιουργείται  από  τις  μεταβλητές  (όπου  βέβαια  οι 

παύλες «– » δεν χρειάζονται). 

 

F(w,x,y,z) = x’ y z’ + w’ y + x y’ 

 

Εάν  οι  ουσιώδεις  πρωταρχικοί  όροι  δεν  κάλυπταν  την  συνάρτηση  θα  συνεχίσαμε, 

επιλέγοντας  όρους  για  τις  στήλες  που  δεν  έχουν  διαγραφεί  ακόμη,  διαγράφοντας  κάθε 

φορά όλες τις στήλες που περιλαμβάνονται σε κάθε όρο.  

 

Τι κάνουμε με όρους don’t care; 

 

Οι όροι don’t care αντιμετωπίζονται ακριβώς όπως και στους πίνακες Karnaugh, δηλαδή αν 

μας  βολεύει  τους  χρησιμοποιούμε,  διαφορετικά  δεν  τους  χρησιμοποιούμε.  Ένας  απλός 

τρόπος  να  το  κάνουμε αυτό  είναι  να  τους βάλουμε σαν  να ήταν «1»  στις ομαδοποιήσεις 

όρων ώστε να συμπεριληφθούν σε όσο δυνατόν περισσότερους μεγαλύτερους (και εν τέλει, 

πρωταρχικούς)  όρους,  αλλά  όταν  κάνουμε  τον  τελικό  πίνακα  με  στήλες  και  σειρές  δεν 

περιλαμβάνουμε καμία στήλη που να αντιστοιχεί σε don’t care, αφού δεν μας ενδιαφέρει 

να  καλύψουμε  την  συνάρτηση  για  εκείνον  τον  όρο.  Προφανώς  πρωταρχικοί  όροι  που 

αντιστοιχούν μόνο σε don’t care παραμένουν τελείως αχρησιμοποίητοι, αλλά αυτό δεν μας 

πειράζει καθόλου.   

 

ΜΕΘΟΔΟΣ QUINE – McCLUSKEY – ΑΣΚΗΣΕΙΣ 

 

Άσκηση 1 

 

(α)   Χρησιμοποιώντας  ελαχιστοποίηση  Quine  McCluskey,  βρείτε  όλους  τους 

πρωταρχικούς όρους για την συνάρτηση: 

f (w, x, y, z) = Σ (1,5,6,7,11,12,13,15) 

(β)   Χαρακτηρίσετε τους όρους που βρήκατε σαν ουσιώσεις πρωταρχικούς όρους και μή 

ουσιώδεις πρωταρχικούς όρους. 

(γ)  Βρείτε ένα ελάχιστο άθροισμα γινομένων (minimal sum) για την συνάρτηση f. 

(δ)  Σχεδιάσετε με πύλες το λογικό διάγραμμα της λύσης του μέρους (γ) με λογική δύο 

επιπέδων, θεωρώντας ότι έχουμε διαθέσιμες κανονικές και αντεστραμένες εισόδους.