Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2008

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2008"— Μεταγράφημα παρουσίασης:

1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2008
ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008 Νοε-18 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2008 Αριθμητικές Συναρτήσεις και Κυκλώματα Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Αριθμητικές Συναρτήσεις και Κυκλώματα

2 Αριθμητικές Συναρτήσεις και Κυκλώματα
Περίληψη Πρόσθεση Δυαδική Πρόσθεση Ημι-αθροιστής Πλήρης Αθροιστής Αθροιστής Ριπής Αθροιστής Πρόβλεψης Κρατουμένου Δεκαδική Πρόσθεση Αθροιστής BCD Άλλες Αριθμητικές Συναρτήσεις/Κυκλώματα Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

3 Αριθμητικές Συναρτήσεις και Κυκλώματα
Αθροιστής 1-bit Εκτελεί πρόσθεση μεταξύ δύο bits. Τέσσερις πιθανές πράξεις: 0+0=0 0+1=1 1+0=1 1+1=10 Η υλοποίηση του κυκλώματος απαιτεί 2 εξόδους, η μία για το άθροισμα (sum) και η άλλη για το κρατούμενο (carry). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

4 Ημι-αθροιστής (Half Adder)
Εκτελεί πρόσθεση μεταξύ δύο bit. Είσοδοι: A0, B0 Έξοδοι: S0, C1 Ο δείκτης υποδεικνύει σημαντικότητα, 0 για LSB και 1 για το επόμενο σημαντικό bit. Δυαδικές Συναρτήσεις: S0 = A0B0’+A0’B0 = A0  B0 C1 = A0B0 Πίνακας Αληθείας A0 B0 S0 C1 1 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

5 Αριθμητικές Συναρτήσεις και Κυκλώματα
Ημι-αθροιστής (συν.) S0 = A0B0’+A0’B0 = A0 B0 C1 = A0B0 Διάγραμμα μπλοκ Λογικό Διάγραμμα A0 B0 A0 S0 C1 Ημιαθροιστής 1-bit B0 C1 S0 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

6 Αριθμητικές Συναρτήσεις και Κυκλώματα
Πρόσθεση n-bit Σχεδιάστε ένα δυαδικό αθροιστή ο οποίος προσθέτει δύο n-bit δυαδικούς αριθμούς και παράγει ένα άθροισμα (sum) με n-bit και ένα κρατούμενο εξόδου (carry out) με 1-bit. Παράδειγμα: Θεωρήστε n=4 Cout C3 C2 C1 C A3 A2 A1 A B3 B2 B1 B S3 S2 S1 S Αυτό απαιτεί πρόσθεση 3ων-bit! Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

7 Πλήρης Αθροιστής 1-bit (Full Adder)
Συνδυαστικό κύκλωμα που διεκπεραιώνει την πρόσθεση μεταξύ 3ων bits (2 bits προσθετέων και 1 bit για κρατούμενο εισόδου--carry-in) Ai Bi Πλήρης Αθροιστής 1-bit Ci+1 Ci Si Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

8 Πλήρης Αθροιστής 1-bit (συν.)
Οι K-χάρτες για: Ci+1: Si: Ai Bi Ci Si Ci+1 1 BiCi Ai 1 1 1 1 BiCi Ai 1 1 1 1 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

9 Πλήρης Αθροιστής 1-bit (συν.)
Δυαδικές συναρτήσεις: Ci+1 = AiBi + AiCi + BiCi Si = AiBi’ Ci’ + Ai’Bi’Ci + Ai’BiCi’ + AiBiCi = Ai  Bi  Ci Μπορείτε να σχεδιάσετε ένα πλήρη αθροιστή άμεσα από τις πιο πάνω συναρτήσεις (απαιτούνται 3 πύλες AND και 1 πύλη OR για το Ci+1, και 2 πύλες XOR για το Si) Υπάρχει “καλύτερη” υλοποίηση; Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

10 Πλήρης Αθροιστής με 2 Ημι-αθροιστές
Ένας πλήρης αθροιστής μπορεί να υλοποιηθεί και με 2 ημι-αθροιστές και 1 πύλη OR, αφού το Ci+1 μπορεί να εκφραστεί ως: Ci+1 = AiBi + AiBi’Ci + Ai’BiCi = AiBi + (AiBi’ + Ai’Bi)Ci = AiBi + (Ai  Bi)Ci και το Si = Ai  Bi  Ci Ai Bi Si Ci+1 Ci Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

