weiqi7777

vcs回退交互式仿真

0
阅读(1448)

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功能,回退到这个点。从而避免重新启动仿真。