41
2004 Krzysztof Jasiński PRUS PRUS Język VERILOG w praktyce

Język VERILOG w praktyce

  • 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

Page 1: Język VERILOG  w praktyce

2004 Krzysztof Jasiński PRUS PRUS

Język VERILOG w praktyce

Page 2: Język VERILOG  w praktyce

2004 Krzysztof Jasiński PRUS PRUS

Język VERILOG

Przykładysyntezy blokowej

Page 3: Język VERILOG  w praktyce

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

Page 4: Język VERILOG  w praktyce

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

Page 5: Język VERILOG  w praktyce

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 

Page 6: Język VERILOG  w praktyce

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

Page 7: Język VERILOG  w praktyce

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

Page 8: Język VERILOG  w praktyce

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

Page 9: Język VERILOG  w praktyce

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

Page 10: Język VERILOG  w praktyce

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

Page 11: Język VERILOG  w praktyce

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

Page 12: Język VERILOG  w praktyce

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

Page 13: Język VERILOG  w praktyce

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

Page 14: Język VERILOG  w praktyce

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_

+

Page 15: Język VERILOG  w praktyce

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

Page 16: Język VERILOG  w praktyce

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

Page 17: Język VERILOG  w praktyce

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

¯

Page 18: Język VERILOG  w praktyce

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)

Page 19: Język VERILOG  w praktyce

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

Page 20: Język VERILOG  w praktyce

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)

Page 21: Język VERILOG  w praktyce

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.)

Page 22: Język VERILOG  w praktyce

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)

Page 23: Język VERILOG  w praktyce

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)

Page 24: Język VERILOG  w praktyce

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)

Page 25: Język VERILOG  w praktyce

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

Page 26: Język VERILOG  w praktyce

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

Page 27: Język VERILOG  w praktyce

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 =

Page 28: Język VERILOG  w praktyce

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

Page 29: Język VERILOG  w praktyce

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

Page 30: Język VERILOG  w praktyce

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

Page 31: Język VERILOG  w praktyce

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 =

Page 32: Język VERILOG  w praktyce

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.

Page 33: Język VERILOG  w praktyce

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

Page 34: Język VERILOG  w praktyce

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

Page 35: Język VERILOG  w praktyce

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

Page 36: Język VERILOG  w praktyce

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

Page 37: Język VERILOG  w praktyce

372004 Krzysztof Jasiński

ITPW PRUS – W6

Rys. 8.49 Specyfikacja sumatora sekwencyjnego

Przykład :sumator sekwencyjny cd.

Przykład :sumator sekwencyjny cd.

Page 38: Język VERILOG  w praktyce

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

Page 39: Język VERILOG  w praktyce

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

Page 40: Język VERILOG  w praktyce

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.

Page 41: Język VERILOG  w praktyce

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.