Linux下利用iverilog进行功能仿真,利用gtkwave查看仿真输出波形

原文:《Linux下利用iverilog进行功能仿真》

linux下面进行硬件仿真,可以使用modelsim,但是modelsim不是开源软件,安装需要破解,很是麻烦,而iverilog是linux下的一款开源仿真软件,利用它再配合shell脚本可以方便的实现自动化仿真并查看波形。

本文档以 Ubuntu12.04 为例子,讲解 Linux 系统下使用 iverilog 和 gtkwave 进行 verilog 的仿真。

一:安装 iverilog 以及 gtkwave

$:sudo apt-get install iverilog
$:sudo apt-get install gtkwave

二:Verilog 版 Helloworld

$:vim helloworld.v

编辑如下内容:

module main;
  initial begin
    $display("Hello, World!");
    $finish;
  end
endmodule

三:利用 gtkwave 查看波形

下面以一个简单计数器为例:

$:vim counter.v

输入以下内容:

module counter(irst, iclk, ocnt );
  input irst, iclk;
  output reg [3:0] ocnt;
  always @ (posedge iclk)
    if(irst)
      ocnt <= 4'b0000;
    else
      ocnt <= ocnt + 1'b1;
endmodule
$:vim counter_tb.v

输入以下内容:

module counter_tb;
  reg irst = 0;
  reg iclk = 0;
  wire [3:0] ocnt;
  initial begin
    irst = 1; #100;
    irst = 0; #300;
    $stop;
    #1000;
    $finish;
  end
  always begin #5 iclk = !iclk; end
  counter counter_test(
    .irst(irst),
    .iclk(iclk),
    .ocnt(ocnt)
  );
  initial
  $monitor("At time %t, ocnt = %d", $time, ocnt);
  initial
  begin
    $dumpfile("counter_test.vcd");
    $dumpvars(0, counter_test);
  end
endmodule
$:iverilog -o counter_test counter_tb.v counter.v
$:vvp -n counter_test -lxt2
$:cp counter_test.vcd counter_test.lxt
$:gtkwave counter_test.lxt

OK!至此就会打开 gtkwave 界面,然后添加信号就可以查看波形啦!

总结:

iverilog用于功能仿真并记录仿真结果数据,gtkwave则可以用来查看iverilog产出的数据波形文件。linux的思想就是让很多软件各司其职,大家一起协同,可靠的完成复杂的任务。如果再将以上各种命令写道一个shell脚本文件中,通过shell运行,这样就完全自动化了。

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值