HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων.

Σχετικά έγγραφα
HY220 Εργαςτήριο Ψηφιακών Κυκλωμάτων.

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 11η - Κυκλώματα Δεδομένων

Πράξεις με δυαδικούς αριθμούς

7 η διάλεξη Ακολουθιακά Κυκλώματα

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 3 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 11 ο και 12 ο

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο Σύντοµη Επανάληψη

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Πολλαπλασιασμός και Διαίρεση Ακεραίων

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ : Κ. ΠΕΚΜΕΣΤΖΗ

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

a -j a 5 a 4 a 3 a 2 a 1 a 0, a -1 a -2 a -3

Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Άλλες Αριθμητικές Συναρτήσεις/Κυκλώματα

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET)

Ψηφιακά Συστήματα. 6. Σχεδίαση Συνδυαστικών Κυκλωμάτων

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΑΣΚΗΣΗ 4 ΣΧΕΔΙΑΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΛΟΓΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

Αριθμητικά Συστήματα Κώδικες

Δυαδικό Σύστημα Αρίθμησης

1. ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ. α i. (α i β i ) (1.3) όπου: η= το πλήθος ακεραίων ψηφίων του αριθμού Ν. n-1

4.1 Θεωρητική εισαγωγή

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

9. OIΚΟΥΜΕΝΙΚΕΣ ΠΥΛΕΣ ΠΟΛΛΑΠΛΩΝ ΕΙΣΟ ΩΝ

Ενότητα 9 ΑΡΙΘΜΗΤΙΚΑ & ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

Ψηφιακά Συστήματα VLSI

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Συνδυαστική Λογική. Επιμέλεια Διαφανειών: Δ.

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΑΡΙΘΜΗΤΙΚΗ ΓΙΑ ΥΠΟΛΟΓΙΣΤΕΣ

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ξργ Μονάδα επεξεργασίας ξργ δδ δεδομένων Μονάδα ελέγχου

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS)

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ελίνα Μακρή

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

1 η Θεµατική Ενότητα : Αριθµητικά Κυκλώµατα. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Κυκλώµατα µε MSI. υαδικός Αθροιστής & Αφαιρέτης

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ψηφιακά Κυκλώματα (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A].

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ.

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 2 ο. ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών

Οργάνωση Υπολογιστών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

HY422 Ειςαγωγό ςτα υςτόματα VLSI. 1 ΗΤ422 - Διάλεξθ 11θ Κυκλϊματα Δεδομζνων

Λογική Σχεδίαση Ψηφιακών Συστημάτων

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ - ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ

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

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

Αριθµητική υπολογιστών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Εισαγωγή στους Υπολογιστές

Ανάπτυξη και Σχεδίαση Λογισμικού

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs

Παράρτηµα Γ. Τα Βασικά της Λογικής Σχεδίασης. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Σχεδίαση Βασικών Κυκλωµάτων. Χρ. Καβουσιανός. Επίκουρος Καθηγητής

Chapter 3 Αριθμητική Υπολογιστών

Ολοκληρωμένα Κυκλώματα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΚΑΤΑΧΩΡΗΤΕΣ ΟΛΙΣΘΗΤΕΣ

Αριθμητικά Συστήματα

Transcript:

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων Διδάσκων: Χ. Σωτηρίου, Βοηθός: (θα ανακοινωθεί) http://inf-server.inf.uth.gr/courses/ce430/ 1 Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 2 1

Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 3 Αθροιστής χωρίς Κρατούμενο Half Adder a b co s 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 s = a b + ab = a (+) b co = ab 4 2

Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 5 Αθροιστής με Κρατούμενο Full Adder a b ci co s 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 s = a b ci + a bci + ab ci + abci = ci (a b + ab) + ci (a b + ab ) = ci (a (+) b) + ci (a (+) b) = a (+) b (+) c co = a bci + ab ci + abci + abci = ab (ci + ci ) + ci (a b + ab ) = ab + ci(a (+) b) 6 3

