一、IVerilog+VS Code开发环境
参考这篇文章可以配置VSCode和Iverilog的联合开发环境,觉得麻烦不配置也可以。
Visual Studio Code + iverilog开发环境配置
二、代码准备
2.1 文件存放位置
将设计文件和tb文件放置在src文件夹下(如pulse_counter.v、test.v),iverilog编译运行生成的中间文件放在build文件中(如test.vcd、test.vvp文件)。
2.2 生成波形文件
需要在testbench中加入以下一段代码,添加之后才可以在仿真后输出一个以矢量形式的输出文件。
initial begin
$dumpfile("./build/test.vcd"); // 指定记录模拟波形的文件
$dumpvars(0, test); // 指定记录的模块层级
#6000 $finish; // 6000个单位时间后结束模拟
end
三、Iverilog仿真命令
3.1 命令执行顺序
一般只需按顺序执行第2、3、4条命令即可看信号波形。
- 编译设计代码
iverilog -o pulse_counter ./src/pulse_counter.v
- 编译测试代码并生成.vvp的可执行文件
iverilog -o "./build/test.vvp" ./src/test.v ./src/pulse_counter.v
- 生成仿真波形
vvp -n ./build/test.vvp
- 打开仿真波形
gtkwave ./build/test.vcd
3.2 部分备注
iverilog -o hello hello.v这句话是将hello.v编译成hello脚本文件,这个hello也可以写成hello.exe或者hello.vvp,不过由于在linux上的一些习惯,比较喜欢将可执行文件或者可执行脚本命名为没有后缀。得到的hello是一个脚本文件,iverilog提供了vvp.exe这个解释器运行时来运行hello这个脚本文件,就好像写Python都用python.exe这个CPython运行时来解释运行python脚本一样,vvp的用法很简单,vvp+脚本文件就可以运行了。