Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Język VERILOG w praktyce
2
Język VERILOG Przykłady syntezy blokowej
3
Elementy systemu cyfrowego magistrala danych
Dane Extern magistrala zegar R 1 R 2 Rk R 1 R 1 R 2 R 2 Rk Rk in out in out in out Układ sterujący funkcja Rys System cyfrowy złożony z k-rejestrów połączonych z magistralą danych
4
Elementy systemu cyfrowego magistrala danych cd.
Rys Połączenie rejestrów z magistralą z użyciem buforów trójstanowych
5
Elementy systemu cyfrowego magistrala danych cd.
module regn (R, Rin, Clock, Q); parameter n = 8; input [n-1:0] R; input Rin, Clock; // Rin - zezwolenie output [n-1:0] Q; reg [n-1:0] Q; Clock) if (Rin) Q <= R; endmodule Rys Specyfikacja n-bitowego rejestru (konstrukcja jak na rys. 7.61)
6
Elementy systemu cyfrowego magistrala danych cd.
module trin (Y, E, F); parameter n = 8; input [n-1:0] Y; input E; // zezwolenie output [n-1:0] F; wire [n-1:0] F; assign F = E ? Y : 'bz; // bz – stan „trzeci” endmodule Rys Specyfikacja n-bitowego modułu trójstanowego
7
Elementy systemu cyfrowego magistrala danych cd.
2 , R 3 R 1 , R 2 R 3 , R 1 out in out in out in w D Q D Q D Q Zegar Q Q Q Reset Rys Rejestr przesuwający - przykład układu sterującego wymianą danych w systemie z rys. 7.60
8
Elementy systemu cyfrowego magistrala danych cd.
module shiftr (Resetn, w, Clock, Q); parameter m = 4; input Resetn, w, Clock; output [1:m] Q; reg [1:m] Q; integer k; Resetn or posedge Clock) if (!Resetn) Q <= 0; else begin for (k = m; k > 1; k = k-1) Q[k] <= Q[k-1]; Q[1] <= w; end endmodule Rys Specyfikacja rejestru z rys. 7.62
9
Elementy systemu cyfrowego magistrala danych cd.
Rys Specyfikacja systemu cyfrowego z rys. 7.60
10
Elementy systemu cyfrowego magistrala danych cd.
1 R 2 Rk in R 1 in R 2 in Rk Zegar Dane S Multipleksery S j – 1 Rys Magistrala danych z multiplekserami
11
Elementy systemu cyfrowego magistrala danych cd.
Rys Specyfikacja magistrali danych z multiplekserami
12
Elementy systemu cyfrowego magistrala danych cd.
Rys Uproszczona wersja specyfikacji z rys. 7.70
13
Przykład systemu cyfrowego: prosty procesor
Rys Schemat blokowy prostego procesora
14
Przykład systemu cyfrowego: prosty procesor
Operacja Realizowana funkcja Load Rx, Data Rx Data Move Rx, Ry Rx Ry Add Rx, Ry Rx Rx + Ry _ Sub Rx, Ry Rx Rx Ry Tablica 7.2. Operacje wykonywane przez procesor
15
Przykład systemu cyfrowego: prosty procesor cd.
1 2 3 y y y y 1 2 3 dekoder2-na-4 w w En 1 1 Q Q Zegar 1 Licznik (up) Clear Reset Rys Fragment układu sterowania – fazy taktowania
16
Przykład systemu cyfrowego: prosty procesor cd.
I I I I X X X X Y Y Y Y 1 2 3 1 2 3 1 2 3 y y y y y y y y y y y y 1 2 3 1 2 3 1 2 3 Dekoder 2-na-4 Dekoder 2-na-4 Dekoder 2-na-4 w w En w w En w w En 1 1 1 1 1 1 Zegar Rejestr funkcji FR in f f Rx Rx Ry Ry 1 1 1 Funkcja Rys Układu sterowania – pomocnicze sygnały wyboru funkcji
17
Przykład systemu cyfrowego: prosty procesor cd.
Clear = wT0 + Done; FRin = wT0 Extern = I0T1 Done = (I0 + I1)T1 + (I2 + I3)T3 Ain = (I2 + I3) T1 Gin = (I2 + I3)T2 Gout = (I2 + I3) T3 AddSub = I3 Rys. 7.75a. Specyfikacja sygnałów sterujących procesora
18
Przykład systemu cyfrowego: prosty procesor cd.
R0in = (I0 + I1)T1X0 + (I2 + I3)T3X0 R0out = I1 T1Y0 + (I2 + I3)(T1X0 + T2Y0) Tablica Sygnały sterujące wymagane w każdej operacji/fazie działania
19
Przykład systemu cyfrowego: prosty procesor cd.
module upcount (Clear, Clock, Q); input Clear, Clock; output [1:0] Q; reg [1:0] Q; Clock) if (Clear) Q <= 0; else Q <= Q + 1; endmodule Rys Pomocniczy licznik (up-count) z synchronicznym resetem
20
Przykład systemu cyfrowego: prosty procesor cd.
Rys Specyfikacja procesora (część a)
21
Przykład systemu cyfrowego: prosty procesor cd.
Rys Specyfikacja procesora (część b.)
22
Przykład systemu cyfrowego: prosty procesor cd.
Rys Alternatywna specyfikacja procesora (część a)
23
Przykład systemu cyfrowego: prosty procesor cd.
Rys Alternatywna specyfikacja procesora (część b)
24
Przykład systemu cyfrowego: prosty procesor cd.
Rys Alternatywna specyfikacja procesora (część c)
25
Przykład systemu cyfrowego: miernik czasu reakcji
Wyświetlacze 7-segmentowe V V DD DD przełącznik R R L LED c c c 9 1 a b g a b g w Konwertor Konwertor licznik 10-bitowy Zegar w w w w w w w w 1 2 3 1 2 3 D Q 1 1 (a) Dzielnik zegara c 9 Q BCD BCD 1 E Dwucyfrowy licznik BCD Zerowanie Clear (b) Przełącznik, dioda LED, wyświetlacz 7-segmentowy Rys Układ do pomiaru czasu reakcji
26
Przykład systemu cyfrowego: miernik czasu reakcji cd.
Rys Specyfikacja dwucyfrowego licznika BCD
27
VERILOG – specyfikacja automatów
z 1 = Reset B A w Rys. 8.3 Graf stanów prostego automatu (typ Moore’a)
28
VERILOG – specyfikacja automatów cd.
module simple (Clock, Resetn, w, z); input Clock, Resetn, w; output z; reg [2:1] y, Y; parameter [2:1] A = 2'b00, B = 2'b01, C = 2'b10; // kodowanie stanów automatu // Określenie stanu następnego – część kombinacyjna or y) case (y) A: if (w) Y = B; else Y = A; B: if (w) Y = C; C: if (w) Y = C; default: Y = 2'bxx; endcase // Określenie bloku sekwencyjnego Resetn or posedge Clock) if (Resetn == 0) y <= A; else y <= Y; // Określenie wyjścia assign z = (y == C); endmodule Rys Specyfikacja automatu z rys. 8.3
29
VERILOG – specyfikacja automatów cd.
module simple (Clock, Resetn, w, z); input Clock, Resetn, w; output z; reg z; reg [2:1] y, Y; parameter [2:1] A = 2'b00, B = 2'b01, C = 2'b10; // Kodowanie stanów automatu // Określenie stanu następnego – część kombinacyjna or y) begin case (y) A: if (w) Y = B; else Y = A; B: if (w) Y = C; C: if (w) Y = C; default: Y = 2'bxx; endcase z = (y == C); //Określenie wyjścia end // Określenie bloku sekwencyjnego Resetn or posedge Clock) if (Resetn == 0) y <= A; else y <= Y; endmodule Rys Druga wersja specyfikacji automatu z rys. 8.3
30
VERILOG – specyfikacja automatów cd.
module simple (Clock, Resetn, w, z); input Clock, Resetn, w; output z; reg [2:1] y; parameter [2:1] A = 2'b00, B = 2'b01, C = 2'b10; // Kodowanie stanów automatu // Określenie bloku sekwencyjnego Resetn or posedge Clock) if (Resetn == 0) y <= A; else case (y) A: if (w) y <= B; else y <= A; B: if (w) y <= C; C: if (w) y <= C; default: y <= 2'bxx; endcase // Określenie wyjścia assign z = (y == C); endmodule Rys Uproszczona wersja specyfikacji automatu z rys. 8.3
31
VERILOG – specyfikacja automatów cd.
= z 1 B Reset Rys Specyfikacja automatu Mealy’ego z rys. 8.23
32
Przykład : sumator sekwencyjny
Rejestr przes. QA Automat Sterujący sumator s Rejestr przesuw. Rejestr przes. QB b Sum = A + B B Zegar Rys Schemat sumatora sekwencyjnego
33
Przykład : sumator sekwencyjny cd.
Rys Graf stanów automatu sterującego sumatora
34
Przykład : sumator sekwencyjny cd.
Stan następny Wyjście Stan bieżący ab =00 01 10 11 00 01 10 11 y Y s (G) 0 1 1 1 (H) 1 1 1 1 1 1 Y = ab + ay + by S = a b y Rys Zakodowana tablica p-w automatu sterującego
35
Przykład : sumator sekwencyjny cd.
module shiftrne (R, L, E, w, Clock, Q); parameter n = 8; input [n-1:0] R; // Wejście równoległe input L, E, w, Clock; // L – ładowanie z we R, w – wejście szeregowe output [n-1:0] Q; reg [n-1:0] Q; integer k; Clock) if (L) // Ładowanie Q <= R; else if (E) begin for (k = n-1; k > 0; k = k-1) Q[k-1] <= Q[k]; // Przesuwanie w prawo Q[n-1] <= w; // Wsuwanie do wejścia rejestru (Q[n-1]) end endmodule Rys Pomocniczy rejestr przesuwający w prawo z wejściem zezwolenia En
36
Przykład : sumator sekwencyjny cd.
1 a a D D D D 7 3 2 1 L E Licznik L w Rejestr Q Q Q Q 3 2 1 1 E Automat sumatora b b 7 Run L w Rejestr 1 E L w Rejestr E Zegar Reset Sum Sum 7 Rys Szczegółowy schemat funkcjonalny sumatora sekwencyjnego
37
Przykład : sumator sekwencyjny cd.
Rys Specyfikacja sumatora sekwencyjnego
38
Przykład : licznik jedynek w słowie
B = ; while A do if a = 1 then B = B + 1 ; end if; Right-shift A ; end while; Rys Algorytm licznika jedynek i schemat funkcjonalny (część operacyjna)
39
Przykład : licznik jedynek w słowie cd.
Rys Sieć działań układu sterującego licznika
40
Przykład : licznik jedynek w słowie cd.
Rys Specyfikacja układu licznika jedynek cz. a.
41
Przykład : licznik jedynek w słowie cd.
Rys Specyfikacja układu licznika jedynek cz. b.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.