Upload
jamar
View
48
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
2004 Krzysztof Jasiński PRUS PRUS
Język VERILOG w praktyce
2004 Krzysztof Jasiński PRUS PRUS
Język VERILOG
Przykładysyntezy blokowej
32004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych
Elementy systemu cyfrowegomagistrala danych
Rys. 7.60. System cyfrowy złożony z k-rejestrów połączonych z magistralą danych
R 1 in Rkin
magistrala
zegar
R 1 out R 2 in R 2 out Rkout
Układ sterujący funkcja
R 1 R 2 Rk
DaneExtern
42004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.61. Połączenie rejestrów z magistralą z użyciem buforów trójstanowych
52004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.66. Specyfikacja n-bitowego rejestru (konstrukcja jak na rys. 7.61)
module regn (R, Rin, Clock, Q);parameter n = 8;input [n-1:0] R;input Rin, Clock; // Rin - zezwolenieoutput [n-1:0] Q;reg [n-1:0] Q;
always @(posedge Clock) if (Rin)
Q <= R;
endmodule
62004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.67. Specyfikacja n-bitowego modułu trójstanowego
module trin (Y, E, F);parameter n = 8;input [n-1:0] Y; input E; // zezwolenieoutput [n-1:0] F;wire [n-1:0] F;
assign F = E ? Y : 'bz; // bz – stan „trzeci”
endmodule
72004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.62. Rejestr przesuwający - przykład układu sterującego wymianą danych w systemie z rys. 7.60
D Q
Q Zegar
D Q
Q
D Q
Q
w
R 2 out R 3 in
Reset
R 1 out R 2 in R 3 out R 1 in
82004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.68. Specyfikacja rejestru z rys. 7.62
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
92004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.69. Specyfikacja systemu cyfrowego z rys. 7.60
102004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.65. Magistrala danych z multiplekserami
Dane
R 1 in
Multipleksery
R 2 in Rkin
Magistrala
Zegar
S j 1 –
S 0
R 1 R 2 Rk
112004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.70. Specyfikacja magistrali danych z multiplekserami
122004 Krzysztof Jasiński
ITPW PRUS – W6
Elementy systemu cyfrowegomagistrala danych cd.
Elementy systemu cyfrowegomagistrala danych cd.
Rys. 7.71. Uproszczona wersja specyfikacji z rys. 7.70
132004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor
Przykład systemu cyfrowego:prosty procesor
Rys. 7.73. Schemat blokowy prostego procesora
142004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor
Przykład systemu cyfrowego:prosty procesor
Tablica 7.2. Operacje wykonywane przez procesor
Operacja Realizowana funkcja
Load Rx, Data
Move Rx, Ry
Add Rx, Ry
Sub Rx, Ry
Rx Data
Rx Ry
Rx Rx Ry
Rx Rx Ry_
+
152004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.74. Fragment układu sterowania – fazy taktowania
Reset
Licznik (up)Clear
w 0 En
y 0
w 1
y 1 y 2 y 3
1
T 1 T 2 T 3
dekoder2-na-4
Q 1 Q 0 Zegar
T 0
162004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.75. Układu sterowania – pomocnicze sygnały wyboru funkcji
Zegar
X 0
w 0 En
y 0
w 1
y 1 y 2 y 3
1
X 1 X 2 X 3
Dekoder 2-na-4
Rejestr funkcji
Y 0
w 0 En
y 0
w 1
y 1 y 2 y 3
1
Y 1 Y 2 Y 3 I 0
En
y 0 y 1 y 2 y 3
1
I 1 I 2 I 3
Dekoder 2-na-4
FRin
f 1 f 0 Rx1 Rx0 Ry1 Ry0
w 0 w 1
Funkcja
Dekoder 2-na-4
172004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.75a. Specyfikacja sygnałów sterujących procesora
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
¯
182004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Tablica. 7.3. Sygnały sterujące wymagane w każdej operacji/fazie działania
R0in = (I0 + I1)T1X0 + (I2 + I3)T3X0
R0out = I1 T1Y0 + (I2 + I3)(T1X0 +
T2Y0)
192004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.76. Pomocniczy licznik (up-count) z synchronicznym resetem
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
202004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.77. Specyfikacja procesora (część a)
212004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.77. Specyfikacja procesora (część b.)
222004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.78. Alternatywna specyfikacja procesora (część a)
232004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.78. Alternatywna specyfikacja procesora (część b)
242004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:prosty procesor cd.
Przykład systemu cyfrowego:prosty procesor cd.
Rys. 7.78. Alternatywna specyfikacja procesora (część c)
252004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:miernik czasu reakcji
Przykład systemu cyfrowego:miernik czasu reakcji
Rys. 7.80 Układ do pomiaru czasu reakcji
D Q
Q
Dwucyfrowy licznik BCD
w 0
a
w 1
b
w 2 w 3
g
w 0
a
w 1
b
w 2 w 3
g
BCD 0 BCD 1 E
Konwertor
c 9
V DD
R
w
V DD
R L
(b) Przełącznik, dioda LED, wyświetlacz 7-segmentowy
Zerowanie Clear
1 0
1 (a) Dzielnik zegara
licznik 10-bitowyZegar
c 0 c 1 c 9
przełącznik
LED
Konwertor
Wyświetlacze 7-segmentowe
262004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład systemu cyfrowego:miernik czasu reakcji cd.
Przykład systemu cyfrowego:miernik czasu reakcji cd.
Rys. 7.81 Specyfikacja dwucyfrowego licznika BCD
272004 Krzysztof Jasiński
ITPW PRUS – W6
VERILOG – specyfikacja automatówVERILOG – specyfikacja automatów
Rys. 8.3 Graf stanów prostego automatu (typ Moore’a)
C z 1 =
Reset
B z 0 = A z 0 = w 0 =
w 1 =
w 1 =
w 0 =
w 0 = w 1 =
282004 Krzysztof Jasiński
ITPW PRUS – W6
VERILOG – specyfikacja automatów cd.VERILOG – specyfikacja automatów cd.
Rys. 8.29 Specyfikacja automatu z rys. 8.3
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ęść kombinacyjnaalways @(w or y)
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 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
292004 Krzysztof Jasiński
ITPW PRUS – W6
VERILOG – specyfikacja automatów cd.VERILOG – specyfikacja automatów cd.
Rys. 8.33 Druga wersja specyfikacji automatu z rys. 8.3
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;
endcasez = (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
302004 Krzysztof Jasiński
ITPW PRUS – W6
VERILOG – specyfikacja automatów cd.VERILOG – specyfikacja automatów cd.
Rys. 8.34 Uproszczona wersja specyfikacji automatu z rys. 8.3
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 sekwencyjnegoalways @(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
312004 Krzysztof Jasiński
ITPW PRUS – W6
VERILOG – specyfikacja automatów cd.VERILOG – specyfikacja automatów cd.
Rys. 8.34 Specyfikacja automatu Mealy’ego z rys. 8.23
A
w 0 = z 0 =
w 1 = z 1 = B w 0 = z 0 =
Reset
w 1 = z 0 =
322004 Krzysztof Jasiński
ITPW PRUS – W6
Rys. 8.39 Schemat sumatora sekwencyjnego
Przykład :sumator sekwencyjny
Przykład :sumator sekwencyjny
Sum A B + =
Rejestr przes. QAAutomatSterującysumator
B
A
a
b
s
Zegar
Rejestr przes. QB
Rejestr przesuw.
332004 Krzysztof Jasiński
ITPW PRUS – W6
Rys. 8.40 Graf stanów automatu sterującego sumatora
Przykład :sumator sekwencyjny cd.
Przykład :sumator sekwencyjny cd.
G
00 1
11 1 10 0 01 0
H 10 1 01 1 00 0
carry-in 0 =
carry-in 1 = G:
H:
Reset
11 0 ab s
342004 Krzysztof Jasiński
ITPW PRUS – W6
Rys. 8.40 Zakodowana tablica p-w automatu sterującego
Przykład :sumator sekwencyjny cd.
Przykład :sumator sekwencyjny cd.
Stanbieżący
Stan następny Wyjście
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
Y = ab + ay + by
S = a b y
(H) 1
352004 Krzysztof Jasiński
ITPW PRUS – W6
Rys. 8.48 Pomocniczy rejestr przesuwający w prawo z wejściem zezwolenia En
Przykład :sumator sekwencyjny cd.
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łeinput L, E, w, Clock; // L – ładowanie z we R, w – wejście szeregoweoutput [n-1:0] Q;reg [n-1:0] Q;integer k;
always @(posedge Clock) if (L) // Ładowanie
Q <= R; else if (E)
beginfor (k = n-1; k > 0; k = k-1)
Q[k-1] <= Q[k]; // Przesuwanie w prawoQ[n-1] <= w; // Wsuwanie do wejścia rejestru (Q[n-1])
end
endmodule
362004 Krzysztof Jasiński
ITPW PRUS – W6
Rys. 8.50 Szczegółowy schemat funkcjonalny sumatora sekwencyjnego
Przykład :sumator sekwencyjny cd.
Przykład :sumator sekwencyjny cd.
Automatsumatora
Zegar
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
Licznik
0 0
Reset
Sum 7 Sum 0
0 1
0 1
Run
Rejestr
Rejestr
Rejestr
372004 Krzysztof Jasiński
ITPW PRUS – W6
Rys. 8.49 Specyfikacja sumatora sekwencyjnego
Przykład :sumator sekwencyjny cd.
Przykład :sumator sekwencyjny cd.
382004 Krzysztof Jasiński
ITPW PRUS – W6
Rys. 10.9 Algorytm licznika jedynek i schemat funkcjonalny (część operacyjna)
Przykład :licznik jedynek w słowie
Przykład :licznik jedynek w słowie
B = 0 ; while A 0 do
if a 0 = 1 thenB = B + 1 ;
end if;Right-shift A ;
end while;
L
E Counter
w
L
E Shift
LB
EBLA
EA
0
Clock
0
B z a 0
Data
n
A
n
(log2 n) + 1
(log2 n) + 1
392004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład :licznik jedynek w słowie cd.
Przykład :licznik jedynek w słowie cd.
Rys. 10.9 Sieć działań układu sterującego licznika
EA
EB z
LB
s
a 0
Reset
S3
0
1
0
1
0
1 s
S2
S1
0
1
Done
402004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład :licznik jedynek w słowie cd.
Przykład :licznik jedynek w słowie cd.
Rys. 10.13 Specyfikacja układu licznika jedynek cz. a.
412004 Krzysztof Jasiński
ITPW PRUS – W6
Przykład :licznik jedynek w słowie cd.
Przykład :licznik jedynek w słowie cd.
Rys. 10.13 Specyfikacja układu licznika jedynek cz. b.