Ψηφιακά Συστήματα VLSI. ΑΡΙΘΜΗΤΙΚΑ ΚΥΚΛΩΜΑΤΑ VLSI Αθροιστές, Πολλαπλασιαστές (Σειριακοί- Παράλληλοι). ΠΡΑΞΕΙΣ ΜΕ ΠΡΟΣΗΜΑΣΜΕΝΟΥΣ ΑΡΙΘΜΟΥΣ Συμπλήρωμα ως προς, Αφαιρέτες, Booth, Modified Booth, αριθμητικά συστήματα περίσσειας (Redundant), Signed Digit αριθμητική, κανονική παράσταση αριθμών 3. ΥΛΟΠΟΙΗΣΗ ΨΗΦΙΑΚΩΝ ΦΙΛΤΡΩΝ Μετασχηματισμοί Γράφων, Φίλτρα FIR, Κυκλώματα πράξεων με RSD αριθμούς
ΑΡΙΘΜΗΤΙΚΑ ΚΥΚΛΩΜΑΤΑ VLSI Ελαχιστοποίηση καθυστέρησης Ελαχιστοποίηση επιφάνειας chip Επιλογή κατάλληλης τεχνολογίας VLSI ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ & ΜΕΤΑΤΡΟΠΗΣ ΚΥΚΛΩΜΑΤΩΝ Μεγιστοποίηση του ρυθμού λειτουργίας Κυκλώματα συνεχούς διοχέτευσης (pipeline) Συστολικά (systolic) δίκτυα
Αθροιστές ΒΑΣΙΚΗ ΔΟΜΙΚΗ ΜΟΝΑΔΑ Πλήρης Αθροιστής (Full Adder: ) b a s = a b c in c out = ab ac in bc in c out c in Παράλληλος Αθροιστής s Σειριακός Αθροιστής
Πίνακας αληθείας και Πίνακας Καρνώ Πλήρη-Αθροιστή α b c in s c out Με την βοήθεια των πινάκων εξάγουμε τις αλγεβρικές σχέσεις ανάμεσα στα σήματα: s: ab c in c out : c in ab s= c in ab ac in b bac in c in ab c out = c in b ab ac in
Σχηματικό Πλήρη-Αθροιστή s = a b c in c out = ab ac in bc in a b c in s c in a b a b c out
Σχηματικό Πλήρη-Αθροιστή Αν p= τότε a=b (,) ή (,) c out =a ή b Αν p= τότε a b (,) ή (,) c out =c in c in c out a b c in p s s: ab c in c out : c in ab s= c in ab ac in b bac in c in ab c out = c in b ab ac in
Σχηματικό Πλήρη-Αθροιστή 3 s = a b c in (a b c in ) (~c out ) c out = a b a c in b c in a b C out s c in a b a b C out
Αθροιστής διάδοσης κρατουμένου 4-bits b 3 a 3 b a b a b a c out c 3 c c c s 3 s s s Delay=n T η μέγιστη καθυστέρηση Πρακτικά όμως η κατά μέσο όρο καθυστέρηση είναι: Delay=(log n) T Σε περίπτωση διαφορετικής καθυστέρησης μεταξύ S και Cout έχουμε μέγιστη καθυστέρηση (T S > T Cout ) Delay= T S (n-) T Cout
Μετατροπή παράλληλου κυκλώματος σε κύκλωμα διοχέτευσης Data In Σ.Κ. Σ.Κ. Σ.Κ. 3... Σ.Κ. n Data out Σ.Κ. : Συνδυαστικό Κύκλωμα Data In Σ.Κ. D Σ.Κ.... D Σ.Κ. n Data out Clock... D: Σειρά Μανδαλωτών
Επιλογή σημείων παρεμβολής καθυστερήσεων b 3 a 3 b a b a b a c out c 3 c c c s 3 s s s
Ροή δεδομένων σε ένα pipeline αθροιστή Πίνακας Συνεχόμενης Άθροισης τεσσάρων αριθμών των 4-bit 4 4 a 3 b3 4 4 a b 4 4 a b 4 4 a b 3 3 a 3 b3 3 3 a b 3 3 a b 3 3 a b a 3 b3 a b a b s 3 a 3 b3 a b s s a 3 b3 s s s s 3 s s s
Προϋποθέσεις συστολικότητας Τα κύτταρα που αποτελούν το κύκλωμα πρέπει να είναι πανομοιότυπα. Πρέπει να υποστηρίζεται η λογική της συνεχούς διοχέτευσης. Απαγορεύεται να υπάρχουν γραμμές σημάτων μεταξύ των κυττάρων που να μην διακόπτονται από στοιχεία καθυστέρησης (latches). Απλή κατασκευή Υψηλή ταχύτητα λειτουργίας
Ο αθροιστής διάδοσης κρατουμένου σε λειτουργία συνεχούς διοχέτευσης b 3 a 3 b a b a b a c c 4 s 3 s s s = Delay
Συστολικό κύκλωμα παράλληλου αθροιστή με ημιαθροιστές b 3 a 3 b a b a b a s 4 s 3 s s s = Delay
Πρόσθεση m αριθμών (με n-bit ο καθένας) a n a n... a a a a n-bit Adder PS n a n... PS a PS a n-bit Adder......... PS n m m a n... PS m a m PS m a m n-bit Adder... Sn S S T ( m ) n T
Δίκτυο αθροιστών διάδοσης κρατουμένου an a n a n a n a... a a a Συνολική καθυστέρηση T= (nm-)t n S m A j j PS n n a n n- n a n...... PS 3 a PS a.. nm- m m a m n a m n a.. nm-..... m. a. m- s n- s n-... s s
5Χ4 ripple carry αθροιστής συνεχούς διοχέτευσης Ρυθμός Λειτουργίας F= /T T D = /T Clock Συνολική καθυστέρηση T= (nm-)t Clock Όπου T D είναι η πρόσθετη καθυστέρηση που εισάγει η κάθε μονάδα D-Flip Flop. Latency=(m-)T Clock TIME 3 4 5 6 7
Αθροιστής 5 αριθμών με σώσιμο κρατουμένου a 3 a 3 a 3 a a a a a a a a a 3 a 3 3 a 3 a 3 a Συνολική καθυστέρηση: T= (m-)t (n-)t όπου m=πλήθος αριθμών n=πλήθος bit α 4 3 α 4 α 4 4 a Αποτέλεσμα σε μορφή αθροίσματοςκρατουμένου Τελικός αθροιστής διάδοσης κρατουμένου
Αθροιστής 5 αριθμών με σώσιμο κρατουμένου & συνεχή διοχέτευση a 3 a 3 a 3 a a a a a a a a a Ρυθμός Λειτουργίας 3 a 3 3 a 3 a 3 a F= /(T T D) = /T Clock Συνολική καθυστέρηση T= (nm-)t Clock 4 a 3 4 a 4 a 4 a Αποτέλεσμα σε μορφή αθροίσματοςκρατουμένου Latency=(n m-)t Clock Τελικός αθροιστής διάδοσης κρατουμένου
Αθροιστής 8 (m) αριθμών (Α Α 7 ) Έστω m=8 το πλήθος των αριθμών Συνολικός αριθμός Καταχωρητών=m(m-)/=8 Latency=(m-) T Clock =7 T Clock Για n=πλήθος bit, T, Τ c οι καθυστερήσεις αθροίσματος και κρατουμένου αντίστοιχα Συνδυαστική καθυστέρηση Τ Σ T Σ = (m-)t S nt c A A A A 3 A 4 A 5 A 6 A 7 o Επίπεδο καταχωρητώ (ΕΚ) o (ΕΚ) 3o (ΕΚ) 4o (ΕΚ) 5o (ΕΚ) 6o (ΕΚ)
Αθροιστής δυαδικού δένδρου 8 αριθμών (Α Α 7 ) A A A A 3 A 4 A 5 A 6 A 7 o Επίπεδο καταχωρητών (ΕΚ) o (ΕΚ) ΣΑ i Συνολικός αριθμός Καταχωρητών= m- Latency=log m T Clock =3 T Clock-ADDER
Αθροιστής CARRY-SAVE (CSA) z 7y7 z 6y6 z 5y5 z 4y4 z 3y3 z y z y z y x 7 x 6 x 5 x 4 x 3 x x x s 8 c 7 s 7 c 6 s 6 c 5 s 5 c 4 s 4 c 3 s 3 c s c s c s c - Z Y X (n) - bit C.S. ΑΘΡΟΙΣΤΗΣ S C (n) - bit
ΠΡΟΣΘΕΣΗ 8 (m) ΑΡΙΘΜΩΝ ΜΕ ΔΕΝΔΡΟ CSA A A A A 3 A 4 A 5 A 6 A 7 Συνολικός αριθμός Καταχωρητών m-3=3 CSA CSA CSA CSA o Επίπεδο καταχωρητ (ΕΚ) Latency= log 3/ m T Clock =.7log m T Clock = 5 T Clock- o (ΕΚ) Συνδυαστική καθυστέρηση Τ Σ T Σ =.7log m T S nt c CSA 3o (ΕΚ) CSA 4o (ΕΚ) ΑΠΛΟΣ ΑΘΡΟΙΣΤΗΣ ΣΑ i
ΚΑΘΥΣΤΕΡΗΣΗ (Latency) ΤΥΠΟΣ ΣΕΙΡΙΑΚΟ m m- ΔΕΝΔΡΟ ΔΕΝΔΡΟ CS log m.7log m 8 7 3 5 4 5 6 5 4 7 3 3 5 9 64 63 6
Δυαδικό δένδρο 8 αριθμών (Α Α 7 ) με αθροιστές διάδοσης κρατουμένου A A A A 3 A 4 A 5 A 6 A 7 Αθροιστές διαδοσης κρατουμένου Έστω n=πλήθος bit και T S, Τ c οι καθυστερήσεις αθροίσματος και κρατουμένου αντίστοιχα. Συνολική συνδυαστική καθυστέρηση για m αριθμούς είναι: T Σ = T S (log m) T c n ΣΑ i Αν T c << T S πχ. T c = T S /4 τότε: T Σ = T S (log m n/4) Στη συνδυαστική του μορφή είναι ταχύτερο από το προηγούμενο σχήμα.
Αθροιστές διάδοσης κρατουμένου Σε ένα πλήρη αθροιστή έχουμε: s i =(a i b i )c i και c i =a i b i (a i b i )c i Θέτω p i = a i b i και g i =a i b i Έχουμε S i =p i c i και c i = g i p i c i Για το νέο κρατούμενο εξόδου έχουμε τα εξής: Αν g i = «Γεννιέται» κρατούμενο στην ίδια βαθμίδα Αν p i = «Διαδίδεται» κρατούμενο από προηγούμενη βαθμίδα b i a i b 3 a 3 b a b a b a c out c 3 c c c g i p i s 3 s s s c i c i CLA s i
Τα σήματα PGK For a full adder, define what happens to carries Generate: C out = independent of C G = A B Propagate: C out = C P = A B Kill: C out = independent of C K = ~A ~B
Carry-Ripple Adder G G P G i: i i i : A 4 B 4 A 3 B 3 A B A B C in Γεννήτρια PG G 4 P 4 G 3 P 3 G P G P G P Συγκρότημα δημιουργίας κρατουμένου G 3: G : G : G : C 3 C C C Γεννήτρια αθροίσματος C 4 C out S 4 S 3 S S
Delay Carry-Ripple PG Diagram Bit Position 5 4 3 9 8 7 6 5 4 3 t t ( N ) t t ripple pg AO xor 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : : 3
Αθροιστές πρόβλεψης κρατουμένου C = G P C C = G P G P P C C 3 = G P G P P G P P P C C 4 = G 3 P 3 G P 3 P G P 3 P P G P 3 P P P C Η γενική μορφή της σχέσης για το κρατούμενο είναι η παρακάτω: 3 3 3......... ))))) ( (... ( ( ( P PC P P P P G P P P G P P P G P P P G G PC G P P G P G P G P G C n n n n n n n n n n n n n n n n n n n n n n n n n
Γεννήτρια πρόβλεψης κρατουμένου C 3 =G P G P P G P P P C P G C = G P G P P C P G C = G P C P G C
Αθροιστές δυαδικής πρόβλεψης κρατουμένου X x n i nxn... x xi i Y y n i n yn... y yi i Ορίζουμε ως προ-κρατουμένο το ζεύγος (G,P)=Γ για κάθε σύνολο από συνεχόμενα bits δύο αριθμών που είναι ταυτόσημο με αυτό για ένα ζευγάρι bits. Y X Cout = G P Cin C out n -bit carry circuit C in G P Αν G= «Γεννιέται» κρατούμενο στην ίδια βαθμίδα Αν P= «Διαδίδεται» κρατούμενο από προηγούμενη βαθμίδα
Carry-Skip Adder Carry-ripple is slow through all N stages Carry-skip allows carry to skip over groups of n bits Decision based on n-bit propagate signal A 6:3 B 6:3 A :9 B :9 A 8:5 B 8:5 A 4: B 4: P 6:3 P :9 P 8:5 P 4: C out C C 8 C C in S 6:3 S :9 S 8:5 S 4: N=k b, b=block size, k=number of blocks t add =t pg (b-) t carry (k-) t MUX t XOR
Carry-Skip PG Diagram 6 5 4 3 9 8 7 6 5 4 3 For k n-bit groups (N = nk) 6: 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : : tskip tpg n ( k ) t AO t xor
Carry-Lookahead Adder Modules Carry-lookahead adder computes Gi: for many bits in parallel. Uses higher-valency cells with more than two inputs. A 6:3 B 6:3 A :9 B :9 A 8:5 B 8:5 A 4: B 4: C out G 6:3 P 6:3 C G :9 P :9 C 8 G 8:5 P 8:5 C 4 G 4: P 4: C in S 6:3 S :9 S 8:5 S 4: N=k b, b=block size, k=number of blocks t add = t pg t pg(b) {(b-)(k-)} t AO t XOR
CLA PG Diagram 6 5 4 3 9 8 7 6 5 4 3 6: 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : :
Carry-Select Adder Trick for critical paths dependent on late input X Precompute two possible outputs for X =, Select proper output when X arrives Carry-select adder precomputes n-bit sums For both possible carries into n-bit group A 6:3 B 6:3 A :9 B :9 A 8:5 B 8:5 A 4: B 4: C out C C 8 C 4 C in S 6:3 S :9 S 8:5 S 4: N=k b, b=block size, k=number of blocks t add = t pg {b(k-)} t AO t mux
Carry-Select Adder Factor initial PG and final XOR out of carry-select 5 4 3 9 8 7 6 5 4 3 3: 9:8 5:4 4: :8 6:4 5: :8 7:4 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : : tincrement tpg n ( k ) t AO t xor
Carry-Select Adders - Variable Group Size 5 4 3 9 8 7 6 5 4 3 : 8:7 5:4 3: 3: 9:7 6:4 4: :7 5: 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : : 5 4 3 9 8 7 6 5 4 3 : 8:7 5:4 3: : 3: 9:7 6:4 3: 4: :7 6: 5: 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : :
Αθροιστές δυαδικής πρόβλεψης κρατουμένου X x n i nxn... x xi i Y y n i n yn... y yi i Ορίζουμε ως προ-κρατουμένο το ζεύγος (G,P)=Γ για κάθε σύνολο από συνεχόμενα bits δύο αριθμών που είναι ταυτόσημο με αυτό για ένα ζευγάρι bits. Y X Cout = G P Cin C out n -bit carry circuit C in G P Αν G= «Γεννιέται» κρατούμενο στην ίδια βαθμίδα Αν P= «Διαδίδεται» κρατούμενο από προηγούμενη βαθμίδα
Αθροιστές δυαδικής πρόβλεψης κρατουμένου Αν έχω δυο συνεχόμενα υποσύνολα προ-κρατουμένων Γ και Γ τότε το ολικό είναι Γ= (G,P) = (G G P, P P ). Συμβολίζουμε την πράξη αυτή ως Γ= Γ Γ = (G,P )(G,P ) = (G,P) = (G G P, P P ) Y X Y X C out k-bit carry circuit k-bit carry circuit C in G P G P P=P P G=G G P
Το κύκλωμα του τελεστή για ένα bit O τελεστής για ένα bit στη κάθε ομάδα δηλ. αφορά σε δυο ζευγάρια συνεχόμενων bit (x,y ) (x,y ) δίνεται από τη σχέση: γ - = γ γ = (g,p )(g,p ) g p g p g p g - = g g p p - = p p g - p -
Προσεταιριστική ιδιότητα & υπολογισμός αθροίσματος Για την πράξη αυτή ισχύει η προσεταιριστική ιδιότητα: Γ 3 (Γ Γ ) = (G 3, P 3 )(G G P, P P ) = (G 3 P 3 G P P 3 G, P P P 3 ) (Γ 3 Γ )Γ = (G 3 G P 3, P P 3 )(G, P ) = ( G 3 P 3 G P P 3 G, P P P 3 ) Θέτω γ i =(g i,p i )=(x i y i, x i y i ) για το ζευγάρι των bit (x i,y i ) Ορίζω το προ-κρατούμενο Γ i για τα bit από έως i των x και y. Γ i =γ i- =(γ i (γ i- (γ i- ( (γ γ )))..)=(P i, G i ) Τα αθροίσματα σε κάθε θέση i δίνονται από τη σχέση c i =(G i- P i- c ) και s i =x i y i c i =p i (G i- P i- c ) Έτσι για το s 4 =p 4 (G 3 P 3 c ) όπου Γ 3 = γ (γ γ )=(P 3, G 3 ) Για το c 7 =(G 6 P 6 c ) όπου Γ 6 = (γ 6 (γ 5 γ 4 )) ((γ 3 γ ) (γ γ ))=(P 6, G 6 )
Υπολογισμός με τη χρήση δένδρου γ -3 x y x y x y x y x y x y x y x y 7 7 γ 7 6 γ 6 6 5 5 4 4 3 3 γ 5 γ 4 γ 3 γ γ γ 8- γ 6-7 γ 4-5 γ -3 γ - γ 4-7 γ 8-3 γ -3 Γ 3 =γ -3 γ - γ 8-9 γ 6-7 γ 4-5 γ -3 γ - =γ -3 γ 8- γ 4-7 γ -3 =γ 8-3 γ -7 γ-3 =Γ 3 =(G 3,P 3 ) γ-7 =Γ 7 =(G 7,P 7 ) C i =(G i- P i- C ) S i =p i C i C 8 C 7 C 6 C 5 C 4 C 3 C C p p p p p p p p 7 s s s s s s s s 7 6 6 5 4 3 5 4 3 C
Αθροιστής 8-bit με δυαδικό CLA y 7 x 7 y 6 x 6 y 5 x 5 y 4 x 4 y x x x y 3 x 3 y y p 6 p 5 g g p 4 p 3 p 7 p =x y p p P P 3 P P 7 P 6 P 5 P 4 G 6 G 5 G 4 G 7 G G 3 G G c = p 6 p 5 p 4 p 7 p p 3 p p C 8 s 6 s 5 s 4 s 7 s s 3 s s
Αθροιστής 6-bit πρόβλεψης κρατουμένου y 7 x 7 y 6 x 6 y 5 x 5 y 4 x 4 y x x x y 3 x 3 y y y 7 x 7 y 6 x 6 y 5 x 5 y 4 x 4 y x x x y 3 x 3 y y g 5 g 4 p 4 g 3 p 3 g p p 5 p 9 g p 7 p 7 g 6 g 5 g g p =x y p g p g 9 g 8 g 7 p 6 p 5 g 4 p 4 g 3 p 3 g p p P P 3 P C 6 G 4 G 3 G G G G 5 G 8 p 4 p 3 p p 5 p 8 p p G 9 p 9 P 9 P 8 P 7 P 6 P 5 P 4 G 6 G 5 G 4 G 7 G p 6 p 5 p 4 p 7 p p 3 G 3 p G p G C = s 4 s 3 s s 5 s 8 s s s 9 s 6 s 5 s 4 s 7 s s 3 s s
Tree Adder If lookahead is good, lookahead across lookahead! Recursive lookahead gives O(log N) delay Many variations on tree adders
PG Diagram Notation Black cell Gray cell Buffer i:k k-:j i:k k-:j i:j i:j i:j i:j G i:k P i:k G k-:j G i:j G i:k P i:k G i:j G k-:j G i:j G i:j P k-:j P i:j P i:j P i:j
Sklansky 5 4 3 9 8 7 6 5 4 3 5:4 3: : 9:8 7:6 5:4 3: : 5: 4: :8 :8 7:4 6:4 3: : 5:8 4:8 3:8 :8 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : : N=k b, b=block size, k=number of blocks t add = t pg {log N} t AO t xor
Brent-Kung 5 4 3 9 8 7 6 5 4 3 5:4 3: : 9:8 7:6 5:4 3: : 5: :8 7:4 3: 5:8 7: : 3: 9: 5: 5: 4: 3: : : : 9: 8: 7: 6: 5: 4: 3: : : : N=k b, b=block size, k=number of blocks t add = t pg {log N-} t AO t xor
Πολλαπλασιαστές n- ΑΒ = Α { b b b n- b n- } = Α i= i b i... n- b n- A (m bits) b A (m bits) b A (m bits) b A (m bits) B A (mn bits)
Οι πολλαπλασιαστές διακρίνονται σε πολλές κατηγορίες ανάλογα με: Το είδος των αριθμών που πολλαπλασιάζουμε (θετικοί ή προσημασμένοι). Την κωδικοποίηση των αριθμών (Booth, Modified Booth, Signed Digit, Canonical Signed Digit) Τον τρόπο εισαγωγής και επεξεργασίας τους (παράλληλα, σειριακά, σειριακά-παράλληλα) Τη σειρά που εισέρχονται τα bits των αριθμών στο κύκλωμα του πολλαπλασιαστή (LSB-first, MSB-first). Τον ρυθμό λειτουργίας τους (πολλαπλασιαστές διοχέτευσης, συστολικοί) Ειδικότερα θα γίνει η παρουσίαση της δομής και λειτουργίας: Των παράλληλων πολλαπλασιαστών (δίκτυα με κανονικό σχήμα CSA, CLA και CPA) Του σειριακού-παράλληλου και του σειριακού πολλαπλασιαστή διοχέτευσης για θετικούς αριθμούς. Επίσης παράλληλου πολλαπλασιαστή που δεν έχει κανονικό σχήμα και επιτρέπει μεγαλύτερες ταχύτητες λειτουργίας.
Παράλληλοι Πολλαπλασιαστές m i i a i A n i i b i B ) ( m i n j m i n j n m k k k j i j i j j i i p a b b a B A P Μερικά γινόμενα πολλαπλασιαστή των 4-bit α 3 α α α Πολ/στέος b 3 b b b Πολ/στής α 3 b α b α b α b α 3 b α b α b α b α 3 b α b α b α b α 3 b 3 α b 3 α b 3 α b 3 p p 6 p 5 p 4 p 3 p p p Γινόμενο
Παράλληλος πολλαπλασιαστής με αθροιστές διάδοσης κρατουμένου * s in a j c out s out b i c in a 3 a a * * * * a b P(nm)=a(n)b(m) Συνολική καθυστέρηση T= (nm-)t T AND * * * * * * * * b b * * * * b 3 p 7 p 6 p 5 p 4 p 3 p p p
Μετατροπή του ripple carry πολλαπλασιαστή σε συνεχούς διοχέτευσης και σε συστολική μορφή s in a j b D i a 3 a a a c out D D D D c in 4 3 b s out 6 5 4 3 b 8 7 6 5 b 9 8 7 b 3 p 7 p 6 p 5 p 4 p 3 p p p
Παράλληλος πολλαπλασιαστής 4Χ4 με σώσιμο κρατουμένου ~ s in a j a a a b i ~ a 3 b ~ ~ ~ c in c s ~ ~ ~ ~ b c out s out P(nm)=a(n)b(m) Συνολική καθυστέρηση T= (nm)t T AND ~ ~ ~ ~ b b 3 ~ ~ ~ ~ p 8 p 7 p 6 p 5 p 4 p 3 p p p
Pipeline πολλαπλασιαστής 4Χ4 με σώσιμο κρατουμένου ~ s in a j ~ a 3 a a a ~ b ~ ~ b i c in ~ ~ ~ ~ b D D c out c D s s out ~ ~ ~ ~ b : Delay ~ ~ ~ ~ b 3 p 3 p 7 p 6 p 5 p 4 p p p
Παράλληλος συστολικός πολλαπλασιαστής με σώσιμο κρατουμένου a 3 a a a s in a j 4 3 b D D D D c D c out s D s out b i c in 8 9 6 7 8 5 6 7 4 5 b 3 3 b t=5 t=4 b t=3 t= t= t=6 9 3 p 7 p 6 p 5 p 4 p 3 p p p
Παράλληλος συστολικός πολλαπλασιαστής McCanny b i s in aj c in b b a 3 a b 3 b 4 3 4 3 4 3 a 4 a c out s out 5 5 5 5 6 6 6 7 7 7 8 8 9 9 p 7 p 6 p 5 p 4 p 3 p p p
Παράλληλος Πολλαπλασιαστής με συνδυασμό σώσιμου και διάδοσης κρατουμένου * s in a j c out c out s out b i c in * a 3 a a * * * a b * * * * b P(nm)=a(n)b(m) Συνολική καθυστέρηση T= (nm-)t T AND * * * * b * * * * b 3 p 7 p 6 p 5 p 4 p 3 p p p
Δένδρα Wallace W 9 W 8 W 7 W 6 W 5 W 4 W 3 W W P(nm)=a(n)b(m) Συνολική καθυστέρηση T=(,7log m)t T AND log nt pg C.S.A C.S.A C.S.A C.S.A C.S.A C.S.A C.S.A C.P.A Χρειάζονται log 3/ m=,7log m επίπεδα
Ομαδοποίηση μερικών γινομένων a b 4 a b 3 a b a b a b a b 4 a b 3 a b a b a b a b 4 a b 3 a b a b a b a 3 b 4 a 3 b 3 a 3 b a 3 b a 3 b a 4 b 4 a 4 b 3 a 4 b a 4 b a 4 b
Πολλαπλασιαστής Wallace 5x5 a b 4 a 3 b 3 a 4 b a b 3 a 3 b a 4 b a b a 3 b a 4 b a b a b a 3 b a b a b a b a b 4 a b 3 a 3 b 4 a 4 b 3 a b 3 a b 4 a 4 b 4 a b a b a b Αθροιστής πρόβλεψης κρατουμένου ή Αθροιστής διάδοσης κρατουμένου p 9 p 8 p 7 p 6 p 5 p 4 p 3 p p p
Στάδια Ομαδοποίησης πολλαπλασιαστή Wallace Στάδιο ο : Κατακόρυφη ομαδοποίηση μερικών γινομένων ανά τρία x x x x x x Στάδιο ο : Αντικατάσταση με τις εξόδους των και νέα ομαδοποίηση x x x x x Στάδιο3 ο : Αντικατάσταση με τις εξόδους των και νέα ομαδοποίηση x x x x x Στάδιο 4 ο : Τελική μορφή του δένδρου Wallace x Αρχικό μερικό γινόμενο πολλαπλασιαστή Άθροισμα πλήρη αθροιστή Κρατούμενο πλήρη αθροιστή
Πολλαπλασιαστής Wallace 5x5 a b 4 a 3 b 3 a 4 b a b 3 a 3 b a 4 b a b a 3 b a 4 b a b a b a 3 b a b a b a b a b a b a b 3 a b 4 a b 3 a 3 b 4 a 4 b 3 a b 4 a 4 b 4 a b Αθροιστής πρόβλεψης κρατουμένου p 9 p 8 p 7 p 6 p 5 p 4 p 3 p p p
Πολλαπλασιαστής Wallace 6x6 W 5 W 4 W 3 W W W C.S.A C.S.A C.S.A a 4 b a 3 b a b a 5 b Ab a b a b Ab a 5 b a 4 b a 3 b a b a b a b a 5 b a 4 b a 3 b a b a b a b Ab C.S.A CLA Adder 5 Ab 5 a 5 b 5 a 4 b 5 a 3 b 5 y 7 a b 5 x 7 y 6 y 5 x 6 a b 5 a b 5 x 5 4 Ab 4 a 5 b 4 a 4 b 4 a 3 b 4 a b 4 a b 4 a b 4 3 Ab 3 a 5 b 3 a 4 b 3 a 3 b 3 a b 3 a b 3 a b 3 y 7 x 7 y 6 x 6 y 5 x 5 Ταχύς Αθροιστής πρόβλεψης κρατουμένου p p p 9 p 8 p 7 p 6 p 5 p 4 p 3 p p p
Πολλαπλασιαστή Wallace 6X6
ΕΡΩΤΗΜΑ ΝΑ ΜΕΤΑΤΡΑΠΕΙ Ο ΠΟΛΛΑΠΛΑΣΙΑΣΤΗΣ WALLACE 5X5 ΣΕ ΣΧΗΜΑ ΠΟΥ ΝΑ ΔΕΧΕΤΑΙ ΠΡΟΣΗΜΑΣΜΕΝΟΥΣ ΑΡΙΘΜΟΥΣ. Να αντικατασταθεί ο γρήγορος αθροιστής από μια σειρά F-A.
ΣΕΙΡΙΑΚΟΣ ΑΘΡΟΙΣΤΗΣ b n a n Έναρξη νέας πρόσθεσης Clock C n D Flip-Flop Q Μονάδα καθυστέρησης C n s n
Σειριακός- Παράλληλος Πολλαπλασιαστής AX=Ax Ax Ax Ax 3 3 α 3 x α x α x α x α 3 x α x α x α x α 3 x α x α x α x α 3 x 3 α x 3 α b 3 α x 3 p 7 p 6 p 5 p 4 p 3 p p p Γινόμενο x i a 3 a a a s 3 s s D D D s c 3 c c c D D D D
Ξεδίπλωμα στο χρόνο του Σειριακού-Παράλληλου Πολλαπλασιαστή b i c c out s in s s out a j c in x 3 x 4 a 3 a x x 3 3 3 3 4 4 4 p a a t= p t= p t=3 t=4 5 5 5 5 p 3 t=5 6 6 6 7 7 7 7 8 8 8 8 p 7 6 p 4 p 5 p 6 t=8 t=6 t=7
Ενταμίευση Συντελεστών Χρονισμός shift a 3 a a a D D D D a 3 a a a x 3 x x x s 3 s s D D D s c 3 c c c D D D D shift a a a a a 3 (stable a) a a a a 3 x x x x x 3 (new x) p=ax p p p p 3 p 4 p 5 p 6 p 7 (new p)
Εκτίμηση Επίδοσης Ψηφιακών Κυκλωμάτων Για να εκτιμήσουμε το βαθμό της επίδοσης στην υλοποίηση ενός αλγόριθμου θα πρέπει να υπολογιστεί η ποσότητα : E = /AT όπου A= το συνολικό hardware της υλοποίησης ή αν θεωρήσουμε VLSI υλοποίηση την αντίστοιχη επιφάνεια και Τ= ο απαιτούμενος χρόνος εκτέλεσης του αλγόριθμου. Ας υποθέσουμε ότι έχουμε μια παράλληλη και μια σειριακή υλοποίηση του ίδιου αλγόριθμου που χρειάζεται 8 φορές περισσότερους κύκλους ρολογιού από την παράλληλη. Α A Τ Τ Παράλληλη υλοποίηση: Hardware or Area: Α = 8A Χρόνος εκτέλεσης : Τ = Τ E = /8AT (επίδοση) P =k*8af clock (κατανάλωση) Σειριακή υλοποίηση: Hardware or Area: A = A Χρόνος εκτέλεσης: Τ = 8Τ E = /8AT, P =k*af clock Μαθηματικά φαίνεται να απαιτείται η ίδια ενέργεια, στην πράξη όμως A >Α και Τ >8Τ W << W