11 Συνδυαστικοί Αθροιστές n-bit
Αθροιστής Ριπής (Ripple Carry Adder) Απλός Σχεδιασμός Χρονοβόρος. Γιατί; (θα δείτε σε λίγο!) Αθροιστής Πρόβλεψης Κρατουμένου (Carry Lookahead Adder) Πιο πολύπλοκος σχεδιασμός Μειώνει την καθυστέρηση του κυκλώματος Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

12 Αθροιστής Ριπής n-bit (n-bit ripple curry adder)
Ο ένας πλήρης αθροιστής 1-bit διαδέχεται τον άλλο, έτσι ώστε το κρατούμενο εξόδου (carry out) από τον ένα γίνετε το κρατούμενο εισόδου (carry in) του επόμενου. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

13 Παράδειγμα: Αθροιστής Ριπής 4ων-bit
C4 C3 C2 C1 C A3 A2 A1 A B3 B2 B1 B S3 S2 S1 S0 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

14 Καθυστέρηση Αθροιστή Ριπής
Η καθυστέρηση του κυκλώματος ενός αθροιστή ριπής καθορίζεται από την καθυστέρηση του μονοπατιού του κρατουμένου από το LSB (C0) στο MSB (Cn). Θεωρήστε την καθυστέρηση σε ένα 1-bit FA να είναι Δ. Τότε, η καθυστέρηση του αθροιστή ριπής n-bit είναι nΔ. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

15 Αθροιστής Πρόβλεψης Κρατουμένου (Carry Lookahead Adder -- CLA)
ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008 Νοε-18 Αθροιστής Πρόβλεψης Κρατουμένου (Carry Lookahead Adder -- CLA) Εναλλακτικός σχεδιασμός για ένα συνδυαστικό αθροιστή με n-bit. Πρακτικός σχεδιασμός με μειωμένη καθυστέρηση, αλλά απαιτεί πιο πολύπλοκο σχεδιασμό. Παράγεται από ένα μετασχηματισμό του σχεδιασμού αθροιστή ριπής. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα Αριθμητικές Συναρτήσεις και Κυκλώματα

16 Αριθμητικές Συναρτήσεις και Κυκλώματα
Σχεδιασμός CLA Από ένα FA, διαχωρίζουμε μεταξύ της παραγωγής (generation) του κρατουμένου (όταν ένα νέο κρατούμενο παράγεται, Cout=1) και της μετάδοσης (propagation) του κρατουμένου (όταν ένα υπάρχον Cin μεταδίδεται στο Cout) Παραγωγή: Gi = AiBi: if 1, Ci+1=1 Μετάδοση: Pi = Ai  Bi: εάν 1 τότε Ci+1 = Ci Full Adder (FA) Partial Full Adder (PFA) Bi Ai Ai Bi Si Ci+1 Ci Si Gi Pi Ci Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

17 Αριθμητικές Συναρτήσεις και Κυκλώματα
Σχεδιασμός CLA (συν.) Ένα bit από λογική G/P μόνο δεν βοηθά, αλλά… Διαδοχική λογική G/P μπορεί να παράγει το κρατούμενο εξόδου ενός μπλοκ Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

18 Αριθμητικές Συναρτήσεις και Κυκλώματα
Σχεδιασμός CLA (συν.) Ci+1 = Gi + PiCi Ο σχεδιασμός του PFA διαχωρίζει την λειτουργικότητα (και άρα την υλοποίηση) του S από αυτή του G/P Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

19 Αριθμητικές Συναρτήσεις και Κυκλώματα
Σχεδιασμός CLA (συν.) Μπορεί ο σχεδιασμός της προηγούμενης διαφάνειας να λύσει το πρόβλημα της μεγάλης καθυστέρησης; Όχι, το κρατούμενο εξόδου συνεχίζει την “κυμάτωση” ! Ιδέα: χρήση δύο επιπέδων λογικής για την παραγωγή του κρατούμενου εξόδου από οποιοδήποτε μπλοκ Ci βάση του κρατούμενου εισόδου C0 και των προσθετέων bits Ai and Bi Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