Έμμεση Υλοποίηση και Σήματα a b ci co s κρατούμενο 0 0 0 0 0 αναίρεση 0 0 1 0 1 αναίρεση 0 1 0 0 1 προώθηση 0 1 1 1 0 προώθηση 1 0 0 0 1 προώθηση 1 0 1 1 0 προώθηση 1 1 0 1 0 ανάθεση 1 1 1 1 1 ανάθεση Σε κάποιες υλοποιήσεις αθροιστών οι έξοδοι (s, co) προκύπτουν από έμμεσες εκφράσεις: G = A.B D = A.B P = A + B ή P = A (+) B Έτσι, οι εκφράσεις για co, s μετατρέπονται ως εξής: co = G + P ci και s = p (+) ci 7 Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 8 4

Σειριακό Κρατούμενο Η απλούστερη υλοποίηση ενός ν-bit αθροιστή Εν σειρά το κάθε ψηφίο ν παίρνει κρατούμενο από το (ν-1) Μειονεκτήματα Μεγάλης καθυστέρησης κρίσιμο μονοπάτι Από το co μέχρι το δεξιότερο κρατούμενο 9 Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 10 5

Πρόγνωση Κρατουμένου Ο βασικός στόχος είναι να μειωθεί η μεγάλη καθυστέρηση της αλυσίδας των κρατουμένων των ν-bit Βασική ιδέα Ακριβής πρόγνωση κρατουμένου πριν αυτό προκύψει από τις εξισώσεις Για ομάδες ν-bit (όπου συνήθως v ~ 4) Υπολογίζεται η πρόγνωση του κρατουμένου αυτή προωθείται στην επόμενη ομάδα Η καθυστέρηση της πρόγνωσης είναι σημαντικά μικρότερη από τον σειριακή προώθηση του κρατουμένου 11 Πρόγνωση Κρατουμένου - Γένεση, Προώθηση Στην πρόσθεση A + Β παράγεται κρατούμενο μόνο όταν ΑΒ: G = AB Ένα κρατούμενο προάγεται στο επόμενο ψηφίο όταν: P = A + B Το κρατούμενο μπορεί να εκφραστεί ως: co = G + P ci Για ν=4-bits: c1 = G0 + P0 c0 c2 = G1 + P1 c1 = G1 + P1(G0 + P0 c0) = G1 + G0P1 + c0p0p1 c3 = G2 + G1P2 + G0P1P2 + C0P0P1P2 C4 = G3 + G2P3 + G1P2P3 + C0P0P1P2P3 12 6

Πρόγνωση Κρατουμένου 4-bit Αθροιστής C4 = (G3 + G2P3 + G1P2P3 + G0P1P2P3) + C0(P0P1P2P3) PG = P0P1P2P3 GG = G3 + G2P3 + G1P2P3 + G0P1P2P3 C4 = GG + C0 PG 13 Πρόγνωση Κρατουμένου 16-bit Αθροιστής Ιεραρχικά η μονάδα LCU υπολογίζει τα: PG, GG c16 14 7

Πρόγνωση Κρατουμένου 64-bit Αθροιστής Ίδια ιδέα με 2 ο επίπεδο ιεραρχίας 15 Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 16 8

Ολίσθηση και Πρόσθεση 1011001 x 1101 : 1011001 1101 x 1 : 1011001 0 : 0000000 1 : 1011001 1 : 1011001 + 10010000101 Πολλαπλασιαστέος Πολλαπλασιαστής Προσθέτουμε με τον πολλαπλασιαστή από δεξιά προς αριστερά 17 Ολίσθηση και Πρόσθεση << 1 a[ν-1:0] Παράλληλη είσοδος Σειριακή είσοδος + m[2ν-1:0] Αποτέλεσμα b[x] 18 9

