ΗΜΥ-210: Λογικός Σχεδιασμός Εαρινό Εξάμηνο 2005 ΗΜΥ 210: Λογικός Σχεδιασμός, Εαρινό Εξάμηνο 2005 Νοε-18 ΗΜΥ-210: Λογικός Σχεδιασμός Εαρινό Εξάμηνο 2005 Κεφάλαιο 5 -ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Περίληψη Αφαίρεση δυαδικών συμπλήρωμα ως προς 2 (2´s complement) Διεύρυνση σε συμπλήρωμα ως προς r Αφαίρεση με συμπλήρωμα Δυαδικοί Προσθετέοι/Αφαιρετέοι Προσημασμένοι (signed) αριθμοί Προσημασμένη Πρόσθεση/Αφαίρεση Πρόβλημα Υπερχείλισης (overflow) Δυαδικοί Πολλαπλασιαστές Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Δυαδική Αφαίρεση Μη-προσημασμένοι αριθμοί: το σήμα του πλην δεν αναπαρίσταται σαφώς (explicitly). Δεδομένου των δυαδικών αριθμών M και N, βρες M-N: Περίπτωση I: M ≥ N, άρα, το MSB του Borrow είναι το 0 B 0 0 0 1 1 0 M 1 1 1 1 0 30 N -1 0 0 1 1 -19 Το αποτέλεσμα είναι ορθό! Dif 0 1 0 1 1 11 Περίπτωση II: N > M, άρα, το MSB του Borrow είναι το 1 B 1 1 1 0 0 0 M 1 0 0 1 1 19 N -1 1 1 1 0 -30 Το αποτέλεσμα χρειάζεται Dif 1 0 1 0 1 21 διόρθωση! Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Δυαδική Αφαίρεση (συν.) Γενικά, εάν N > M, Dif = M-N+2n, όπου το n = # bits. Στην περίπτωση II του προηγούμενου παραδείγματος, Dif= 19-30+25 = 21. Για να διορθώσουμε τον μέτρο (magnitude) του Dif, που έπρεπε να ήταν be N-M, υπολογίστε 2n-(M-N+2n). Αυτό είναι γνωστό ως το συμπλήρωμα ως προς 2 του Dif. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Γενική Διαδικασία Για να αφαιρέσω 2 n-bit αριθμούς, M-N, στην βάση του 2: Βρέστε M-N. Εάν το MSB του Borrow είναι 0, τότε M ≥ N. Το αποτέλεσμα είναι θετικό και ορθό. Εάν το MSB του Borrow είναι 1, τότε N > M. Το αποτέλεσμα είναι αρνητικό και ο βαθμός του πρέπει να διορθωθεί με την αφαίρεση του αριθμού από το 2n (βρέστε το συμπλήρωμα ως προς 2). Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Ακόμη ένα παράδειγμα Αφαίρεσης Δεδομένου M = 01100100 και N = 10010110, M-N= B 1 0 0 1 1 1 1 0 0 M 0 1 1 0 0 1 0 0 100 N -1 0 0 1 0 1 1 0 -50 Dif 1 1 0 0 1 1 1 0 206 2n 1 0 0 0 0 0 0 0 0 256 Dif - 1 1 0 0 1 1 1 0 -206 0 0 0 1 1 0 0 1 0 50 Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Μπλοκ Διάγραμμα για τον αφαιρέτη M0M1M2M3 N0N1N2N3 B 4-bit αφαιρέτης Ενεργοποιείται όταν B=1; αλλιώς, διατήρησε το αποτέλεσμα του αφαιρέτη. (επιλεκτική) μηχανή συμπληρώματος του 2 Δεν είναι ο καλύτερος τρόπος υλοποίησης κυκλώματος αφαιρέτη! Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Μπλοκ Διάγραμμα για Δυαδικό Αθροιστής-Αφαιρέτη N0N1N2N3 M0M1M2M3 B Δυαδικός Αθροιστής 4-bit Αφαιρέτης (επιλεκτική) μηχανή συμπληρώματος του 2 Αφαίρεση/Πρόσθεση (Sub/Add) Quadruple 2-to-1 MUX Sub/Add=1 αποτέλεσμα=|M-N| Sub/Add=0 αποτέλεσμα =M+N Αποτέλεσμα Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Συμπληρώματα Υπάρχουν 2 τύποι συμπληρωμάτων για κάθε σύστημα βάσης-r : Συμπλήρωμα βάσης (r’s), πχ. συμπλήρωμα ως προς 2 και συμπλήρωμα ως προς 10. Μειωμένο (Diminished) Συμπλήρωμα βάσης (r-1’s) , πχ. το συμπλήρωμα ως προς 1 και το συμπλήρωμα ως προς 9. Εξετάζουμε μόνο συμπληρώματα του 2 και του 1 για την βάση του 2. Ίδια λογική ισχύει και για άλλες βάσεις (πχ. δεκαδική). Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Συμπλήρωμα ως προς 2 Για ένα θετικό δυαδικό αριθμό με n ψηφία N2, το συμπλήρωμα ως προς 2 , 2C(N2), δίνεται από: 2C(N2) = 2n-N2 , εάν n > 0 0 , εάν n = 0 Παράδειγμα: N2 =1010 2C(N2) = 24-N2 = 100002 – 10102 = 01102 Παράδειγμα : N2 =11111 2C(N2) = 25-N2 = 1000002 – 111112 = 00001 2 { Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Συμπλήρωμα ως προς 2 (συν.) Ένας πιο εύκολος τρόπος για να υπολογίσουμε το συμπλήρωμα του 2: Αφήστε τα λιγότερο σημαντικά (least significant) 0 και πρώτο 1 χωρίς αλλαγές Αντικαταστήστε 0 με 1 και 1 με 0 στα υπόλοιπα περισσότερο σημαντικά (higher significant) bits. Παραδείγματα: N = 1010 N = 01011000 01 10 10101000 συμπλήρωμα ως προς 2 συμπλήρωμα ως προς 2 complement χωρίς αλλαγές complement χωρίς αλλαγές Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Συμπλήρωμα ως προς 1 Για ένα θετικό δυαδικό αριθμό n ψηφίων N2, το συμπλήρωμα ως προς 1, 1C(N2), δίνεται από: 1C(N2) = (2n-1) - N2 Παράδειγμα: N2 =011 1C(N2) = (23-1)-N2 = 1112 – 0112 = 1002 Παράδειγμα : N2 =1010 1C(N2) = (24-1) - N2 = 11112 – 10102 = 0101 2 Παρατήρηση: το συμπλήρωμα ως προς 1 μπορεί να παραχθεί με το να βρούμε το συμπλήρωμα όλων των ψηφίων (bits) στον αριθμό. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Παρατήρηση Συγκρίνετε το συμπλήρωμα ως προς 1 με το συμπλήρωμα ως προς 2: 2n-N = [(2n-1) - N] + 1 Άρα το, συμπλήρωμα ως προς 2 μπορεί να βρεθεί βρίσκοντας το συμπλήρωμα ως προς 1 και προσθέτοντας 1. Παράδειγμα: N = 1001 2C(N) = 24 – N = 10000 – 1001 = 0111 1C(N) = 24 – 1 - N = 1111 – 1001 = 0110 2C(N) = 1C(N) + 1 = 0110 + 0001 = 0111 Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Αφαίρεση με συμπληρώματα Για να βρούμε το M-N = M+(-N), μπορούμε να χρησιμοποιήσουμε μια συμπληρωματική μορφή για την αναπαράσταση ενός αρνητικού αριθμού -N, και να κάνουμε μια “απλή πρόσθεση”. Πρέπει να μπορούμε να “μετατρέψουμε” το αποτέλεσμα. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Αφαίρεση με συμπλήρωμα ως προς 2 Εάν χρησιμοποιήσουμε συμπλήρωμα ως προς 2 για την αναπαράσταση αρνητικών αριθμών: RI = M + 2C(N2) = M + (2n-N) = M – N + 2n Εάν υπάρχει ένα μη-μηδενικό carry out στην πρόσθεση, M ≥ N, αγνόησε αυτό το carry και τα υπόλοιπα ψηφία είναι ίσα με R = M-N. Εάν, M < N, βρέστε το συμπλήρωμα ως προς 2 του RI (=2n- RI = 2n- (M – N + 2n) = N – M), και προσθέστε ένα αρνητικό πρόσημο στην αρχή, πχ., το αποτέλεσμα του R είναι -2C([RI]2) = -(N-M). Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Παράδειγμα A = 1010100 (8410), B = 1000011 (6710) Βρέστε R = A-B: 2C(B) = 0111101 (6110) A+B = 1010100+0111101 = 10010001 Απορρίπτω το carry, R = 0010001 (1710) ✔ Βρέστε R = B-A: 2C(A) = 0101100 (4410) B+A = 1000011+0101100 = 1101111 R = -2C(B+A) = -0010001 (-17) ✔ Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Αφαίρεση με συμπλήρωμα ως προς 1 Εάν χρησιμοποιήσουμε συμπλήρωμα ως προς 1 για την αναπαράσταση αρνητικών αριθμών: Σχημάτισε RI = M + 1C(N2) = M + (2n-1-N) = M – N + 2n-1. Εάν υπάρχει ένα μη-μηδενικό carry out στην πρόσθεση, M ≥ N, απόρριψε το και πρόσθεσε 1 στα υπόλοιπα ψηφία. Το αποτέλεσμα είναι R = M-N. Εάν, M < N, υπολογίστε το συμπλήρωμα ως προς1 του RI (=2n- 1 - RI = 2 n- 1 - (M – N + 2n-1) = N – M ), και προσθέστε το πρόσημο πλην μπροστά, πχ., το αποτέλεσμα του R είναι -1C([RI]2) = -(N-M). Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Παράδειγμα A = 1010100 (8410), B = 1000011 (6710) Βρέστε R = A-B: 1C(B) = 0111100 (6010) A+B = 1010100+0111100 = 10010000 Απορρίψτε το carry and προσθέστε 1, R = 0010000 + 1 = 0010001 (1710) ✔ Βρέστε R = B-A: 1C(A) = 0101011 B+A = 1000011+0101011 = 1101110 R = -1C(B+A) = -0010001 (-17) ✔ Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Δυαδικοί Αθροιστές/Αφαιρέτης Εάν κάνετε αφαίρεση χρησιμοποιώντας συμπληρώματα, εξαλείφουμε την λειτουργία της αφαίρεσης, και μπορούμε να χρησιμοποιήσουμε ένα αθροιστή με κατάλληλα συμπληρώματα για αφαίρεση. Μπορούμε να χρησιμοποιήσουμε προσθετέο και για πρόσθεση και για αφαίρεση: Πάρε το συμπλήρωμα του αφαιρετέου (subtrahend) για αφαίρεση Μην πάρεις το συμπλήρωμα του αφαιρετέου για πρόσθεση Για να υλοποιήσουμε ένα κύκλωμα πρόσθεσης-αφαίρεσης, χρειαζόμαστε μόνο ένα επιλεκτικό συμπληρωτή (complementer) και ένα αθροιστή. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Δυαδικοί Αθροιστές/Αφαιρέτες (συν.) Η αφαίρεση A-B μπορεί να γίνει παίρνοντας το συμπλήρωμα ως προς 2 του B και προσθέτοντας A. Το συμπλήρωμα ως προς 2 του B το παίρνουμε με τo συμπλήρωση ως προς 1 του B και προσθέτοντας 1 σε αυτό. A-B = A + 2C(B) = A + 1C(B) + 1 = A + B’ + 1 Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
4-bit Δυαδικός Αθροιστής/Αφαιρέτης Οι πύλες XOR ενεργούν σαν προγραμματιζόμενοι αντιστροφείς Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
4-bit Δυαδικός Αθροιστής/Αφαιρέτης (συν.) Όταν S=0, το κύκλωμα εκτελεί A + B. Το carry in είναι 0, και οι πύλες XOR περνούν το B χωρίς αλλαγές. Όταν S=1, το carry στο LSB είναι 1, και παίρνετε το συμπλήρωμα του Β (συμπλήρωμα ως προς 1) πριν την πρόσθεση; Άρα το κύκλωμα προσθέτει στο A το συμπλήρωμα ως προς 1 του B συν 1 (από το carry στο LSB). Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
4-bit Δυαδικός Αθροιστής/Αφαιρέτης (συν.) S=0 B3 B2 B1 B0 Όταν S=0 διαλέγει πρόσθεση Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
4-bit Δυαδικός Αθροιστής/Αφαιρέτης (συν.) S=1 B3’ B2’ B1’ B0’ 1 Όταν S=1 διαλέγει αφαίρεση Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
4-bit Δυαδικός Αθροιστής/Αφαιρέτης (συν.) ΗΜΥ 210: Λογικός Σχεδιασμός, Εαρινό Εξάμηνο 2005 4-bit Δυαδικός Αθροιστής/Αφαιρέτης (συν.) Νοε-18 Όταν C4 = 0 και S=1 σημαίνει ότι το A < B και πρέπει να διορθωθεί το αποτέλεσμα R3…R0 (διαφάνεια 15). Άρα, πρέπει να υπολογίσουμε το συμπλήρωμα ως προς 2 του R3…R0: Χρησιμοποιείστε ένα ειδικό κύκλωμα για το συμπλήρωμα ως προς 2 ή Χρησιμοποιείστε τον 4-bit αθροιστή/ αφαιρέτη ξανά, με A3…A0=0000, B3…B0=R3…R0, και S=1. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Προσημασμένοι Δυαδικοί Αριθμοί Σύστημα Προσημασμένου-μέτρου (magnitude): Οι προσημασμένοι αριθμοί αναπαριστούνται χρησιμοποιώντας το MSB του δυαδικού αριθμού για την εύρεση του πρόσημου του αριθμού: Εάν MSB = 0 θετικός αριθμός Εάν MSB = 1 αρνητικός αριθμός Μην το συγχύσετε με μη- προσημασμένους αριθμούς! Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Προσημασμένοι Δυαδικοί Αριθμοί (συν.) Για παράδειγμα: -1010 -10102 σε μη-προσημασμένο (- το πρόσημο καθορίζεται σαφώς) 110102 σε προσημασμένο (- το πρόσημο καθορίζεται έμμεσα αφού MSB=1) Άλλο παράδειγμα: 10112 1110 σε μη-προσημασμένο -310 σε προσημασμένο Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Προσημασμένοι Δυαδικοί Αριθμοί (συν.) Για την υλοποίηση πρόσθεσης προσημασμένου-μέτρου και αφαίρεση χρειαζόμαστε να ξεχωρίσουμε το ψηφίο πρόσημου από τα ψηφία μέτρου, και να βλέπουμε τα magnitude bits σαν ένα μη-προσημασμένο αριθμό (κάντε την διόρθωση όπου χρειάζεται). Για την αποφυγή της διόρθωσης, χρησιμοποιείται το σύστημα προσημασμένου-συμπληρώματος. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Σύστημα Προσημασμένου-Συμπληρώματος Το μέτρο ενός αρνητικού αριθμού αναπαρίσταται στην συμπληρωματική του μορφή (το συμπλήρωμα του 2 ή του 1). Πχ.: Χρησιμοποιούμε 8-bits στην αναπαράσταση -910 and 910 -910: 10010012 σε προσημασμένο-μέτρο 111101102 σε προσημασμένο συμπλήρωμα ως προς 1 111101112 σε προσημασμένο συμπλήρωμα ως προς 2 910 = 000010012 σε όλα τα πιο πάνω συστήματα Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Προσημασμένη-Magnitude Πρόσθεση-Αφαίρεση Για την εκτέλεση πρόσθεσης ή αφαίρεσης 2 αριθμών M και N σε προσημασμένο-μέτρου, ακολουθήστε τους κανόνες αριθμητικής: Ίδιο πρόσημο: προσθέστε και κρατήστε το ίδιο πρόσημο. Διαφορετικά πρόσημα: Αφαιρέστε το N από το M; εάν το Borrow == 1, διορθώστε το αποτέλεσμα παίρνοντας το συμπλήρωμα του 2. Το πρόσημο είναι αρνητικό. Παράδειγμα: M:00011001, N:10100101 το N είναι αρνητικό, άρα βρέστε |M-N|=0011001-0100101 =1110100, με end borrow 1. Αυτό υπονοεί ότι το M-N είναι αρνητικός αριθμός, και για την διόρθωση του βρίσκουμε το συμπλήρωμα ως προς 2 0001100 άρα 10001100. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Πρόσθεση Προσημασμένου-Συμπληρώματος “Η πρόσθεση 2 προσημασμένων αριθμών, με αρνητικούς που αναπαριστούνται σε προσημασμένο συμπλήρωμα ως προς 2, παράγεται προσθέτοντας τους 2 αριθμούς (συμπεριλαμβανομένων των sing bits). Το Carry out αγνοείται”. Παραδείγματα: (Υποθέστε αναπαραστάσεις 5-ψηφίων) 01010 (+10) 01010 (+10) 10110 (-10) 10110 (-10) +00101 (+5) +11011 (-5) +00101 (+5) +11011 (-5) 01111 (+15) 00101 (+5) 11011 (-5) 10001 (-15) Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Πρόσθεση Προσημασμένου-Συμπληρώματος (συν.) Είναι διαφορετικό αυτό με την αναπαράσταση αρνητικών αριθμών σε προσημασμένο συμπλήρωμα του 2! Να θυμάστε ότι όταν MSB = 1 ο αριθμός είναι αρνητικός και χρειάζεται η εύρεση του συμπληρώματος ως προς 2 του μέτρου. Παράδειγμα: Πιο είναι το δεκαδικό αντίστοιχο του 10010012? Είναι αρνητικός αριθμός αφού το MSB=1 Magnitude = 001001 το συμπλήρωμα του 2 του magnitude = 110111 Ο αριθμός είναι το -5510 Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Αφαίρεση Προσημασμένου-Συμπληρώματος “Η αφαίρεση 2 προσημασμένων αριθμών, με αρνητικούς στην προσημασμένη μορφή συμπληρώματος του 2, μπορεί να βρεθεί με το συμπλήρωμα του 2 του αφαιρετέου (subtrahend) (μαζί με το ψηφίο πρόσημου) και την πρόσθεση του αφαιρέτης (minuend). Αγνοείται το carry out”. Παραδείγματα: (5-bit αναπαραστάσεις) 01010 (+10) 01010 (+10) 10110 (-10) 10110 (-10) -00101 -(+5) -11011 -(-5) -00101 -(+5) -11011 -(-5) 01010 (+10) 01010 (+10) 10110 (-10) 10110 (-10) +11011 +(-5) +00101 +(+5) +11011 +(-5) +00101 +(+5) 00101 (+5) 01111 (+15) 10001 (-15) 11011 (-5) Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Το πρόβλημα της Υπερχείλισης Εάν η πρόσθεση 2 n-bit αριθμών είναι ένας αριθμός με n+1 bits, τότε εμφανίζεται η κατάσταση υπερχείλισης. Η εύρεση υπερχείλισης μπορεί να υλοποιηθεί είτε με υλικό(h/w) ή λογισμικό. Η εύρεση εξαρτάται από το αριθμητικό σύστημα που χρησιμοποιείται: προσημασμένο ή μη-προσημασμένο. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Το πρόβλημα της Υπερχείλισης στο Μη-Προσημασμένο Σύστημα Το πρόβλημα της Υπερχείλισης στο Μη-Προσημασμένο Σύστημα Πρόσθεση: Όταν το Carry out == 1. Αφαίρεση: Δεν μπορεί να γίνει ποτέ. Το μέτρο του αποτελέσματος είναι πάντα ίσο ή μικρότερο από τον πιο μεγάλο των 2 αριθμών. ΔΕΝ είναι πρόβλημα! Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Το πρόβλημα της Υπερχείλισης στο Προσημασμένου Σύστημα συμπληρώματος του 2 Να θυμάστε ότι το MSB είναι το πρόσημο. Αλλά προστίθεται και το πρόσημο! Άρα ένα carry out == 1 δεν σημαίνει πάντα υπερχείλιση. Υπερχείλιση παρατηρείται ΜΟΝΟ όταν και οι 2 αριθμοί έχουν το ίδιο πρόσημο. Αυτή η κατάσταση μπορεί να βρεθεί όταν το carry out (Cn) είναι διαφορετικό από το carry της προηγούμενης θέσης (Cn-1). Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Το πρόβλημα της Υπερχείλισης στο Προσημασμένου Σύστημα συμπληρώματος του 2 (συν.) Παράδειγμα 1: M=6510 και N=6510 σε ένα 8-bit προσημασμένο σύστημα συμπληρώματος του 2. M = N = 010000012 M+N = 10000010 με Cn=0. Αυτό είναι λάθος! Βάλτε το Cn σαν το MSB για να πάρετε 0100000102 (13010) που είναι ορθό, αλλά χρειάζεται 9-bits υπερχείλιση Παράδειγμα 2: M=-6510 και N=-6510 σε ένα 8-bit προσημασμένο σύστημα συμπληρώματος του 2. M = N = 101111112 M+N = 01111110 με Cn=1. Αυτό είναι πάλι λάθος! Βάλτε το Cn σαν το MSB για να πάρετε 1011111102 (-13010) που είναι ορθό, αλλά χρειάζεται 9-bits υπερχείλιση Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Εύρεση Υπερχείλισης στο Προσημασμένο Σύστημα συμπληρώματος του 2 Εύρεση Υπερχείλισης στο Προσημασμένο Σύστημα συμπληρώματος του 2 Οι καταστάσεις υπερχείλισης εντοπίζονται συγκρίνοντας τις τιμές στο carry έξω και μέσα του sign bit (Cn και Cn-1). n-bit αθροιστής/αφαιρέτης με λογική εύρεσης υπερχείλισης V Cn+1 Cn C n-bit αθροιστής/ αφαιρέτης το C =1 δείχνει υπερχείλιση όταν προσθέτουμε/αφαιρούμε μη-προσημασμένους αριθμούς. το V=1 δείχνει υπερχείλιση όταν προσθέτουμε/αφαιρούμε προσημασμένους αριθμούς οι οποίοι είναι συμπλήρωμα ως προς 2 Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα Δυαδικός Πολ/στης Ο δυαδικός πολ/σμός μοιάζει με τηον δεκαδικό πολ/σμό: ο n-bit multiplicand πολ/ζεται με κάθε bit του m-bit multiplier, αρχίζοντας από το LSB, για την εύρεση n μερικών γινομένων. Κάθε διαδοχικό σύνολο των μερικών γινομένων γίνεται μετατόπιση 1 bit από αριστερά. Το αποτέλεσμα παράγεται με την πρόσθεση m γραμμών των μερικών γινομένων. Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Δυαδικός Πολ/στης (συν.) Παράδειγμα: Πολ/στης A=A1A0 και πολ/στέος B=B1B0 Βρέστε το C = AxB: B1 B0 x A1 A0 A0B1 A0B0 + A1B1 A1B0 C3 C2 C2 C0 ----------------- ------------------------------- Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κύκλωμα Δυαδικού Πολ/στή πολ/στης 2 Χ 2 ψηφία Οι ημι-αθροιστές είναι αρκετοί αφού δεν υπάρχει Carry-in Μαζί με τις δύο εισόδους στην πρόσθεση Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα
Κύκλωμα Δυαδικού Πολ/στή πολ/στης 4 Χ 3 ψηφία Το 4 χ 3 ψηφία βγάζει αποτέλεσμα 7 ψηφίων Νοε-18 Κεφάλαιο 5-ii: Αριθμητικές Συναρτήσεις και Κυκλώματα