我有一个奇偶校验编码器解码器的验证tb结构,如下所示,我将数据驱动到编码器,获取输出,向其添加随机错误并将其作为输入传递给解码器。
我的问题是我需要两个驱动程序来驱动1)Data_in_08p和2)Data_corrupted_in?我应该有一个在随机位置创建随机错误的组件,并使用Data_out_08p创建它。该组件的性质应该是什么,即它应该是一个驱动程序?我可以在一个代理中拥有两个驱动程序,还是需要在此处创建两个代理?
准确地说,当DUT的一个输入取决于DUT输出时,我们如何定义驱动器/ env?将有多少序列和序列发生器和监视器?
答案 0 :(得分:1)
验证DUT所需的UVM测试平台的框图可能是这样的:
在UVM术语中,您需要以下代理:
请注意,坐在编码器输出代理上的监视器将捕获事务并通过分析端口将它们发送到位于解码器输入代理上的定序器。这被称为“被动”代理,因为它等待直到收到某些东西才能生成事务。然后,您将从解码器输入代理程序的顺控程序上运行的序列中注入错误。
Verilab有一篇非常好的论文,详细讲述了“反应特工”: http://www.verilab.com/files/mastering_reactive_slaves.pdf