我有一个从模型在uvm_agent
. “奴隶”是指它不能自行发起交易。事务总是由另一方(主 DUT)发起。所以它是一种被动代理(尽管它仍然能够传输回复数据包)。
当从机检测到来自 DUT 的数据包时,它将自动(基于其协议)用另一个数据包响应/回复。从代理有一个监视器来监听 DUT 的启动传输。而且由于它能够传输数据包,从代理也确实有一个驱动程序来发送回复数据包。
+------------+ master initiate transfer +------------------------+
| Master DUT | ------------------------> | UVM Agent - slave mode |
| | | Monitor |
| | | Driver Sequencer |
+------------+ +------------------------+
+------------+ +------------------------+
| Master DUT | | UVM Agent - slave mode |
| | slave auto reply | Monitor |
| | <------------------------- | Driver Sequencer |
+------------+ +------------------------+
我的问题是它应该如何发送回复数据包?直接从它的驱动程序?由于在 uvm 方式中,驱动程序项始终来自从用户测试级别执行序列的定序器。但是现在在这种情况下,没有序列 - 只有从监视器检测到的数据包。
我的第一个想法是我需要提供某种反馈并monitor
在sequencer
那里实现我的协议功能。
或者我应该直接从monitor
to传递数据包driver
,让它处理它并发送回复?如果是这样,我该怎么做?有没有更好的办法?