Icarus verilog and GTKWave
Installation GuideWiki Icarus verilog
Mình dùng Ubuntu: sudo apt-get install iverilog gtkwave ( thường thì không phải là bản mới nhất )
Tạo file d_ff.v
module d_ff( d, clk, q, q_bar);
input d, clk;
output q, q_bar;
reg q;
reg q_bar;
always @ (posedge clk)
begin
q <= d;
q_bar <= !d;
end
endmodule
Tiếp theo là file test bench d_ff_tb.v, chú ý 2 dòng:$dumpfile ("d_ff_tb.vcd");
$dumpvars (1, d_ff_tb);
Waveform dumps are written by the Icarus Verilog runtime program vvp. The user uses $dumpfile and $dumpvars system tasks to enable waveform dumping, then the vvp runtime takes care of the rest. The output is written into the file specified by the $dumpfile system task. If the $dumpfile call is absent, the compiler will choose the file name dump.vcd or dump.lxt, depending on runtime flags.
module d_ff_tb;
reg clock, reset, d;
wire q, q_bar;
initial begin
$dumpfile ("d_ff_tb.vcd");
$dumpvars (1, d_ff_tb);
$monitor ("clock=%b, d=%b, q=%b, q_bar=%b", clock, d, q, q_bar);
clock = 0;
d = 1;
#10 d = 0;
#20 $finish;
end
always begin
#5 clock = !clock;
end
d_ff d0(
.d (d),
.clk (clock),
.q (q),
.q_bar (q_bar)
);
endmodule
Terminal:
iverilog -o d_ff_tb d_ff_tb.v d_ff.v //Dòng lệnh này sẽ biên dịch ra file d_ff_tb, có thể dùng lệnh ls để kiểm tra
vvp d_ff_tb //tạo ra file mô phỏng: d_ff_tb.vcd
Có thể quan sát kết qủa trên terminal, hoặc dùng gtkwave để theo dõi.
Để dùng gtkwave có 2 cách:
- chạy lệnh: gtkwave d_ff_tb.vcd
- Mở gtkwave lên, chọn File>Open New Tab>chọn file d_ff_tb.vcd rồi kéo thả các cổng vào cửa sổ Signal sẽ thấy ngay tín hiệu đc vẽ bên cạnh. Chú ý, zoom out lại, kẻo ko thấy gì
Wiki Icarus verilog
http://www.rowetel.com/blog/?p=13
Note:
gEDA also includes Icarus Verilog
http://wiki.geda-project.org/geda:icarus
http://web.ece.ucdavis.edu/~bbaas/281/tutorials/verilog/
http://verilog.openhpsdr.org/
Không có nhận xét nào :
Đăng nhận xét