Δυαδικός Πολλαπλασιαστής Εκτελεί Μη-Προσημασμένο Πολλαπλασιασμό Carry out P A 1 n n A 0 + B n 19 Δυαδικός Πολλαπλασιαστής Χρησιμοποιεί: 1 n-bit Αθροιστή 3 Καταχωρητές: P, A, B Έλεγχο αν το A 0 είναι 0/1 Αρχικοποίηση P = 0, A = πρώτος αριθμός, B = δεύτερος αριθμός Αλγόριθμος: 1. Αν το A 0 είναι 1, P = P + B (B = b n-1 b n-2 b 0 ) 2. Ολίσθηση του Ζεύγους (P, A) κατά 1 δεξιά το τελευταίο bit του A δεν χρησιμοποιείται 20 10

Παράδειγμα Πολλαπλασιασμού 21 Αλγόριθμος Πολλαπλασιασμού MULTIPLY(x, y, m) // Είσοδοι - x : πολλαπλασιαστέος, y : πολλαπλασιαστής, Έξοδος m : γινόμενο { n = LENGTH(y); m = 0; t = x; // ολισθητής // for i in 1 to n // για κάθε ψηφίο του y // { if (y[i] == 1) m = m + t; // πρόσθεση μερικού παράγοντα // t = t << 1; // ολίσθηση 1 ψηφίο δεξιά για κάθε ψηφίο του y // } return r; } 22 11

Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 23 Πολλαπλασιασμός με Πίνακα (LUT) Γρήγορη μνήμη για λίγα ψηφία Χρησιμοποιείται για FPGAs Μικρή καθυστέρηση Εκθετικό μέγεθος 3x3 LUT 000 001 010 011 100 101 110 111 000 000000 000000 000000 000000 000000 000000 000000 000000 001 000000 000001 000010 000011 000100 000101 000110 000111 010 000000 000010 000100 000110 001000 001010 001100 001110 011 000000 000011 000110 001001 001100 001111 010010 010101 100 000000 000100 001000 001100 010000 010100 011000 011100 101 000000 000101 001010 001111 010100 011001 011110 100011 110 000000 000110 001100 010010 011000 011110 100100 101010 111 000000 000111 001110 010101 011100 100011 101010 110001 24 12

Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 25 Πολλαπλασιασμός Μερικών Παραγόντων 67 x 54 1 ο με 1 ο 2 ο με 1 ο 1 ο με 2 ο 2 ο με 2 ο 67 X 54 28 240 350 3000 + 3618 67 X 54 28 240 350 3000 + 3618 67 X 54 28 240 350 3000 + 3618 67 X 54 28 240 350 3000 + 3618 οι τέσσερις αυτοί συνδυασμοί μπορούν να γίνουν σε σύνολα από δυαδικά ψηφία 26 13

Πολλαπλασιαστής Δέντρου Wallace Partial Μερικά products Γινόμενα First Πρώτο stage Στάδιο 6 5 4 3 2 1 0 6 5 4 3 2 1 0 Bit position (a) (b) Second Δεύτερο stage Στάδιο Final Τελικό adderστάδιο 6 5 4 3 2 1 0 6 5 4 3 2 1 0 FA (c) HA (d) 27 Πολλαπλασιαστής Δέντρου Wallace Μερικά Γινόμενα Πρώτο Στάδιο Δεύτερο Στάδιο Τελικό Στάδιο 28 14

Πολλαπλασιασμός Μερικών Παραγόντων 6-bit πολλαπλασιαστής από 3-bit Πίνακες a[2:0] b[2:0] 3x3 LUT 6 + 9 + m[11:0] 12 a[2:0] b[5:3] 3x3 LUT 6 9 << 3 a[5:3] b[2:0] 3x3 LUT 6 + 9 << 3 9 a[5:3] b[5:3] 3x3 LUT 6 9 << 3 29 Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 30 15

