Step
以计数器(counter)举例
- 使用文本编辑工具(eg:vim)编写源代码,后缀名为
.v
。 源代码包括:- 模块:counter.v
- 激励文件:counter_tb.v
-
使用iverilog进行编译,具体代码如下: 终端(命令行)模式下:
iverilog -o counter_design counter_tb.v counter.v
(与gcc编译语法类似) - 使用vvp运行,具体代码如下:
终端(命令行)模式下:
vvp counter_design
(结果将以文本的方式,在终端中显示) 再输入finish
结束vvp的运行,或者在执行vvp的时候添加 -n 参数(即vvp -n counter_design
)。
In Addition
如果想再gtkwave中观察波形图,需要额外的以下步骤:
- 在激励文件中添加如下代码:
initial begin $dumpfile("test.lxt"); $dumpvars(0,test); end
-
在执行vvp是添加参数
-lxt2
vvp -n counter_design -lxt2
终端将显示运行结果,同时生成名为 test.lxt 的波形文件。 - 使用gtkwave打开 test.lxt 文件
gtkwave test.lxt
gtkwave的使用方法,点此进入
PS
vvp参数简介
使用 man vvp
可以看到vvp命令的介绍
其中,在命令格式的最后有个 extended-args
(扩展参数)
该类型的参数有:
参数 | 作用 |
---|---|
-vcd | 将wave dump format(波形镜像格式)设置成 vcd。默认参数。特点是生成文件大,但能最好的适应第三方工具 |
-lxt, -lxt-speed, -lxt-space | 将波形镜像格式设置成 lxt。顾名思义 lxt-speed拥有较高的执行与读取速度,lxt-space 占用较小的空间 |
-lxt2 | 比lxt慢,但是比vcd快,比lxt节省空间。递增式写入,即可以一边仿真,一边读取波形数据,进行显示。 |
-none | 禁止一切波形镜像的生成,可以加快仿真速度。 |