η Θεµατική Ενότητα : Αριθµητικά Κυκλώµατα Επιµέλεια διαφανειών: Χρ. Καβουσιανός
Άθροιση + + + + a +b 2c+s + Κρατούµενο προηγούµενης βαθµίδας κρατούµενο άθροισµα Μεταφέρεται στην επόµενη βαθµίδα σηµαντικότητας Τελικό αποτέλεσµα (δεν περνά από επεξεργασία ξανά) Κρατούµενο επόµενης βαθµίδας Συνδυαστική Λογική 2
Ηµι-Aθροιστής (Half Adder).Καθορισµός προβλήµατος: κύκλωµα που να προσθέτει δύο δυαδικά ψηφία. 2.Πλήθος εισόδων/εξόδων: 2 είσοδοι 2 έξοδοι. 3.Ονοµασία εισόδων/εξόδων: έστω x, y οι δύο είσοδοι (προσθετέοι) και C (κρατούµενο), S (άθροισµα) οι δύο έξοδοι. 4.Πίνακας αλήθειας: x y C S Συνδυαστική Λογική 3
Ηµι-Αθροιστής x y C S (α) S = x y + xy C = xy (β) S =xy+x y S =S=(xy+x y ) = (x +y )(x+y) C = xy Συνδυαστική Λογική 4
Ηµι-Αθροιστής x y C S (γ) S =S=(xy+x y ) S = (C + x y ) C = xy (δ) C = (xy) =(x + y ) S = (C + x y ) S = C (x + y) = (x +y )(x+y) Συνδυαστική Λογική 5
Ηµι-Αθροιστής x y C S (ε) S = x y C = xy Συνδυαστική Λογική 6
Συνδυαστική Λογική 7 Πλήρης Aθροιστής (Full Adder).Καθορισµός προβλήµατος: κύκλωµα που να προσθέτει τρία δυαδικά ψηφία. 2.Πλήθος εισόδων/εξόδων: 3 είσοδοι 2 έξοδοι. 3.Ονοµασία εισόδων/εξόδων: έστω x, y οι δύο είσοδοι (προσθετέοι), z το κρατούµενο της προηγούµενης βαθµίδας και C (κρατούµενο), S (άθροισµα) οι δύο έξοδοι. 4.Πίνακας αλήθειας: x y z S C
Συνδυαστική Λογική 8 Πλήρης-Αθροιστής x y z S C S = x y z+x yz +xy z +xyz => S = (x y +xy)z+(x y+xy )z => S = (x y) z+(x y)z => S = x y z C = xy + yz + xz S C
Πλήρης-Αθροιστής S = x y z+x yz +xy z +xyz C = xy + yz + xz x y z S = x y z S Συνδυαστική Λογική 9
Πλήρης-Αθροιστής Ένας πλήρης αθροιστής µπορεί να υλοποιηθεί µε δύο ηµιαθροιστές και µία πύλη Η. S = x y z C = xy + yz + xz Οι συναρτήσεις που υλοποιεί ο ηµιαθροιστής HA είναι εξ ορισµού: S = x y C = xy (HA µε εισόδους x,y, εξόδους S, C ) Το γενικό άθροισµα πρέπει να είναι S = x y z = S z Το γενικό κρατούµενο πρέπει να είναι C =xy+yz+xz=xy+(x+x )yz+x(y+y )z=xy+xyz+x yz+xyz+xy z= =xy+xyz+(x yz+xy z)+xyz= xy+xyz+(x y)z=xy(+z)+(x y)z= = xy+(x y)z=c +S z. Συνδυαστική Λογική
S = x y C = xy Πλήρης-Αθροιστής S 2 = S z C 2 = S z S = S 2 C = C + C 2 Αν ο 2 ος ηµιαθροιστής έχει εισόδους S, z, και εξόδους S 2, C 2 τότε το S 2 είναι το γενικό άθροισµα αφού S 2 = S z=s, ενώ το κρατούµενο του είναι C 2 = S z οπότε το γενικό κρατούµενο γίνεται C=C +C 2 (HA 2 µε εισόδους S,z, εξόδους S 2, C 2 ) ΗΑ ΗΑ 2 S C S 2 C 2 S C Συνδυαστική Λογική
Ηµι-Aφαιρέτης (Half Subtractor).Καθορισµός προβλήµατος: κύκλωµα που να αφαιρεί δύο δυαδικά ψηφία (x y). 2.Πλήθος εισόδων/εξόδων: 2 είσοδοι 2 έξοδοι. 3.Ονοµασία εισόδων/εξόδων: έστω x, y οι δύο είσοδοι και B (δανεικόκρατούµενο), D (διαφορά) οι δύο έξοδοι. 4.Πίνακας αλήθειας: x y Β D x y D B 5. Απλοποίηση συναρτήσεων: D=x y+xy =x y, Β=x y Συνδυαστική Λογική 2
Συνδυαστική Λογική 3 Πλήρης Aφαιρέτης (Full Subtractor).Καθορισµός προβλήµατος: κύκλωµα που να αφαιρεί δύο δυαδικά ψηφία και να λαµβάνει υπόψη πιθανό δανεικό από την προηγούµενη βαθµίδα. 2.Πλήθος εισόδων/εξόδων: 3 είσοδοι 2 έξοδοι. 3.Ονοµασία εισόδων/εξόδων: έστω x, y, z οι τρεις είσοδοι (µειωτέος, αφαιρετέος, δανεικό), και Β (δανεικό-κρατούµενο), D (διαφορά) οι δύο έξοδοι. 4.Πίνακας αλήθειας: x-y-z x y z D Β
Συνδυαστική Λογική 4 Πλήρης Aφαιρέτης Η συνάρτηση D είναι ίδια µε τη συνάρτηση S του πλήρη αθροιστή. x y z D Β D=x y z
Η δυαδική αφαίρεση δεν γίνεται µε τον κλασσικό τρόπο 3 = Πλήρης Aφαιρέτης Παράδειγµα: 3-6 6 = => -6 = 3 6 = 3 + (- 6) = + = () = +7 Χρήση αριθµητικής συµπληρωµάτων ως προς 2 Η σηµασία των αθροιστών είναι µεγάλη!! Συνδυαστική Λογική 5
Δυαδικός Αθροιστής Το άθροισµα δύο δυαδικών αριθµών των n bits µπορεί να παραχθεί είτε σειριακά είτε παράλληλα. 6
Παράλληλος Δυαδικός Αθροιστής Ο Παράλληλος Αθροιστής αποτελείται από n πλήρεις αθροιστές και παράγει το αποτέλεσµα σε κύκλο ρολογιού. Υλοποίηση µε συναρτήσεις: Πίνακας αλήθειας µε 9 εισόδους και 2 9 =52 καταστάσεις. 7
Παράδειγµα Χ Χ Χ 8
Παράδειγµα Χ Χ 9
Παράδειγµα Χ 2
Παράδειγµα 2
Διάδοση Κρατουµένου Η διάδοση του κρατουµένου έχει καθυστέρηση η οποία αυξάνει µε την αύξηση των βαθµίδων Χρόνος Διάδοσης): Επίπεδα Πυλών Καθυστέρηση Πύλης 22
Διάδοση Κρατουµένου 2 επίπεδα πυλών για κάθε διάδοση κρατουµένου. 2 n επίπεδα για τον παράλληλο αθροιστή n bits. 23
Διάδοση Κρατουµένου Ο χρόνος διάδοσης κρατουµένου είναι πολύ µεγάλος. Η πρόσθεση είναι η συχνότερη πράξη. Μείωση χρόνου διάδοσης κρατουµένου. Χρήση γρηγορότερων πυλών (άνω όριο). Αύξηση πολυπλοκότητας κυκλώµατος (πρόβλεψη κρατουµένου). Χρειαζόµαστε γρήγορους αθροιστές 24
Πρόβλεψη Κρατουµένου (Carry Look-Ahead) c i+ =a i b i +c i (a i b i ) c i+ =g i +p i c i s i =p i c i Παρατήρηση: Όταν a i =b i τότε p= και το κρατούµενο είτε διαγράφεται είτε παράγεται Δεν χρειάζεται αναµονή για το προηγούµενο κρατούµενο 25
Πρόβλεψη Κρατουµένου (Carry Look-Ahead) G i = A i B i Γεννητής Κρατουµένου P i = A i B i Διαδοτής Κρατουµένου Άθροισµα και κρατούµενο παράγονται από τα P, G και το προηγούµενο κρατούµενο 26
Πρόβλεψη Κρατουµένου (Carry Look-Ahead) C 2 = G + P C C 3 = G 2 + P 2 C 2 = G 2 + P 2 (G + P C ) = G 2 + P 2 G + P 2 P C C 4 = G 3 + P 3 C 3 = = G 3 + P 3 G 2 + P 3 P 2 G + P 3 P 2 P C Η αναδροµικότητα εισάγει την καθυστέρηση και την αναµονή των κρατουµένων Χωρίς αναδροµικότητα έχουµε περισσότερο υλικό αλλά δεν υπάρχει αναµονή κρατουµένου 27
Πρόβλεψη Κρατουµένου (Carry Look-Ahead) c 3 =g 2 +p 2 g + p 2 p g + p 2 p p c Παραγωγή κρατουµένου στην βαθµ. 2 Παραγωγή κρατουµένου στην βαθµ. και διάδοση από την βαθµ. 2 Διάδοση του κρατουµένου εισόδου από τις βαθµ.,, 2 Παραγωγή κρατουµένου στην βαθµ. και διάδοση από τις βαθµ., 2 Με τον ίδιο τρόπο µπορούµε να εκφράσουµε οποιοδήποτε κρατούµενο. 28
Γεννήτρια Πρόβλεψης Κρατουµένου Τα ενδιάµεσα κρατούµενα χρειάζονται για την παραγωγή των αθροισµάτων S i = P i C i 29
Αθροιστής Πρόβλεψης Κρατουµένου Αθροιστές 3
Σειριακός Δυαδικός Αθροιστής A i B i FA S i C i C i+ D Ο Σειριακός Αθροιστής αποτελείται από πλήρη αθροιστή και στοιχείο µνήµης και παράγει το αποτέλεσµα σε n κύκλους ρολογιού. 3
Παράλληλος Δυαδικός Αφαιρέτης = Α Β = Α + συµπλήρωµα-2(β) = Α + Β + 32
Παράλληλος Δυαδικός Αθροιστής/Αφαιρέτης Μονάδα Ελεγχόµενης Αντιστροφής Σηµαία Υπερχείλισης 33
Παράδειγµα Πρόσθεσης Α + Β Β 3 Α 3 Β 2 Α 2 Β Α Β Α 34
Παράδειγµα Αφαίρεσης Α - Β Β 3 Α 3 Β 2 Α 2 Β Α Β Α 35
Υπερχείλιση Το αποτέλεσµα της πρόσθεσης δύο δυαδικών αριθµών των n ψηφίων που απαιτεί n+ ψηφία έχει υποστεί υπερχείλιση. Σε ένα επεξεργαστικό σύστηµα το αποτέλεσµα θα πρέπει να αποθηκευτεί σε n δυαδικά ψηφία (χάνεται το πιο σηµαντικό ψηφίο) Το επεξεργαστικό σύστηµα πρέπει να ανιχνεύσει την υπερχείλιση Ύψωση σηµαίας υπερχείλισης (για προγραµµατιστική χρήση) 36
Υπερχείλιση Μη Προσηµασµένος + Μη Προσηµασµένος (κρατούµενο) Προσηµασµένος + Προσηµασµένος (Xor 2 τελικών κρατουµένων) Θετικός + Αρνητικός Θετικός Θετικός Αρνητικός - Αρνητικός Δεν είναι δυνατόν να δώσουν υπερχείλιση 37
Παράδειγµα Εστω προσηµασµένοι αριθµοί των 8 δυαδικών ψηφίων σε αριθµητική συµπληρωµάτων ως προς 2 Εύρος: +27... -28-6 +6 38
Παράδειγµα Αρνητικοί αριθµοί Θετικοί αριθµοί +5+6 = -5!!! 39
Πρόσθεση αρνητικών Παράδειγµα Η ανάποδη κατεύθυνση δεν δηµιουργεί υπερχείλιση Πρόσθεση Θετικών 4
Δεκαδικός Αθροιστής Ένα ψηφιακό σύστηµα που εκτελεί αριθµητικές πράξεις στο δεκαδικό σύστηµα αναπαριστά τα ψηφία µε κάποιο δυαδικό κώδικα (πχ Calculator). Ένας αθροιστής για ένα τέτοιο σύστηµα χρησιµοποιεί αριθµητικά κυκλώµατα που δέχονται κωδικοποιηµένους δεκαδικούς αριθµούς και παρουσιάζει τα αποτελέσµατα στον κατάλληλο κώδικα. Ένας δεκαδικός αθροιστής δύο ψηφίων απαιτεί 4+4+=9 εισόδους και 4+=5 εξόδους αφού κάθε ψηφίο κωδικοποιείται µε 4 bit και χρειαζόµαστε επίσης κρατούµενα εισόδου/εξόδου. 4
Δεκαδικός Αθροιστής Τρόποι υλοποίησης: A) Σχεδιασµός συνδυαστικού κυκλώµατος µε 9 εισόδους και 5 εξόδους (52 δυνατοί συνδυασµοί στις εισόδους). B) Υλοποίηση µε κυκλώµατα πλήρη αθροιστή λαµβάνοντας υπόψη το γεγονός ότι 6 συνδυασµοί σε κάθε είσοδο 4 bits δε χρησιµοποιούνται. 42
Δεκαδικός Αθροιστής Αρχικά προσθέτουµε τους BCD αριθµούς Α, Β και παίρνουµε το άθροισµα τους το οποίο είναι ένας δυαδικός αριθµός (όχι BCD). Αριθµός BCD A Αριθµός BCD B Α, B : C in :, K Δυαδικός Αθροιστής C in KZ 8 Z 4 Z 2 Z : 9 Αποτέλεσµα Z 8 Z 4 Z 2 Z Μετατροπή σε BCD (Δυαδικός Αριθµός 4 bits) K Z 8 Z 4 Z 2 Z C S 8 S 4 S 2 S 43
Αθροιστής BCD Δεν απαιτείται µετατροπή σε BCD Απαιτείται πρόσθεση του +6 44
Αθροιστής BCD Αριθµός BCD A Αριθµός BCD B Αριθµός BCD A Αριθµός BCD B K Δυαδικός Αθροιστής C in K Δυαδικός Αθροιστής C in Για C= προσθ. Για C= προσθ. Δυαδικός Αθροιστής C Δυαδικός Αθροιστής 45
Αθροιστής BCD Ζ 8 Ζ 4 Ζ 2 Ζ Ζ 8 Ζ 4 Κ= Κ= Ζ 2 Ζ C = K + Z 8 Z 4 + Z 8 Z 2 46
Αθροιστής BCD C = K + Z 8 Z 4 + Z 8 Z 2 Από την τιµή 9 και πάνω προσθέτουµε την ποσότητα ώστε να έχουµε την επιθυµητή µετατροπή. 47
Δυαδικός Πολλαπλασιαστής 48
Δυαδικός Πολλαπλασιαστής C 6 = B 3 x A 2 B 3 B 2 B B x A 2 A A A B 3 A B 2 A B A B A B 3 A B 2 A B A B A 2 B 3 A 2 B 2 A 2 B A 2 B C 6 C 5 C 4 C 3 C 2 C C 49
Συγκριτής Μεγέθους (Comparator) Συγκριτής Μεγέθους: συγκρίνει δύο αριθµούς και βρίσκει τη σχέση τους (<,>,=). Για δύο αριθµούς των n bits έχουµε 2 n x2 n =2 2n συνδυασµούς. Η µέθοδος χάρτη είναι ασύµφορη. Το κύκλωµα του συγκριτή έχει αρκετή κανονικότητα. Ø Έστω Α = Α 3 Α 2 Α Α και Β = Β 3 Β 2 Β Β οι δύο αριθµοί. Ø Ισχύει Α = Β όταν όλα τα ζευγάρια (A i, B i ) είναι ίσα, δηλαδή Α 3 =Β 3 και Α 2 =Β 2 και Α =Β και Α =Β. (Α=Β) = x 3 x 2 x x x i = Α i B i + A i Β i 5
Συγκριτής Μεγέθους (Α=Β) = x 3 x 2 x x x i = Α i B i + A i Β i Ø Για να βρούµε εάν Α<Β ή Α>Β εξετάζουµε τα σχετικά µεγέθη των ζευγαριών ψηφίων ξεκινώντας από την πιο σηµαντική θέση. Εάν τα δύο ψηφία είναι ίσα τότε συγκρίνουµε το επόµενο λιγότερο σηµαντικό ζευγάρι ψηφίων. Ø Εάν A i = και B i = τότε Α > Β, εάν Α i = και Β i = τότε Α < Β. (Α>Β) = Α 3 Β 3 + x 3 A 2 B 2 + x 3 x 2 A B + x 3 x 2 x A B (Α<Β) = B 3 A 3 + x 3 B 2 A 2 + x 3 x 2 B A + x 3 x 2 x B A 5
Συγκριτής Μεγέθους Α 3 Β 3 Α 3 Β 3 (Α=Β) = x 3 x 2 x x x i = Α i B i + A i Β i (Α>Β)=Α 3 Β 3 +x 3 A 2 B 2 +x 3 x 2 A B +x 3 x 2 x A B (Α<Β)=B 3 A 3 +x 3 B 2 A 2 +x 3 x 2 B A +x 3 x 2 x B A Μας συµφέρει στην υλοποίηση αντί για xnor να υλοποιήσουµε µε AND-NOR τις σχέσεις x i = (Α i B i + A i Β i ) καθώς τα Α i B i, A i Β i διαµοιράζονται 52