16 tháng 9, 2015

Learn Verilog

Icarus verilog and GTKWave

Installation Guide
Wiki 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:
  1. chạy lệnh: gtkwave d_ff_tb.vcd
  2. 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ì
Nguồn: 
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/

Subscribe

Điền địa chỉ email của bạn, và nhấn Subscribe để nhận những bài viết mới nhất qua email.

Enter your email address:

Không có nhận xét nào :

Đăng nhận xét

x