Πολλαπλασιασμός Υπολογισμένων Μερικών Παραγόντων Ειδική περίπτωση του πίνακα όπου η συνδυαστική λογική είναι απλή Βασική ιδέα - πολλαπλασιασμός ν-bit με 2-bit: + 11 << 1 10 Είσοδος Α (ν-bits) ν b0 01 00 Είσοδος Β (2-bits) 31 Πολλαπλασιασμός Υπολογισμένων Μερικών Παραγόντων Υλοποίηση πολλαπλασιασμού μερικών παραγόντων σε FPGA: Ποια συνάρτηση υλοποιεί το LUT 4άρων εισόδων; 32 16

Πολλαπλασιασμός Υπολογισμένων Μερικών Παραγόντων Υλοποίηση πολλαπλασιασμού μερικών παραγόντων σε FPGA: Ποια συνάρτηση υλοποιεί το LUT 4άρων εισόδων; 33 Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο Ripple Carry Πρόγνωση Κρατουμένου Carry Lookahead Κυκλώματα Πολλαπλασιασμού Ολίσθηση και Πρόσθεση Shift and Add Πολλαπλασιασμός με Πίνακα Αποτελεσμάτων Μερικών Παραγόντων Partial Products Υπολογισμένων Μερικών Παραγόντων Computed Partial Products Διαίρεση 34 17

Διαίρεση 0111000010(450) 10001 (17) 35 Διαίρεση 0111000010(450) 10001 (17) 01110 011100 10001 010110-10001 001010 010101 10001 00100 01000 11010 (26) 5-bit διαιρέτης < διαιρετέο κατεβάζουμε ψηφίο ολίσθηση-αφαίρεση, 1 στο πηλίκο κατεβάζουμε ψηφίο ολίσθηση-αφαίρεση, 1 στο πηλίκο κατεβάζουμε ψηφίο, υπόλοιπο < διαιρέτη, 0 στο πηλίκο κατεβάζουμε ψηφίο Ολίσθηση-αφαίρεση, 1 στο πηλίκο κατεβάζουμε ψηφίο, υπόλοιπο < διαιρέτη, 0 στο πηλίκο Σε κάθε βήμα κάνουμε: Σύγκριση Ολίσθηση Αφαίρεση 36 18

Αλγόριθμος Διαίρεσης LONG_DIVISION(D, d, q, r) // Είσοδοι - D : Διαιρετέος, d : διαιρέτης, Έξοδοι q : πηλίκο, r : υπόλοιπο { n = MSB(D); m = (n LENGTH(d)); x = 0; Dt = D; do { while (Dt[n:m] < d) // υπόλοιπο < διαιρέτη // q[x++] = 0; m = m 1; // 0 στο πηλίκο, κατεβάζουμε ψηφίο // q[x++] = 1; // 1 στο πηλίκο // r[n-m:0] = Dt[n:m] d; // νέο υπόλοιπο // m = m 1; // κατεβάζουμε ψηφίο // Dt[n:0] = {r, D[m-1:0]};// συνένωση υπολοίπου με διαιρετέο // } while (r > d); return (q[0:x], r[n-m:0]); } 37 Δυαδικός Διαιρέτης Πανομοιότυπη Διάταξη με τον Πολλαπλασιαστή P n + 1 A n - 0 B 38 n 19

Δυαδικός Διαιρέτης Για να Υπολογίσουμε το Α/Β Αρχικοποίηση: Αποθηκεύουμε το Α στον Καταχωρητή Α, Το Β στον Καταχωρητή Β, Μηδενίζουμε τον P Αλγόριθμος: Για n bits, n επαναλήψεις: 1. Ολισθαίνουμε το Ζεύγος (P, A) 1 bit αριστερά 2. Εκτελούμε P = P B 3. Αν το αποτέλεσμα < 0, θέτουμε A 0 σε 0, αλλιώς σε 1 4. Αν το αποτέλεσμα < 0, επαναφέρουμε την παλιά τιμή του P Eκτελώντας P = P + B 39 20