1 / 41

Język VERILOG w praktyce

Język VERILOG w praktyce. Język VERILOG Przykłady syntezy blokowej. Elementy systemu cyfrowego magistrala danych. Da ne. 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.

jamar
Download Presentation

Język VERILOG w praktyce

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Język VERILOG w praktyce

  2. Język VERILOG Przykłady syntezy blokowej

  3. Elementy systemu cyfrowegomagistrala 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.7.60.System cyfrowy złożony z k-rejestrów połączonych z magistralą danych

  4. Elementy systemu cyfrowegomagistrala danych cd. Rys.7.61.Połączenie rejestrów z magistralą z użyciem buforów trójstanowych

  5. Elementy systemu cyfrowegomagistrala 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; always @(posedge Clock) if (Rin) Q <= R; endmodule Rys.7.66.Specyfikacja n-bitowego rejestru (konstrukcja jak na rys. 7.61)

  6. Elementy systemu cyfrowegomagistrala 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.7.67.Specyfikacja n-bitowego modułu trójstanowego

  7. Elementy systemu cyfrowegomagistrala danych cd. , , , R 2 R 3 R 1 R 2 R 3 R 1 out in out in out in w Q Q Q D D D Zegar Q Q Q Reset Rys.7.62.Rejestr przesuwający - przykład układu sterującego wymianą danych w systemie z rys. 7.60

  8. Elementy systemu cyfrowegomagistrala 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; always @(negedge 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.7.68.Specyfikacja rejestru z rys. 7.62

  9. Elementy systemu cyfrowegomagistrala danych cd. Rys.7.69.Specyfikacja systemu cyfrowego z rys. 7.60

  10. Elementy systemu cyfrowegomagistrala danych cd. Magistrala R 1 R 2 Rk in in in R 1 R 2 Rk Zegar Dane S 0 Multipleksery S j – 1 Rys.7.65.Magistrala danych z multiplekserami

  11. Elementy systemu cyfrowegomagistrala danych cd. Rys.7.70.Specyfikacja magistrali danych z multiplekserami

  12. Elementy systemu cyfrowegomagistrala danych cd. Rys.7.71.Uproszczona wersja specyfikacji z rys. 7.70

  13. Przykład systemu cyfrowego:prosty procesor Rys.7.73.Schemat blokowy prostego procesora

  14. Przykład systemu cyfrowego:prosty procesor Operacja Realizowana funkcja Rx Data Load Rx, Data Rx Move Rx, Ry Ry Rx Add Rx, Ry Rx Ry + _ Sub Rx, Ry Rx Rx Ry Tablica 7.2.Operacje wykonywane przez procesor

  15. Przykład systemu cyfrowego:prosty procesor cd. T T T T 0 1 2 3 y y y y 0 1 2 3 dekoder2-na-4 w w En 1 0 1 Q Q 1 0 Zegar Licznik (up) Clear Reset Rys. 7.74.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 0 1 2 3 0 1 2 3 0 1 2 3 y y y y y y y y y y y y 0 1 2 3 0 1 2 3 0 1 2 3 Dekoder 2-na-4 Dekoder 2-na-4 Dekoder 2-na-4 w w w w w w En En En 1 0 1 0 1 0 1 1 1 Zegar Rejestr funkcji FR in f f Rx Rx Ry Ry 1 0 1 0 1 0 Funkcja Rys. 7.75.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= I1T1Y0+ (I2+ I3)(T1X0+ T2Y0) Tablica. 7.3.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; always @(posedge Clock) if (Clear) Q <= 0; else Q <= Q + 1; endmodule Rys. 7.76.Pomocniczy licznik (up-count) z synchronicznym resetem

  20. Przykład systemu cyfrowego:prosty procesor cd. Rys. 7.77.Specyfikacja procesora (część a)

  21. Przykład systemu cyfrowego:prosty procesor cd. Rys. 7.77.Specyfikacja procesora (część b.)

  22. Przykład systemu cyfrowego:prosty procesor cd. Rys. 7.78.Alternatywna specyfikacja procesora (część a)

  23. Przykład systemu cyfrowego:prosty procesor cd. Rys. 7.78.Alternatywna specyfikacja procesora (część b)

  24. Przykład systemu cyfrowego:prosty procesor cd. Rys. 7.78.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 0 a b g a b g w Konwertor Konwertor licznik 10-bitowy Zegar w w w w w w w w 0 1 2 3 0 1 2 3 0 Q D (a) Dzielnik zegara 1 1 c Q 9 BCD BCD 1 0 E Dwucyfrowy licznik BCD Zerowanie Clear (b) Przełącznik, dioda LED, wyświetlacz 7-segmentowy Rys. 7.80Układ do pomiaru czasu reakcji

  26. Przykład systemu cyfrowego:miernik czasu reakcji cd. Rys. 7.81Specyfikacja dwucyfrowego licznika BCD

  27. Reset w = 1 ¤ ¤ A z = 0 B z = 0 w = 0 w = 0 w = 1 w = 0 ¤ C z = 1 w = 1 VERILOG – specyfikacja automató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 always @(w or y) case (y) A: if(w) Y = B; elseY = A; B: if (w) Y = C; elseY = A; C: if (w) Y = C; elseY = A; default: Y = 2'bxx; endcase // Określenie bloku sekwencyjnego always @(negedge Resetn or posedge Clock) if (Resetn == 0) y <= A; elsey <= Y; // Określenie wyjścia assign z = (y == C); endmodule Rys. 8.29 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 always @(w or y) begin case (y) A: if (w) Y = B; else Y = A; B: if (w) Y = C; else Y = A; C: if (w) Y = C; else Y = A; default: Y = 2'bxx; endcase z = (y == C); //Określenie wyjścia end // Określenie bloku sekwencyjnego always @(negedge Resetn or posedge Clock) if (Resetn == 0) y <= A; else y <= Y; endmodule Rys. 8.33 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 always @(negedge 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; else y <= A; C: if (w) y <= C; else y <= A; default: y <= 2'bxx; endcase // Określenie wyjścia assign z = (y == C); endmodule Rys. 8.34 Uproszczona wersja specyfikacji automatu z rys. 8.3

  31. Reset ¤ w = 1 z = 0 ¤ ¤ w = 0 z = 0 w = 1 z = 1 A B ¤ w = 0 z = 0 VERILOG – specyfikacja automatów cd. Rys. 8.34 Specyfikacja automatu Mealy’ego z rys. 8.23

  32. Przykład :sumator sekwencyjny A a Rejestr przes. QA s Automat Sterujący sumator Rejestr przesuw. Rejestr przes. QB b Sum A B = + B Zegar Rys. 8.39 Schemat sumatora sekwencyjnego

  33. Przykład :sumator sekwencyjny cd. Rys. 8.40 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 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 (H) 1 Y = ab + ay + by S = a  b  y Rys. 8.40 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; always @(posedge 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. 8.48 Pomocniczy rejestr przesuwający w prawo z wejściem zezwolenia En

  36. Przykład :sumator sekwencyjny cd. 1 0 0 0 a a D D D D 7 0 3 2 1 0 L Licznik E L w 0 Rejestr Q Q Q Q 3 2 1 0 1 E Automat sumatora b b 7 0 Run L 0 0 Rejestr w 0 1 E L Rejestr w E Zegar Reset Sum Sum 7 0 Rys. 8.50 Szczegółowy schemat funkcjonalny sumatora sekwencyjnego

  37. Przykład :sumator sekwencyjny cd. Rys. 8.49 Specyfikacja sumatora sekwencyjnego

  38. Przykład :licznik jedynek w słowie B = 0 ; while A  0 do a = 1 if then 0 B = B + 1 ; end if; A Right-shift ; end while; Rys. 10.9 Algorytm licznika jedynek i schemat funkcjonalny (część operacyjna)

  39. Przykład :licznik jedynek w słowie cd. Rys. 10.9 Sieć działań układu sterującego licznika

  40. Przykład :licznik jedynek w słowie cd. Rys. 10.13 Specyfikacja układu licznika jedynek cz. a.

  41. Przykład :licznik jedynek w słowie cd. Rys. 10.13 Specyfikacja układu licznika jedynek cz. b.

More Related