20 Αριθμητικές Συναρτήσεις και Κυκλώματα
Μπλοκ CLA Υλοποίηση: C1 = G0+P0 C0 C2 = G1+P1C1 = G1+P1(G0+P0C0) = G1+P1G0+P1P0C0 C3 = G2 + P2C2 = G2+P2G1+P2P1G0+P2P1P0C0 C4 = G3+P3G2+P3P2G1+P3P2P1G0 + P3P2P1P0 C0 = G P0-3C0 Ομάδα Παραγωγής Κρατουμένου Ομάδα Μετάδοσης Κρατουμένου Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

21 Λογική Παραγωγής/Μετάδοσης για 4-bit CLA
Όλα 2-επιπέδων  Το Cout υπολογίζεται γρήγορα Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

22 Αριθμητικές Συναρτήσεις και Κυκλώματα
Δεκαδική Πρόσθεση Σχεδιάστε ένα κύκλωμα για την εκτέλεση δεκαδικής πρόσθεσης, αφαίρεσης, … Είσοδος σε κωδικοποιημένη δεκαδική μορφή, π.χ. BCD Δεκαδικός Αθροιστής BCD: 8 είσοδοι (4 bits για τον κάθε δεκαδικό αριθμό) 5 έξοδοι για το δεκαδικό άθροισμα και το κρατούμενο Θυμηθείτε τον κανόνα για BCD πρόσθεση: Προσθέτουμε 0110 στο άθροισμα αν αυτό είναι μεγαλύτερο του 1010, για να διορθώσουμε την τιμή του κρατουμένου Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

23 Αθροιστής Binary Coded Decimal (BCD)
Προσθετέος Προσθετέος C = K + z3.z2 + z3.z1 K δυαδικός αθροιστής 4-bit z3 z2 z1 z0 C δυαδικός αθροιστής 4-bit S3 S2 S1 S0 Άθροισμα BCD Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

24 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2008
ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008 Νοε-18 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2008 Άλλες Αριθμητικές Συναρτήσεις και Κυκλώματα Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Αριθμητικές Συναρτήσεις και Κυκλώματα

25 Αριθμητικές Συναρτήσεις και Κυκλώματα
Περίληψη Αφαίρεση δυαδικών Συμπλήρωμα του 2 (2´s complement) Επέκταση σε συμπλήρωμα του r Αφαίρεση με συμπλήρωμα Δυαδικοί Αθροιστές/Αφαιρέτες Προσημασμένοι (Signed) αριθμοί Προσημασμένη Πρόσθεση/Αφαίρεση Πρόβλημα Υπερχείλισης (Overflow) Δυαδικοί Πολλαπλασιαστές Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

26 Αριθμητικές Συναρτήσεις και Κυκλώματα
Δυαδική Αφαίρεση Μη-προσημασμένοι αριθμοί (Unsigned numbers) το πρόσημο δεν αναπαρίσταται ρητά (εννοείται). Δεδομένων των δυαδικών αριθμών M και N, βρείτε M-N: Περίπτωση I: M ≥ N, άρα, το MSB του Borrow είναι το B M N Το αποτέλεσμα είναι ορθό! Dif Περίπτωση II: N > M, άρα, το MSB του Borrow είναι το B M N Το αποτέλεσμα χρειάζεται Dif διόρθωση! Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

27 Δυαδική Αφαίρεση (συν.)
Γενικά, εάν N > M, Dif = M-N+2n, όπου το n = # bits. Στην περίπτωση II του προηγούμενου παραδείγματος, Dif= = 21. Για να διορθωθεί ο βαθμό (magnitude) του Dif, που έπρεπε να ήταν N-M, υπολογίζεται το 2n-(M-N+2n). Αυτό είναι γνωστό ως το συμπλήρωμα του 2 (2’s complement) του Dif. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

