iverilog+GTKwave使用总结

介绍

iverilog介绍

  iverilog是一个开源的硬件描述语言(HDL)仿真工具,用于对硬件描述语言(如Verilog)编写的数字电路进行仿真。它可以将Verilog代码编译为仿真模型,并通过仿真运行来验证设计的正确性。
  iverilog支持IEEE 1364-2005 Verilog语言标准,并提供了丰富的功能,包括对多种Verilog语言特性的支持、模块化设计、测试平台等。它还可以与其他工具(如GTKWave波形查看器)配合使用,以便进行仿真后的波形查看和分析。由于iverilog是开源的,并且跨平台,因此它在学术界和业界都得到了广泛的应用。
  它是一种常见的Verilog仿真工具,可用于验证数字电路设计的正确性,进行功能验证和调试。除了仿真功能之外,iverilog还可以用于生成电路网表文件,以便进行综合和布局布线。因此,它在数字电路设计流程中扮演着重要的角色,为工程师和研究人员提供了强大的工具来验证和开发数字电路设计。

GTKwave介绍

  GTKWave是一个开源的波形查看器,用于可视化数字电路仿真结果。它可以显示由Verilog模拟器(如iverilog)生成的波形文件,并提供了丰富的功能来查看和分析波形数据。
  GTKWave支持多种波形文件格式,包括VCD(Value Change Dump)和FST(Fast Signal Trace)等。通过加载波形文件,用户可以以图形化的方式查看和分析电路在不同时间点上的信号变化情况。GTKWave提供了直观的界面,可以灵活地缩放、平移和选择波形进行查看。它支持标注、颜色编码、层次结构展示等功能,使得用户能够更好地理解和调试数字电路设计。此外,GTKWave还提供了搜索、过滤、触发等高级功能,帮助用户定位和分析复杂的波形模式。
  GTKWave是一个跨平台的工具,可以在多个操作系统上运行,如Linux、Windows和macOS等。它被广泛应用于数字电路设计、验证和调试过程中,为工程师和研究人员提供了一个强大的工具来可视化和分析数字电路仿真结果。

iverilog+GTKwave使用方法

安装

需先安装iverilog和GTKwave,在Ubuntu系统中,执行下面命令行即可:

sudo apt install iverilog
sudo apt install gtkwave

注:如需安装特定版本,可以去官网进行下载安装。
iverilog官网
gtkwave官网

Testbench注意事项

需要在testbench文件中,额外加入以下代码:

initial begin
    $dumpfile("demo.vcd");
    $dumpvars(0,demo_tb);
end

$dumpfile(“demo.vcd”);是为了生成demo.vcd波形图文件,之后便于使用GTKwave工具查看波形。
$dumpvars(0,demo_tb);是为了设置需要记录的信号,其中的(0,yihuo_tb)是指以demo_tb模块,0指的是记录demo_tb模块下所有信号(包括调用的模块下的信号)的波形,并保存到.vcd文件中。

仿真编译

编写完.v文件和tb.v文件后,即可进行仿真编译,运行以下命令:

iverilog -o demo demo.v demo_tb.v
vvp demo
gtkwave demo.vcd
  1. iverilog -o demo demo.v demo_tb.v:
       iverilog 是用于编译和生成仿真可执行文件的命令。
      -o demo 表示生成名为 demo 的可执行文件。
      demo.v 和 demo_tb.v 是输入的 Verilog 源代码文件,其中 demo.v 是被测试的设计文  件,demo_tb.v 是测试台文件(testbench)。
  2. vvp demo:
      vvp 是用于执行生成的仿真可执行文件的命令。
      demo 是待执行的仿真可执行文件。
  3. gtkwave demo.vcd:
      gtkwave 是一款常用的波形查看器,用于打开和分析仿真生成的波形文件。
      demo.vcd 是仿真期间生成的波形文件,它包含了不同信号在每个时间点上的值变化。

注:可以将上面命令行编写至.sh文件中,再直接运行./xxx.sh也可以,如果是Windows系统,则可编写至xxx.bat文件中,效果也是一样的。

demo

该demo展示了使用iverilog和GTKwave工具对异或门的功能仿真和波形查看。

源代码

yihuo.v:

module yihuo(a,b,out);
input a;
input b;
output wire out;
assign out = a^b;
endmodule

yihuo_tb.v:

`timescale 1ns/1ns
module yihuo_tb();
reg a;
reg b;
wire out;
initial begin
    $dumpfile("demo.vcd");
    $dumpvars(0,yihuo_tb);
end
initial begin
    a=0;
    b=0;
    #1
    a=0;
    b=1;
    #1
    a=1;
    b=0;
    #1
    a=1;
    b=1;
    #1
    $finish();
end
yihuo u_yihuo(
    .a(a),
    .b(b),
    .out(out)
);
endmodule



编译和生成仿真可执行文件

运行

iverilog -o demo yihuo.v yihuo_tb.v

运行后生成了demo文件,接着运行

vvp demo

运行后生成了demo.vcd波形文件。

查看波形

运行

gtkwave demo.vcd

即可查看波形
在这里插入图片描述

  • 25
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值