Documente Academic
Documente Profesional
Documente Cultură
IMPLEMENTATE N VERILOG
1. Scopul lucrrii
Descrierea unor structuri de memorare realizate cu latch-uri sau bistabile
(registru, memoria static RAM), precum i descrierea automatelor bistabile (bistabilele
JK i T) i a structurilor de numrare realizate cu acestea. nelegerea funcionrii
acestor structuri prin testarea lor prin simulare cu ajutorul programului Veriwell.
2. Aparate necesare
- calculator compatibil Pentium
- sistem de operare Windows 95 sau superior
- programul VeriWell 2.0, produs de Wellspring Solutions, versiunea
freeware, disponibil pe Internet
3. Consideraii teoretice
Folosind descrierea comportamental a bistabilului de tip D, discutat data
trecut i disponibil n fiierul bistabil_D.v, s ncercm s realizm o descriere
structural a registrului paralel pe 4 bii, reprezentat n figura 3.1. Descrierea poate fi
urmtoarea:
module register_4(out, in, clock, reset);
output[3:0] out;
endmodule
1
wire[3:0] out;
initial $vw_dumpvars;
endmodule
A2 LATCH
DIN D Q DOUT
MATRICE DE MEMORIE
A1 DCD
SEL
8 4 CL
A0 WR
WR
input write;
input[word_dim - 1:0] din; // datele de intrare
2
input[add_dim - 1:0] address; // liniile de adresa
endmodule
reg write;
reg[word_dim - 1:0] din;
reg[add_dim - 1:0] address;
initial $vw_dumpvars;
endmodule
Bistabilul JK este cel mai complex bistabil i cel mai simplu automat cu stri
finite, numit i automatul finit elementar. Dac considerm reprezentarea din figura 3.3,
adic un circuit cu basculare pe front pozitiv, cu intrri asincrone de SET i RESET,
active pe 1 logic (cazul circuitului CMOS 4027), atunci un model Verilog al circuitului
este prezentat n continuare:
3
CLK J K S R Q Q
0 0 0 0 Q Q
S 0 1 0 0 0 1
J Q
1 0 0 0 1 0
CLK
1 1 0 0 Q Q
K Q x x
R x 1 0 1 0
x x x 0 1 0 1
x x x 1 1 1 1
reg q;
endmodule
endmodule
count
0 1 2
S S S
J Q Q0 J Q Q1 J Q Q2
clock CLK CLK CLK
K Q K Q K Q
R R R
reset
4
module test_async_counter;
initial $vw_dumpvars;
endmodule
Schema unui numrtor sincron modulo 5 care numr cresctor este dat n
figura 3.5. Dac folosim din nou modelul bistabilului JK descris anterior, atunci
modelul Verilog al circuitului este urmtorul:
module sync_counter(q4, q2, q1, clock, reset);
endmodule
4 2 1
S S S
J Q Q4 J Q Q2 J Q Q1
clock CLK CLK CLK
1 K Q K Q 1 K Q
R R R
reset
5
#15 reset = 1;
#10 reset = 0;
#140 $stop;
end
initial $vw_dumpvars;
endmodule
4. Modul de lucru
4.1. Se lanseaz n execuie VeriWell 2.0 i se vizualizeaz fiierele
bistabil_D.v i registru_4biti.v. Se vizualizeaz i fiierul test_registru_4biti.v,
care este fiierul de generare a testului pentru registrul paralel de 4 bii. Se deschide un
proiect care conine cele 3 fiiere i se ruleaz, verificnd c nu exist erori de
compilare. Vizualizai formele de und i explicai funcionarea circuitului. Realizai
modelul unui registru serie de 4 bii i verificai funcionarea circuitului. Reconstruii
modelul registrului paralel, introducnd o intrare suplimentar (ENABLE), care s
permit memorarea datelor n registru, numai atunci cnd este activat pe 1 logic.
Verificai funcionarea circuitului.