28 Αριθμητικές Συναρτήσεις και Κυκλώματα
Γενική Διαδικασία Για την αφαίρεση 2 n-bit αριθμών, M-N, στην βάση του 2: Βρείτε M-N. Εάν το MSB του Borrow είναι 0, τότε M ≥ N. Το αποτέλεσμα είναι θετικό και ορθό. Εάν το MSB του Borrow είναι 1, τότε N > M. Το αποτέλεσμα είναι αρνητικό και ο βαθμός του πρέπει να διορθωθεί με την αφαίρεση του από το 2n (βρείτε το συμπλήρωμα του 2). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

29 Ακόμη ένα παράδειγμα Αφαίρεσης
M = και N = , βρείτε M-Ν B M N Dif n Dif Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

30 Διάγραμμα Αφαιρέτη M0M1M2M3 N0N1N2N3 B 4-bit αφαιρέτης Ενεργοποιείται όταν B=1; αλλιώς, το αποτέλεσμα από τον αφαιρέτη περνά. Επιλεκτικό Συμπλήρωμα του 2 Δεν είναι ο καλύτερος τρόπος υλοποίησης κυκλώματος αφαιρέτη! Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

31 Διάγραμμα Δυαδικού Αθροιστή-Αφαιρέτη
Διάγραμμα Δυαδικού Αθροιστή-Αφαιρέτη N0N1N2N3 M0M1M2M3 B 4-bit Αθροιστής 4-bit Αφαιρέτης Επιλεκτικό Συμπλήρωμα του 2 (Sub/Add) Quadruple 2-to-1 MUX Sub/Add =1  αποτέλεσμα=|M-N| Sub/Add =0  αποτέλεσμα =M+N Αποτέλεσμα Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

32 Αριθμητικές Συναρτήσεις και Κυκλώματα
Συμπληρώματα Υπάρχουν 2 τύποι συμπληρωμάτων για κάθε σύστημα βάσης-r : Συμπλήρωμα βάσης r (r’s complement) πχ. συμπλήρωμα του 2 για δυαδικό και συμπλήρωμα του 10 για δεκαδικό. Μειωμένο (Diminished) Συμπλήρωμα βάσης r (r-1’s complement) πχ. το συμπλήρωμα του 1 για δυαδικό και το συμπλήρωμα του 9 για δεκαδικό. Θα εξετάσουμε μόνο συμπληρώματα του 2 και του 1 για δυαδικούς (βάση 2). Η ίδια λογική ισχύει και για άλλες βάσεις (πχ. δεκαδική). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

