如何监控测试/序列的DUT输出?

new*_*bie 0 verilog system-verilog uvm

我是UVM的初学者.到目前为止,我能够为我的DUT创建以下环境.

具有来自我的DUT的所有输入 - 输出接口的监视器,驱动程序和序列的代理.顶级UVM环境 用于将有效数据发送到DUT的序列.我尚未实施记分牌.

我在理解如何处理如下方案时遇到了一些麻烦:

对于tb-dut接口,TB需要等待来自DUT的事件(或事务).收到交易后,TB需要发回响应.实现这个的最佳方法是什么?如何从序列中监控DUT事务?我的代理商有监视器,它将监视来自DUT的任何新输出信号.那么,我是否需要以某种方式将代理监视器中的数据带到我的测试/序列类?我知道监视器有一个分析端口,它可以用来将收到的数据发送到记分板进行检查.那么,我是否需要使用相同的端口来读取DUT输出数据,创建有效的响应并将其发送到DUT?

谢谢!

dav*_*_59 6

这被称为从属序列或响应者.该协议如下

  1. 从属序列向驱动程序发送请求 - "告诉我该怎么做"
  2. 驱动程序检测到总线级别请求并将信息返回到序列 - "这是您应该做的"
  3. 从属序列执行准备响应所需的操作,然后向驱动程序发送响应项 - "在这里你去"
  4. 驱动程序用响应项的内容完成总线级响应,完成握手回到序列 - "谢谢"

这在Verification Academy UVM Cookbook中有更详细的解释.