在具有verilog的ModelSim中,您可以在继续模拟的同时将模拟状态重置为开始吗?

时间:2015-10-26 20:58:14

标签: verilog verification modelsim

这是一个非常难以解决的问题所以我将描述我想要的效果。

说我是否有verilog代码,例如:

...
/*procedure 1 generating stimuli for module 1*/;
/*procedure 2 generating stimuli for module 1*/;
...

并且module_thing具有影响所有未来计算的内部状态。是否有一个我可以使用的命令,例如'reset_state',它会将module_thing重置回其启动状态?

所以在verilog:

...
/*procedure 1 generating stimuli for module 1*/;
reset_state;
/*procedure 2 generating stimuli for module 1*/;
...

在ModelSim中,module_thing在第二次调用之前被适当地“清除”了所有值,而无需重置模拟。

感谢您的阅读。

1 个答案:

答案 0 :(得分:0)

您无法从Verilog描述中控制时间,您只能等待它通过,或等待信号发生变化。你在想软件调用一个函数。这不是硬件的工作原理。您需要考虑运行Verilog编写的硬件描述模拟与用于调用模拟的脚本之间的区别。模拟始终从时间0开始并向前移动。时间0表示描述中的所有initialalways块开始执行语句。

运行模拟的脚本可以告诉工具运行一定量的模拟时间,停止,然后在时间0重新启动。但这意味着您的所有initialalways块description再次开始执行语句。