这是一个非常难以解决的问题所以我将描述我想要的效果。
说我是否有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在第二次调用之前被适当地“清除”了所有值,而无需重置模拟。
感谢您的阅读。
答案 0 :(得分:0)
您无法从Verilog描述中控制时间,您只能等待它通过,或等待信号发生变化。你在想软件调用一个函数。这不是硬件的工作原理。您需要考虑运行Verilog编写的硬件描述模拟与用于调用模拟的脚本之间的区别。模拟始终从时间0开始并向前移动。时间0表示描述中的所有initial
和always
块开始执行语句。
运行模拟的脚本可以告诉工具运行一定量的模拟时间,停止,然后在时间0重新启动。但这意味着您的所有initial
和always
块description再次开始执行语句。