SystemVerilog测试台模拟(VCS)的非活动停止开关
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SystemVerilog测试台模拟(VCS)的非活动停止开关相关的知识,希望对你有一定的参考价值。
嗨,谢谢你看到这个。
我正在考虑为SystemVerilog模拟使用不活动的killswitch的想法。
是否有一种方法,当运行“ simv”时,较长时间(可编程)的不活动时间可以触发内部事件来调用“ $ finish”?还是可以使用VCS命令?
让我们集思广益。并且让我知道是否有不清楚的地方。
RRS
在VHDL中,我使用已解析的信号。
每个生成或分析数据的过程在其工作时都会将0
写入该信号。处于仿真完成状态时,将写入1
。
仅当所有进程都满意时,信号状态才会更改为1
(其余时间为X
或0
。
时钟生成过程监视此信号,当它变为1
时,它们停止产生时钟脉冲;没有计划进一步的转换,并且模拟器知道停止。
大概Verilog可以做类似的事情。
在我工作过的芯片设计公司内部,这称为“静态检查”,但我不确定这是否是行业标准名称。您实现了“仪器代码”,用于检查系统是否已达到静止状态。 Cadence的Cadence的Specman-e tool反对测试机制(raise_objection(MAIN_TEST_DONE)/drop_objection(MAIN_TEST_DONE)
)的结束非常优雅。本质上,整个系统的监视器在模拟开始时就“提出”异议(即增加计数器),然后在模拟运行时,他们确定自己的DUT处于静止状态,并且“降低”异议(即减小)此全球计数器)。如果没有其他人反对结束测试(即全局计数器为0),则调用$finish
。监视器可以在整个测试中提出和降低异议,但是如果计数器达到0,则该测试为$finish
'。
[Universal Verification Methodology(UVM)]从Specman继承了此方法,并在其UVM Reference Manual中进行了描述。 UVM首先是通过Verilog实现的,因此您可以肯定地使用其免费提供的库来实现“静态检查”。 Cadence的Specman UVM参考手册还在http://support.cadence.com上描述了此机制。遗憾的是,Cadence要求您是客户,然后他们才能向您显示其文档,因此,您必须使用非Google搜索引擎来查找所需内容。有点痛苦。
以上是关于SystemVerilog测试台模拟(VCS)的非活动停止开关的主要内容,如果未能解决你的问题,请参考以下文章
《SystemVerilog验证-测试平台编写指南》学习 - 第2章 数据类型