vcs联和verdi,支持回退交互式仿真。
使用交互式仿真,确保如下环境变量有设置
-
VCS_HOME
-
VERDI_HOME
vcs在编译的时候,要加入如下选项
-lca -kdb -debug_access+all+reverse |
仿真的时候,在simv可执行程序后面,加入-verdi选项。
./simv -verdi |
启动verdi之后,需要打开verdi的回退仿真功能。
在verdi的设置界面,tools->Preferences中设置:
在程序中,设置一个断点:
在verdi的console中,输入run,启动仿真。
此时程序会在断点处停下来。此时会显示变量a的值,因为a赋值语句已经执行过。
在verdi界面的控制窗口,会有几个紫色的按钮,用来支持回退交互式仿真的。
点击,这个 Next Reverse:
此时,执行的光标,回到了断点代码的前一行。此时仿真的状态就回到了执行上一条指令的状态。此时a还没有赋值,值为x态。
所以可以利用verdi仿真的这个reverse功能,实现回退式仿真。这样当仿真不小心过了我们的设定点,可以使用reverse功能,回退到这个点。从而避免重新启动仿真。