使用批处理方式进行仿真:
1. 在windows操作系统中选择【开始】/【程序】/【附件】/【命令提示符】命令,打开windows的命令控制台,改变当前目录为。。。在DOS的命令提示符后键入vlib work命令,建立一个仿真工作库。
2. 使用vmap work work命令映射工作库。
3. 使用vlog counter.v tcounter.v命令编译设计源文件。
4. 使用 vcom ***.vhd。
5. 使用文本编辑器编辑一个test.do文件,在这个文件中包含如下命令:
view wave 打开一个波形窗口
add wave * 添加顶层所有信号到波形窗口,其实在批处理模式下这样做的设置反而会降低仿真效率,之所以这么做,是为了产生WLF(波形日志格式)文件
add list –decimal * 添加信号到列表窗口中,并且这些信号使用十进制方式在列表中显示;
vcd dumpports –file counter.vcd /test_counter/dut/* 将仿真存储为一个VCD文件,文件名为counter.vcd,需要存储的信号为顶层所有信号;
run 运行仿真;
quit –f 强制退出;
6. 在DOS命令提示符后输入vsim –do test.do –WLF waved.WLF test_counter命令,进行仿真;
在这个命令行中,vsim为启动仿真器的命令,命令开关-do指定了宏文件test.do,命令开关-WLF指定了一个名为waved.WLF的波形日志文件;
7. 执行了上面的命令后,在工作目录中会产生一个波形日志文件,”waved.WLF”,如果在DOS命令提示符后输入 vsim –view waved.WLF命令,将打开modelsim仿真软件,并加载“waved.WLF”文件中的数据。
8. 在modelsim的命令控制台中输入view wave和add wave *命令后,在波形窗口中就可以看到”waved.WLF”文件中的信号波形。
仿真中的代码覆盖率
1. 启动modelsim仿真工具,改变目录到工作目录下,在命令控制台使用vlib work命令创建一个工作目录。
2. 在命令控制台使用vmap work work命令进行目录映射
3. 在命令控制台使用 vcom counter.vhd retrieve.vhd store.vhd和vcom ringrtl.vhd testring.vhd config_rtl.vhd命令编译各设计模块。
4. 在命令控制台使用vsim –coverage work.test_bench_rtl命令运行仿真,在这个命令中使用了 –coverage操作开关。
5. 在命令控制台使用 run 3 ms命令将仿真运行3ms。
6. 在命令控制台使用view_coverage命令打开代码覆盖率统计窗口
7. 在命令控制台使用coverage report –file cover.dat –lines命令将代码覆盖率信息保存到文本文件cover.dat
90%为一个系统默认的代码覆盖率门限,所有覆盖率低于90%的源代码都将使用红色显示。
在modelsim中,创建VCD的过程包含两个不同的流程,一个流程可以提供四态的VCD文件,参数在0,1,X,Z之间变化,没有信号强度信息,另外一个流程提供一个扩展的VCD文件,这个文件包括参数的全部状态变化以及强度信息。
创建一个四态(0,1,X,Z)VCD文件,
1. 启动modelsim,改变工作目录
2. Vilb work
3. Vlog .v
4. Vsim test_counter
5. 在设计加载以后,使用VCD命令指定一个VCD文件,利用vcd add命令添加仿真条目到文件中
6. Vcd file myvcdfile.vcd
7. Vcd add /test_counter/dut/*
8. Run
9. Quit –f
在设计加载后,可使用如下命令创建一个扩展的VCD文件并添加仿真条目
vcd dumpoports –file myvcdfile.vcd /test_counter/dut/*
使用一个VCD文件重新进行仿真
vsim –vcdstim myvcdfile.vc counter
add wave /*
run 200ms
如果使用了ip中的.v文件,一定要include进来,或者vlog进来。
vsim -t 1ps –vcdstim myvcdfile.vc counter
//For example this command chooses 10 ps resolution:
vsim -t 10ps topmod