一段编写好的代码
iverilog -I ../core -y ../core -o sim.out $1
echo "Generate waveforms"
vvp -n sim.out
echo "View waveforms"
gtkwave sim_out.vcd
调用时在包含sim.sh和testbench.v的文件夹下打开终端,输入:(默认二者在同一文件夹下)
./sim.sh testbench.v
之后就可以进行波形查看。
具体的每一句的含义为:
iverilog -I ../core -y ../core -o sim.out $1
#################################################################
本过程进行编译,输出sim.out文件
基本格式为iverilog [options] filelist
iverilog表明执行综合命令
-I ../core指明宏定义文件位置,编译器会在这个目录下查找include文件。
-y ../core指明所有模块位置,编译器会在这个目录下查找模块。
-o sim.out指定输出文件名为sim.out,输出在当前文件夹下,省略则生成a.out
$1代表脚本的第一个参数,在上例中代表当前文件夹下的testbench.v
echo "Generate waveforms"
vvp -n sim.out
######################################################
本过程进行仿真,输出sim_out.vcd文件
echo类似于print
vvp是运行IVerilog仿真命令。
-n选项表示以非交互模式运行仿真。
sim.out之前综合出的文件
需要确保testbench.v中有$dumpfile和$dumpvars调用,以生成VCD波形文件。
输出文件sim_out.vcd是在testbench.v中通过 $dumpfile("timer_tb.vcd")命名
echo "View waveforms"
gtkwave sim_out.vcd
######################################
调用gtkwave查看生成的vcd文件