Σχεδίαση Ψηφιακών...
TRANSCRIPT
![Page 1: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/1.jpg)
Σχεδίαση Ψηφιακών Συστημάτων
Ενότητα 4: Σχεδιασμός Σειριακού Αθροιστή
Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα
![Page 2: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/2.jpg)
Άδειες Χρήσης
• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.
![Page 3: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/3.jpg)
Χρηματοδότηση • Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια
του εκπαιδευτικού έργου του διδάσκοντα.
• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.
• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
![Page 4: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/4.jpg)
Σκοπός Ενότητας
Ανάλυση και σχεδίαση σειριακού αθροιστή με χρήση των βασικών στοιχείων που έχουν αναλυθεί στις 3 προηγούμενες
ενότητες.
![Page 5: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/5.jpg)
Περιεχόμενα ενότητας
• Σειριακός Αθροιστής • Μηχανή Άθροισης • Κύκλωμα Σειριακού Αθροιστή • Κύκλωμα Σειριακού Αθροιστή • Καταχωρητής Ολίσθησης (shift register) • Σύγχρονος Μετρητής (Counter) • Πακέτο Βασικών Στοιχείων (Components) • Χρήση Βασικών Στοιχείων
![Page 6: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/6.jpg)
Σειριακός Αθροιστής
Sum A B + =
Shift register
Shift register
Adder FSM Shift register
B
A
a
b
s
Clock
Διάγραμμα Βαθμίδων Σειριακού Αθροιστή
FSM:Finite State Machine
![Page 7: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/7.jpg)
Μηχανή Άθροισης
Κύκλωμα Μηχανής Άθροισης
Full adder
a b
s
D Q
Q
carry-out
Clock
Reset
Y y carry-in
![Page 8: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/8.jpg)
Κύκλωμα Σειριακού Αθροιστή -1
Adder FSM
Clock
E w L
E w L
b 7 b 0
a 7 a 0
E w L
E L
Q 3 Q 2 Q 1 Q 0
D 3 D 2 D 1 D 0
1 0 0 0
Counter
0 0
Reset
Sum 7 Sum 0
0 1
0 1
Run
SSer
Aser 7 Aser 0
Bser 7 Bser 0
low8
Cnt_in
Shift Register
Shift Register
Shift Register
![Page 9: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/9.jpg)
Κύκλωμα Σειριακού Αθροιστή -2
Clock
E w L
E w L
E w L
E L
Q 3 Q 2 Q 1 Q 0
D 3 D 2 D 1 D 0
1 0 0 0
Counter
00000000
Reset
0 1
0 1
Run
S
Cnt_in
Shift Register
Shift Register
Shift Register
Full adder
D Q
Q
00100110
01101101
1
00100110
01101101
00000000
1
1
0
0
00010011
00110110
10000000
1
0
1 0 0 1
0
0
00001001
00011011
11000000
0
1
1 0 1 0
0
0
00000100
00001101
01100000
0
1
1 0 1 1
1
0
00000010
00000110
00110000
1
0
1 1 0 0
1
0
00000001
00000011
10011000
0
1
1 1 0 1
0
0
00000000
00000001
01001100
0
1
1 1 1 0
1
0
00000000
00000000
00100110
1
0
1 1 1 1
1
0
00000000
00000000
10010011
0
0
0 0 0 0
0 0
1 0 0 0
![Page 10: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/10.jpg)
Καταχωρητής Ολίσθησης (shift register)
D Q
Q Clock
D Q
Q
D Q
Q
D Q
Q
In Out
t 0
t 1
t 2
t 3
t 4
t 5
t 6
t 7
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
Q 1 Q 2 Q 3 Q 4 Out = In Κύκλωμα
Q 1 Q 2 Q 3 Q 4
![Page 11: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/11.jpg)
Καταχωρητής Ολίσθησης Q 3 Q 2 Q 1 Q 0
Clock
Parallel input
Parallel output
Shift/Load
Serial input
D Q
Q
D Q
Q
D Q
Q
D Q
Q
![Page 12: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/12.jpg)
Πλήρης Αθροιστής
c i
x i y i
c i 1 +
s i
Κύκλωμα Πλήρους Αθροιστή
![Page 13: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/13.jpg)
Σύγχρονος Μετρητής (Counter)
Enable D Q
Q
Q 0
D Q
Q
Q 1
D Q
Q
Q 2
D Q
Q
Q 3
D 0
D 1
D 2
D 3
Load Clock
Output carry
0 1
0 1
0 1
0 1
![Page 14: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/14.jpg)
Καταχωρητής Ολίσθησης (shift register) ENTITY shiftrn IS
GENERIC ( N : INTEGER := 8 ) ; PORT (R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ; Clock, L, w,E : IN STD_LOGIC ; Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ; END shiftrn ; ARCHITECTURE Behavior OF shiftn IS BEGIN PROCESS BEGIN WAIT UNTIL Clock'EVENT AND Clock = '1' ; IF E=‘1’ THEN IF L = '1' THEN Q <= R ; ELSE Genbits: FOR i IN 0 TO N-2 LOOP Q(i) <= Q(i+1) ; END LOOP ; Q(N-1) <= w ; END IF ; END IF; END PROCESS ; END Behavior ;
![Page 15: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/15.jpg)
Στοιχείο Καταχωρητή Ολίσθησης (muxdff)
ENTITY muxdff IS PORT ( D0, D1, Sel, Clock : IN STD_LOGIC ; Q : OUT STD_LOGIC ) ; END muxdff ;
ARCHITECTURE Behavior OF muxdff IS BEGIN PROCESS BEGIN WAIT UNTIL Clock'EVENT AND Clock = '1' ; IF Sel = '0' THEN Q <= D0 ; ELSE Q <= D1 ; END IF ; END PROCESS ; END Behavior ;
![Page 16: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/16.jpg)
Καταχωρητής Ολίσθησης (structural) -1
ENTITY shift4 IS PORT ( R : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; L, w, Clock : IN STD_LOGIC ; Q : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END shift4 ; ARCHITECTURE Structure OF shift4 IS COMPONENT muxdff PORT (D0, D1, Sel, Clock : IN STD_LOGIC ; Q: OUT STD_LOGIC ) ; END COMPONENT ; BEGIN Stage3: muxdff PORT MAP ( w, R(3), L, Clock, Q(3) ) ; Stage2: muxdff PORT MAP ( Q(3), R(2), L, Clock, Q(2) ) ; Stage1: muxdff PORT MAP ( Q(2), R(1), L, Clock, Q(1) ) ; Stage0: muxdff PORT MAP ( Q(1), R(0), L, Clock, Q(0) ) ; END Structure ;
![Page 17: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/17.jpg)
Καταχωρητής Ολίσθησης (structural) -2
ENTITY shift4 IS PORT ( R : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; L, w, Clock : IN STD_LOGIC ; Q : BUFFER STD_LOGIC_VECTOR(4 DOWNTO 0) ) ; END shift4 ; ARCHITECTURE Structure OF shift4 IS COMPONENT muxdff PORT (D0, D1, Sel, Clock : IN STD_LOGIC ; Q: OUT STD_LOGIC ) ; END COMPONENT ; BEGIN Q(4)<=w; shiftall: for i in 0 to 3 generate stage: muxdff PORT MAP ( Q(i+1), R(i), L, Clock, Q(i) ) ; end generate; END Structure ;
![Page 18: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/18.jpg)
Σύγχρονος Μετρητής (Counter) ENTITY upcount IS GENERIC ( mod : INTEGER := 8 ) ; PORT ( Clock, L, E : IN STD_LOGIC ; D : IN INTEGER RANGE 0 TO mod-1 ; Q : BUFFER INTEGER RANGE 0 TO mod-1 ) ; END upcount ; ARCHITECTURE Behavior OF upcount IS BEGIN PROCESS BEGIN WAIT UNTIL (Clock'EVENT AND Clock = '1') ; IF E = '1' THEN IF L = '1' THEN q <= D ; ELSE q <= q+1 ; END IF ; END IF ; END PROCESS; END Behavior ;
![Page 19: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/19.jpg)
Πακέτο Βασικών Στοιχείων (Components) (1)
LIBRARY ieee ; USE ieee.std_logic_1164.all ; PACKAGE mycomponents IS -- n-bit left-to-right shift register with parallel load and enable COMPONENT shiftrne GENERIC ( N : INTEGER := 4 ) ; PORT (R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ; Clock, L,w, E : IN STD_LOGIC ; Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0)); END COMPONENT ; -- up-counter that counts from 0 to modulus-1 COMPONENT upcount GENERIC ( mod : INTEGER := 8 ) ; PORT (Clock, L, E: IN STD_LOGIC ; D : IN INTEGER RANGE 0 TO mod-1 ; Q : BUFFER INTEGER RANGE 0 TO mod-1 ) ; END COMPONENT ;
![Page 20: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/20.jpg)
Πακέτο Βασικών Στοιχείων (Components) (2)
-- 1-bit full adder COMPONENT fulladd PORT ( Cin, x, y : IN STD_LOGIC ; s, Cout : OUT STD_LOGIC ) ; END COMPONENT ; -- D flip-flop COMPONENT flipflop IS PORT ( D, Clock : IN STD_LOGIC ; Resetn : IN STD_LOGIC ; Q : OUT STD_LOGIC ) ; END COMPONENT; END mycomponents;
![Page 21: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/21.jpg)
Χρήση Βασικών Στοιχείων Component Instantiation
USE work.mycomponents.all ; ENTITY serialadder IS GENERIC ( length : INTEGER := 8 ) ; PORT (Clock, Reset : IN STD_LOGIC ; A, B : IN STD_LOGIC_VECTOR(length-1 DOWNTO 0) ; Sum : BUFFER STD_LOGIC_VECTOR(length-1 DOWNTO 0) ); END serialadder ;
ARCHITECTURE struct OF serialadder IS Signal low, high, run : std_logic; Signal Aser, Bser, low8 : std_logic_vector(7 down to 0); Signal cnt_in : integer range 0 to 15; BEGIN low <= ‘0’; high <= ‘1’; ShiftA: shiftrne GENERIC MAP ( N => 8 ) PORT MAP ( A, clock, reset, low, high, Aser) ; … END struct;
![Page 22: Σχεδίαση Ψηφιακών Συστημάτωνeclass.teipir.gr/openeclass/modules/document/file.php... · 2015. 10. 4. · • Καταχωρητής Ολίσθησης (shift](https://reader036.vdocuments.site/reader036/viewer/2022071404/60f89d0726cdec0e147d26f5/html5/thumbnails/22.jpg)
Τέλος Ενότητας