Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
System verilog 向UVM后门访问添加自定义延迟_System Verilog_Uvm - Fatal编程技术网

System verilog 向UVM后门访问添加自定义延迟

System verilog 向UVM后门访问添加自定义延迟,system-verilog,uvm,System Verilog,Uvm,我有两个在lockstep中运行的DUT实例,一个比另一个晚运行T个周期。我知道我可以使用reg\u块添加多个路径。为两个实例的后门访问添加\u hdl\u path。但是,我想反映执行后门写入时的实际周期延迟行为,即第二个实例在第一个实例获得新值T cycles之后获得新值T cycles。有办法吗?我能找到的唯一提示是uvm\u reg\u backdoor,但我不确定这对我有什么帮助。整个后门访问点零延迟。您需要将发出后门写入命令的时间延迟到所需的周期数 谢谢你回复戴夫。我特别想问的是,是

我有两个在lockstep中运行的DUT实例,一个比另一个晚运行T个周期。我知道我可以使用
reg\u块添加多个路径。为两个实例的后门访问添加\u hdl\u path
。但是,我想反映执行后门写入时的实际周期延迟行为,即第二个实例在第一个实例获得新值T cycles之后获得新值T cycles。有办法吗?我能找到的唯一提示是
uvm\u reg\u backdoor
,但我不确定这对我有什么帮助。

整个后门访问点零延迟。您需要将发出后门写入命令的时间延迟到所需的周期数

谢谢你回复戴夫。我特别想问的是,是否有一种方法可以定制
uvm_reg
write
函数,通过回调等方式,通过后门访问来完成我想做的事情。当我写这篇文章的时候,我想我可能已经找到了答案。我可以使用
post\u write
触发对相应寄存器T周期的后门访问,对吗?@ArunD'souza你的意思是
pre\u write()
@TudorTimi我想我的意思是
post\u write()
。如果我进行了预写并且任务被阻塞,那么回调将在写入之前执行。回调将消耗T个周期,然后写入DUT的第二个实例。在那之后,写入将开始,这基本上意味着我们同时写入了这两个文件,尽管在用户调用write之后是T个周期。@ArunD'souza关于延迟的最常见习惯用法是在执行事务之前总是延迟。例如,如果您想发出总线传输,您需要等待
delay
周期,然后开始驱动事务。在您的情况下,后门写入是您的事务。这不是为通过序列器/驱动程序的基于事务的延迟建模。这是一个锁步网络模型,其中寄存器通过DUT接口编程,但阴影网络在T周期后看到。当在0周期重新编程期间有事务正在进行,并且两个子DUT实例都看到不同的寄存器值,从而导致发散行为时,问题就出现了。为什么会有交易我不想谈:(