Język VERILOG w praktyce.

Slides:



Advertisements
Podobne prezentacje
VHDL Today, Verilog HDL is an accepted IEEE standard. In 1995, the original standard IEEE was approved. IEEE is the latest Verilog.
Advertisements

REALIZACJA REGULATORA PID W UKŁADZIE FPGA
Praca dyplomowa inżynierska
Inżynieria Systemów Programowalnych Część I
JĘZYK VHDL Geneza: komputerowa symulacja układu cyfrowego, Departament Obrony USA opis skomplikowanego systemu w postaci schematu jest nieczytelny, szybkie.
Programowanie obiektowe PO PO - LAB 6 Wojciech Pieprzyca.
6. Układy kształtujące funkcje odcinkami prostoliniowymi
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
© K.Subieta. Konstrukcja systemów obiektowych i rozproszonych 3, Folia 1 październik 2004 Konstrukcja systemów obiektowych i rozproszonych Wykładowca:
Weronika Podjaska Patryk Gromski
CPU.
1 RISC – nasze założenia Podstawowe cechy: Wszystkie operacje są realizowane na rejestrach, Tylko operacje typu load i store wymagają dostępu do pamięci,
UTK Zestaw I.
Magistrale.
Mikrokontrolery - - podstawowe architektury
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Wprowadzenie do informatyki Wykład 5
by Ernest Jamro Katedra Elektroniki, AGH Kraków
by Ernest Jamro Katedra Elektroniki, AGH Kraków
Wykład 3: Adresowanie i jednostki obliczeniowe w ADSP 21161N
Magistrala & mostki PN/PD
Topologie sieciowe.
Komputer, procesor, rozkaz.
Opracowanie i weryfikacja algorytmów szeregowania zadań dla potrzeb redukcji poboru mocy układów cyfrowych. Temat ten jest częścia jednego z 12 etapów.
I T P W ZPT PRUS 2007 Krzysztof Jasiński 1 PRUS - Projektowanie Programowalnych Układów Scalonych Krzysztof Jasiński
Płyty główne Budowa.
Układ interfejsu IEEE488 – uPD7210
Urządzenia systemów pomiarowych
9. Generatory przebiegów liniowych
Temat: Symulacje komputerowe lotu helikoptera w języku Java
Temat: Symulacje komputerowe lotu helikoptera w języku Java
Temat: Symulacje komputerowe lotu helikoptera w języku Java
Zastosowanie do sterowania obiektami
5. Zastosowania układów mnożących
Komputer a system komputerowy
Programowalny układ we-wy szeregowego 8251
Architektura komputerów
Synteza logiczna w projektowaniu układów cyfrowych
Wykonał Piotr Jakubowski 1ET
Płyta główna. Magistrale I/O
Wykład 10 Regulacja dyskretna (cyfrowa i impulsowa)
Zasada działania komputera
Karty Graficzne.
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Dynamiczna rekonfiguracja układów FPGA
Rezystancja zastępcza, połączenie trójkąt-gwiazda
Architektura systemów komputerowych (jesień 2013)
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Podsystem graficzny i audio
Synteza logiczna w projektowaniu…
Architektura PC.
Układ trójkąt - gwiazda
12. Input Capture – Wejście przechwytywania
OPB - On-chip Peripherial Bus AXI – Advance eXtensible Interface
PODSTAWOWE BRAMKI LOGICZNE
METODA ELIMINACJI GAUSSA
Procesor – charakterystyka elementów systemu. Parametry procesora.
567.Jakie prądy płyną przez poszczególne opory na schemacie poniżej, jeśli R 1 =3 , R 2 =7 , R 3 =20 , U=20V, a galwanometr wskazuje i G =0? B R1R1.
Procesor, pamięć, przerwania, WE/WY, …
603.Baterię o SEM E=12V i oporze wewnętrznym r=1  zwarto dwoma oporami R 1 =10  i R 2 =20  połączonymi równolegle. Jakie prądy płyną przez te opory?
Układy i systemy mikroprocesorowe
I T P W ZPT Konwerter BIN2BCD 1 LK „8” DEC LK = 0 LOAD1 R3R2R1  K S3 S2S1 A B „5” K  5 MUX 1 0 A R4 LOAD2 Y = LD B LB „3” US Układ wykonawczy Układ sterujący.
Synteza logiczna w projektowaniu układów cyfrowych
Interfejsy synchroniczne
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Wykład 3: Adresowanie i jednostki obliczeniowe w ADSP 21161N
Zapis prezentacji:

Język VERILOG w praktyce

Język VERILOG Przykłady syntezy blokowej

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

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

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

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

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. 7.62. Rejestr przesuwający - przykład układu sterującego wymianą danych w systemie z rys. 7.60

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;   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

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

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. 7.65. Magistrala danych z multiplekserami

Elementy systemu cyfrowego magistrala danych cd. Rys. 7.70. Specyfikacja magistrali danych z multiplekserami

Elementy systemu cyfrowego magistrala danych cd. Rys. 7.71. Uproszczona wersja specyfikacji z rys. 7.70

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

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

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. 7.74. Fragment układu sterowania – fazy taktowania

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. 7.75. Układu sterowania – pomocnicze sygnały wyboru funkcji

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

Przykład systemu cyfrowego: prosty procesor cd. R0in = (I0 + I1)T1X0 + (I2 + I3)T3X0 R0out = I1 T1Y0 + (I2 + I3)(T1X0 + T2Y0) Tablica. 7.3. Sygnały sterujące wymagane w każdej operacji/fazie działania

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

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

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

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

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

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

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. 7.80 Układ do pomiaru czasu reakcji

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

VERILOG – specyfikacja automatów z 1 = ¤ Reset B A w Rys. 8.3 Graf stanów prostego automatu (typ Moore’a)

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; else Y = A; B: if (w) Y = C; C: if (w) Y = C; default: Y = 2'bxx; endcase // Określenie bloku sekwencyjnego always @(negedge Resetn or posedge Clock) if (Resetn == 0) y <= A; else y <= Y; // Określenie wyjścia assign z = (y == C);   endmodule Rys. 8.29 Specyfikacja automatu z rys. 8.3

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; C: if (w) Y = C; 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

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; C: if (w) y <= C; 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

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

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

Przykład : sumator sekwencyjny cd. Rys. 8.40 Graf stanów automatu sterującego sumatora

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. 8.40 Zakodowana tablica p-w automatu sterującego

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

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. 8.50 Szczegółowy schemat funkcjonalny sumatora sekwencyjnego

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

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. 10.9 Algorytm licznika jedynek i schemat funkcjonalny (część operacyjna)

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

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

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