33 Αριθμητικές Συναρτήσεις και Κυκλώματα
Συμπλήρωμα του 2 Για ένα θετικό δυαδικό αριθμό με n ψηφία N2, το συμπλήρωμα του 2 , 2C(N2), δίνεται από: 2C(N2) = 2n-N2 , εάν n > , εάν n = 0 Παράδειγμα 1: N2 =1010 2C(N2) = 24-N2 = – = 01102 Παράδειγμα 2: N2 =11111 2C(N2) = 25-N2 = – = { Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

34 Αριθμητικές Συναρτήσεις και Κυκλώματα
Συμπλήρωμα του 2 (συν.) Ένας πιο εύκολος τρόπος για να υπολογίσουμε το συμπλήρωμα του 2: Αφήστε τα least significant 0 και πρώτο 1 χωρίς αλλαγές Αντικαταστήστε 0 με 1 και 1 με 0 στα υπόλοιπα higher significant bits. Παραδείγματα: N = N = συμπλήρωμα του συμπλήρωμα του 2 complement χωρίς αλλαγές complement χωρίς αλλαγές Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

35 Αριθμητικές Συναρτήσεις και Κυκλώματα
Συμπλήρωμα του 1 Για ένα θετικό δυαδικό αριθμό N2 με n ψηφία, το συμπλήρωμα του 1, 1C(N2), δίνεται από: 1C(N2) = (2n-1) - N2 Παράδειγμα 1: N2 =011 1C(N2) = (23-1)-N2 = 1112 – 0112 = 1002 Παράδειγμα 2: N2 =1010 1C(N2) = (24-1) - N2 = – = Παρατήρηση: το συμπλήρωμα του 1 μπορεί να παραχθεί ευκολότερα βρίσκοντας το συμπλήρωμα όλων των bits του αριθμό (bit-by-bit complementation). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

36 Αριθμητικές Συναρτήσεις και Κυκλώματα
Παρατήρηση … Συγκρίνετε το συμπλήρωμα του 1 με το συμπλήρωμα του 2: 2C(N2) = 2n-N2 = 2n-N = [(2n-1) - N] + 1 = 1C(N2) +1 Άρα το, συμπλήρωμα του 2 μπορεί να βρεθεί βρίσκοντας το συμπλήρωμα του 1 και προσθέτοντας 1. Παράδειγμα: N = 1001 2C(N) = 24 – N = – 1001 = 0111 1C(N) = 24 – 1 - N = 1111 – 1001 = 0110  2C(N) = 1C(N) + 1 = = 0111 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

37 Αφαίρεση με Συμπληρώματα
Για να βρούμε το M-N = M+(-N), μπορούμε να χρησιμοποιήσουμε μια συμπληρωματική μορφή για την αναπαράσταση ενός αρνητικού αριθμού -N, και να κάνουμε μια “απλή πρόσθεση”. Πρέπει να μπορούμε να “μετατρέψουμε” το αποτέλεσμα. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

38 Αφαίρεση με Συμπλήρωμα του 2
Εάν χρησιμοποιήσουμε συμπλήρωμα του 2 για την αναπαράσταση αρνητικών αριθμών: RI = M + 2C(N2) = M + (2n-N) = M – N + 2n Εάν υπάρχει ένα μη-μηδενικό carry out στην πρόσθεση, τότε M ≥ N  το carry out αγνοείται και τα υπόλοιπα ψηφία είναι ίσα με R = M-N. Εάν M < N, τότε υπολογίζουμε το συμπλήρωμα του 2 του RI (=2n- RI = 2n- (M – N + 2n) = N – M) και προσθέτουμε ένα αρνητικό πρόσημο στην αρχή του αριθμού. Δηλ., το αποτέλεσμα του R είναι -2C([RI]2) = -(N-M). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

39 Αριθμητικές Συναρτήσεις και Κυκλώματα
Παράδειγμα A = (8410), B = (6710) Βρείτε R = A-B: 2C(B) = (6110) A+B = = Το carry απορρίπτεται, R = (1710) ✔ Βρείτε R = B-A: 2C(A) = (4410) B+A = = R = -2C(B+A) = (-17) ✔ Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

40 Αφαίρεση με Συμπλήρωμα του 1
Εάν χρησιμοποιήσουμε συμπλήρωμα του 1 για την αναπαράσταση αρνητικών αριθμών: RI = M + 1C(N2) = M + (2n-1-N) = M – N + 2n-1 Εάν υπάρχει ένα μη-μηδενικό carry out στην πρόσθεση, τότε M ≥ N  το carry out αγνοείται και προσθέτουμε 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 Αριθμητικές Συναρτήσεις και Κυκλώματα

41 Αριθμητικές Συναρτήσεις και Κυκλώματα
Παράδειγμα A = (8410), B = (6710) Βρείτε R = A-B: 1C(B) = (6010) A+B = = Το carry απορρίπτεται και προσθέτουμε 1, R = = (1710) ✔ Βρείτε R = B-A: 1C(A) = B+A = = R = -1C(B+A) = (-17) ✔ Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

42 Δυαδικοί Αθροιστές/Αφαιρέτες
ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008 Νοε-18 Δυαδικοί Αθροιστές/Αφαιρέτες Εάν εκτελέσουμε αφαίρεση χρησιμοποιώντας συμπληρώματα, εξαλείφουμε την πράξη της αφαίρεσης, και, επομένως, μπορούμε να χρησιμοποιήσουμε έναν αθροιστή, με κατάλληλο κύκλωμα για συμπλήρωμα. Στην ακρίβεια, μπορούμε να χρησιμοποιήσουμε έναν αθροιστή, για πρόσθεση και για αφαίρεση: Συμπλήρωμα αφαιρετέου για αφαίρεση Μη-συμπλήρωση αφαιρετέου για πρόσθεση  Για να υλοποιήσουμε ένα κύκλωμα πρόσθεσης/αφαίρεσης, χρειαζόμαστε ένα αθροιστή (adder) και ένα κύκλωμα που να επιλέγει μεταξύ συμπληρώματος ή μη (selective complementer) Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα Αριθμητικές Συναρτήσεις και Κυκλώματα

43 Δυαδικοί Αθροιστές/Αφαιρέτες
Η αφαίρεση A -B μπορεί να γίνει υπολογίζοντας το συμπλήρωμα του 2 του B και προσθέτοντας το αποτέλεσμα στον A. Το συμπλήρωμα του 2 του B υπολογίζεται με (i) την συμπλήρωση του B και (ii) προσθέτοντας 1 στο αποτέλεσμα του (i). A-B = A + 2C(B) = A + 1C(B) = A + B’ + 1 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

44 Δυαδικός Αθροιστής/Αφαιρέτης 4ων-bit
-- Οι πύλες XOR λειτουργούν ως προγραμματιζόμενοι αντιστροφείς Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

45 Δυαδικός Αθροιστής/Αφαιρέτης 4ων-bit
Όταν S = 0, το κύκλωμα εκτελεί A + B, αφού το carry in στο LSB είναι 0 και οι έξοδοι των πυλών XOR δίνουν B  0 = Β. Όταν S = 1, το κύκλωμα εκτελεί Α + Β’ + 1 = A - B, αφού το carry στο LSB είναι 1 και οι έξοδοι των πυλών XOR δίνουν B  1 = Β’ . Άρα, το κύκλωμα προσθέτει στον A το συμπλήρωμα του 1 του B συν 1 (από το carry στο LSB). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

46 Δυαδικός Αθροιστής/Αφαιρέτης 4ων-bit
S=0 B3 B2 B1 B0 Όταν S = 0, επιλέγει πρόσθεση Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

47 Δυαδικός Αθροιστής/Αφαιρέτης 4ων-bit
S=1 B3’ B2’ B1’ B0’ 1 Όταν S = 1, επιλέγει αφαίρεση Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

48 Δυαδικός Αθροιστής/Αφαιρέτης 4ων-bit
ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008 Νοε-18 Δυαδικός Αθροιστής/Αφαιρέτης 4ων-bit Όταν C4 = 0 και S = 1, τότε A < B και πρέπει να διορθωθεί το αποτέλεσμα R3…R0 (διαφάνεια 38). Άρα, πρέπει να υπολογιστεί το συμπλήρωμα του 2 του R3…R0: Χρησιμοποιείται ένα ειδικό κύκλωμα για το συμπλήρωμα του 2 ή Χρησιμοποιείται ο αθροιστής/αφαιρέτης ξανά, με A3…A0=0000, B3…B0=R3…R0 και S=1. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα Αριθμητικές Συναρτήσεις και Κυκλώματα

49 Προσημασμένοι Δυαδικοί Αριθμοί (Signed Binary Numbers)
Σύστημα Προσημασμένης-Απόλυτης-Τιμής (Signed-Magnitude system): Οι προσημασμένοι αριθμοί αναπαριστούνται χρησιμοποιώντας το MSB του δυαδικού αριθμού για τον καθορισμό του πρόσημου του αριθμού: Εάν MSB = 0  θετικός αριθμός Εάν MSB = 1  αρνητικός αριθμός Μην το συγχύσετε με μη-προσημασμένους (unsigned) αριθμούς! Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

50 Προσημασμένοι Αριθμοί: Σύστημα Signed-Magnitude (συν.)
Για παράδειγμα: -1010 σε μη-προσημασμένο (το πρόσημο – δεν αποτελεί μέρος της δυαδικής τιμής) σε προσημασμένο με signed-magnitude (το πρόσημο – αναπαρίσταται με MSB=1) Άλλο παράδειγμα: 10112 1110 σε μη-προσημασμένο -310 σε προσημασμένο με signed-magnitude Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

51 Προσημασμένοι Αριθμοί Σύστημα Signed-Magnitude (συν.)
Να ξεχωρίσουμε το bit του πρόσημου από τα magnitude bits, Να θεωρήσουμε τα magnitude bits ως ένα μη-προσημασμένο αριθμό (η διόρθωση πρέπει να γίνεται όπου χρειάζεται). Για αποφυγή της διόρθωσης, χρησιμοποιείται το σύστημα Προσημασμένου-Συμπληρώματος (Signed Complement). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

52 Αριθμητικές Συναρτήσεις και Κυκλώματα
Προσημασμένοι Αριθμοί: Σύστημα Προσημασμένου-Συμπληρώματος (Signed-Complement) Η απόλυτη τιμή (magnitude) ενός αρνητικού αριθμού αναπαρίσταται στην συμπληρωματική του μορφή (με συμπλήρωμα του 2 ή του 1). Πχ., Χρησιμοποιούμε 8-bits για την αναπαράσταση των -910 και 910 -910: σε signed-magnitude σε signed-1’s complement σε signed-2’s complement 910 = σε όλα τα πιο πάνω συστήματα Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

53 Πρόσθεση/Αφαίρεση με Signed-Magnitude
Για την εκτέλεση πρόσθεσης ή αφαίρεσης 2 αριθμών (M και N) σε signed-magnitude, ακολουθούμε τους γνωστούς κανόνες αριθμητικής: Ίδιο πρόσημο: προσθέτουμε και κρατούμε το ίδιο πρόσημο. Διαφορετικά πρόσημα: Αφαιρούμε το N από το M και εάν το Borrow == 1, διορθώνουμε το αποτέλεσμα παίρνοντας το συμπλήρωμα του 2. Το πρόσημο είναι αρνητικό. Παράδειγμα: M= , N= το N είναι αρνητικό, άρα υπολογίζουμε |M-N| = = , με End-Borrow = 1.  M-N < 0 και για την διόρθωση του βρίσκουμε το συμπλήρωμα του 2 του |Μ-Ν|=  αποτέλεσμα = Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

54 Πρόσθεση με Signed-2’s Complement
Η πρόσθεση 2 προσημασμένων αριθμών, όπου οι αρνητικοί αριθμοί αναπαρίστανται σε signed-2’s complement, παράγεται προσθέτοντας τους 2 αριθμούς (συμπεριλαμβανομένων των sing bits). Το Carry out αγνοείται. Παραδείγματα: (Υποθέστε αναπαραστάσεις 5-bit) (+10) (+10) (-10) (-10) (+5) (-5) (+5) (-5) (+15) (+5) (-5) (-15) Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

55 Πρόσθεση με Signed-2’s Complement (συν.)
Όταν διαβάζεται αριθμούς σε 2’s complement να θυμάστε ότι, όταν MSB = 1 ο αριθμός είναι αρνητικός και χρειάζεται να υπολογίσετε το 2’s complement της απόλυτης τιμής (magnitude). Παράδειγμα: Πιο είναι το δεκαδικό αντίστοιχο του ? Είναι αρνητικός αριθμός αφού το MSB=1 Magnitude = το συμπλήρωμα του 2 του magnitude = Ο αριθμός είναι το -5510 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

56 Αφαίρεση με Signed-2’s Complement
Η αφαίρεση 2 προσημασμένων αριθμών, όπου οι αρνητικοί αριθμοί αναπαρίστανται σε signed-2’s complement, παράγεται προσθέτοντας το 2’s complement του αφαιρετέου με τον αφαιρέτη (συμπεριλαμβανομένων των sing bits). Το Carry out αγνοείται. Παραδείγματα: (5-bit αναπαραστάσεις) (+10) (+10) (-10) (-10) (+5) (-5) (+5) (-5) (+10) (+10) (-10) (-10) (-5) (+5) (-5) (+5) (+5) (+15) (-15) (-5) Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

57 Το πρόβλημα της Υπερχείλισης
Εάν η πρόσθεση 2 n-bit αριθμών δίνει έναν αριθμό με n+1 bits, τότε εμφανίζονται συνθήκες υπερχείλισης. Η εύρεση υπερχείλισης μπορεί να υλοποιηθεί είτε με υλικό (h/w) ή λογισμικό (s/w). Η εύρεση εξαρτάται από το αριθμητικό σύστημα που χρησιμοποιείται: προσημασμένο ή μη-προσημασμένο. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

58 Το πρόβλημα της Υπερχείλισης στο Μη-Προσημασμένο Σύστημα
Το πρόβλημα της Υπερχείλισης στο Μη-Προσημασμένο Σύστημα Πρόσθεση: Όταν το Carry out == 1. Αφαίρεση: Δεν μπορεί να γίνει ποτέ. Το Magnitude του αποτελέσματος είναι πάντα ίσο ή μικρότερο από τον πιο μεγάλο των 2 αριθμών.  ΔΕΝ είναι πρόβλημα! Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

59 Το πρόβλημα της Υπερχείλισης στο Σύστημα Signed-2’s complement
Να θυμάστε ότι το MSB είναι το πρόσημο. Αλλά προστίθεται και το πρόσημο! Άρα, ένα carry out == 1 δεν σημαίνει πάντα υπερχείλιση! Υπερχείλιση παρατηρείται ΜΟΝΟ όταν και οι 2 αριθμοί έχουν το ίδιο πρόσημο. Αυτή η κατάσταση μπορεί να βρεθεί όταν το τελικό carry out (Cn) είναι διαφορετικό από το carry της προηγούμενης θέσης (Cn-1). Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

60 Το πρόβλημα της Υπερχείλισης στο Σύστημα Signed-2’s complement (συν.)
Παράδειγμα 1: M=6510 και N=6510 σε ένα 8-bit σύστημα με signed-2’s complement. M = N = M+N = με Cn=0. Αυτό είναι λάθος αφού δίνει αρνητικό αριθμό! Εάν το Cn οριστεί ως το MSB, τότε έχουμε (13010) που είναι ορθό, αλλά χρειάζεται 9-bits  υπερχείλιση Παράδειγμα 2: M=-6510 και N=-6510 σε ένα 8-bit σύστημα με signed-2’s complement. M = N = M+N = με Cn=1. Αυτό είναι πάλι λάθος αφού δίνει θετικό αριθμό! Εάν το Cn οριστεί ως το MSB, τότε έχουμε (-13010) που είναι ορθό, αλλά πάλι απαιτεί 9-bits  υπερχείλιση Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

61 Εύρεση Υπερχείλισης στο Σύστημα Signed-2’s complement
Οι καταστάσεις υπερχείλισης εντοπίζονται συγκρίνοντας τις τιμές στο carry in και curry out του sign bit (Cn-1 και Cn). n-bit αθροιστής/αφαιρέτης με λογική εύρεσης υπερχείλισης V Cn Cn+1 C n-bit αθροιστής/ αφαιρέτης το C =1 δείχνει υπερχείλιση όταν προσθέτουμε/αφαιρ. unsigned αριθμούς. το V=1 δείχνει υπερχείλιση όταν προσθέτουμε/αφαιρ. αριθμούς σε signed-2’s complement Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

62 Αριθμητικές Συναρτήσεις και Κυκλώματα
Δυαδικός Πολ/στης Ο δυαδικός πολ/σμός μοιάζει με τον δεκαδικό πολ/σμό: Ο n-bit πολλαπλασιαστέος (multiplicand) πολ/ζεται με κάθε bit του m-bit πολλαπλασιαστή (multiplier), αρχίζοντας από το LSB, για την παράγωγή n μερικών γινομένων. Το κάθε διαδοχικό σύνολο των μερικών γινομένων μετατοπίζεται 1 bit προς αριστερά. Το αποτέλεσμα παράγεται με την πρόσθεση των m γραμμών των μερικών γινομένων. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

63 Δυαδικός Πολ/στης (συν.)
Παράδειγμα: Πολ/στης A=A1A0 και πολ/στέος B=B1B0 Βρείτε το C = AxB: B B x A A A0B1 A0B A1B1 A1B C C C C0 Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

64 Κύκλωμα Δυαδικού Πολ/στή πολ/στης 2-bit Χ 2-bit
Οι Half Adders είναι αρκετοί αφού δεν υπάρχει Carry-in μαζί με τις δύο εισόδους της πρόσθεσης. Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα

65 Κύκλωμα Δυαδικού Πολ/στή πολ/στης 4-bit Χ 3-bit
Το 4-bit x 3-bit δίνει αποτέλεσμα 7-bit Νοε-18 Αριθμητικές Συναρτήσεις και Κυκλώματα


Κατέβασμα ppt "ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2008"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google