VScode编辑verilog/SystemVerilog + iverilog编译仿真 + GTKWave显示波形

前言

quartus II + modesim的仿真流程太过繁琐,每次修改代码都要重新编译,重新打开modesim仿真十分花时间,了解到iverilog+GTKWave的仿真方法后觉得非常快速便捷,并结合VScode编辑,做个小结
参考:@wangxuan95@浮沉野马

一、VScode下载以及插件安装

见参考的链接,有很详细的介绍

二、VSCode+iverilog+GTKWave流程

2.1 编写代码

我们使用VScode编写代码,文件名为CLC_LFSR.sv、tb.sv
ps:测试用例其实是CRC校验的文件,但是打错字写成了CLC…
在这里插入图片描述正常编写tb文件后,额外加上一段代码:

initial begin
	$dumpfile("wave.vcd");  			// 指定VCD波形文件的名字为wave.vcd,仿真信息将记录到此文件,wave.vcd文件将存储在当前目录下
	//$dumpfile("./simulation/wave.vcd");  	// wave.vcd文件将存储在当前目录下的simulation文件夹下
	$dumpvars(0, tb );  				// 指定层次数为0,则tb模块及其下面各层次的所有信号将被记录,我们需要所有信号都被记录
	#300 $finish;						// 一定要设置一个仿真停止时间
end

2.2 iverilog编译

按CTRL + ~ 打开终端 PowerShell
在这里插入图片描述
在终端内输入:

md simulation
del sim.out wave.out
iverilog -g2005-sv -o sim.out tb.sv CLC_LFSR.sv
vvp -n sim.out
gtkwave wave.vcd

每行命令解释如下:

md simulation (可没有): 在当前目录下新建文件夹:simulation

del sim.out wave.out (可没有): 删除当前目录下的文件:sim.out 和 wave.vcd
使用该命令是为了在编译失败时也能删掉 sim.out 和 wave.vcd 文件(如果有的话),避免让你误以为编译成功并产生了 wave.vcd (实际上这可能是上次编译成功时生成的波形)。

iverilog -g2005-sv -o sim.out tb.sv CLC_LFSR.sv :
该命令的含义是:

  • 用 iverilog 编译 tb.sv 和 CLC_LFSR.sv(多个文件时最好将顶层模块放在首位)
  • 生成仿真可执行文件 sim.out
  • -g2005-sv 代表语言标准为 SystemVerilog-2005 。
    关于语言标准,你可以用以下选项,高版本是向下兼容低版本的,比如你的代码使用 Verilog-2001 编写,那么这个选项也可以设为 -g2012 。
选项语言标准IEEE 标准备注
-g1995Verilog-1995IEEE1364-1995
-g2001Verilog-2001IEEE1364-2001
-g2005Verilog-2005IEEE1364-2005推荐使用(2022年)
-g2005-svSystemVerilog-2005IEEE1800-2005推荐使用(2022年)
-g2009SystemVerilog-2009IEEE1800-2009
-g2012SystemVerilog-2012IEEE1800-2012

目前(2022年)进行 FPGA 开发推荐使用的是 Verilog-2005 和 SystemVerilog-2005 ,因为各种 FPGA 开发环境支持的最全。
编译好后,可以看到生成了一个 sim.out 文件

vvp -n sim.out : 使用该指令对sim.out文件进行仿真,并记录下波形,生成wave.vcd文件

gtkwave wave.vcd : 使用该命令打开 gtkwave 查看波形文件(我测试时会报错,不过没关系,我们找到vcd文件的位置,双击选择gtkwave打开就行,如果有知道怎么解决的希望可以在评论区解答一下,谢谢

所有命令中的文件都可以在当前目录的基础上指定子目录或上层目录的文件夹,例如
./RTL/tb.sv是指在当前目录下RTL文件夹下的tb.sv文件
../RTL/tb.sv是指在当前目录的上层目录RTL文件夹下的tb.sv文件

在这里插入图片描述然后就可以愉快的查看波形啦~

在这里插入图片描述

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值