这是我验证奇偶校验编码器-解码器DUT的场景。译码器输入代理是在编码器输出代理中从无源监控器捕获的数据流中注入错误的反动代理。
现在,我有顺序和序列项目,分别为编码器和解码器输入代理。但是,我如何同步这两个代理,以便解码器重新激活代理添加错误,并为每个数据创建一个新的数据包。
例如,假设编码器按顺序- 1000、1010、0100、1011发送数据,解码器重新激活代理按顺序(一个热位)- 0010、1000、0001、0100创建错误数据包。现在,两者都创建彼此无关的数据包。然而,即使从被动代理监视器接收到两个数据(即1000和1010 ),反作用剂也应该与其第一分组(如1000 ^ 0010 )一起使用第一数据。另外,由于两个代理都在生成项,解码器在从编码器代理(通过被动编码器代理监视器)接收数据之前不应该发送项。
发布于 2017-09-06 22:26:38
我想,你想要使用不同物体之间的锁定机制。
您可以使用IPC ()方法来控制它,就像事件、邮箱、信号量一样。
在UVM中,高级方法是可用的,比如uvm_event
、TLM FIFOs
,它们可以用于您的目的。
发布于 2017-09-05 18:02:22
一种选择是使用config_db将内编码器事务放在那里,并从解码器重新激活代理中获得它。我觉得这不是个好办法。另一种选择是拥有虚拟序列,其中包括编码器和解码器序列,获取编码器包并提供给解码器序列。
https://stackoverflow.com/questions/46062005
复制