Interface 将内部DUT信号绑定到接口并在监视器中使用

Interface 将内部DUT信号绑定到接口并在监视器中使用,interface,system-verilog,uvm,Interface,System Verilog,Uvm,我有一些内部DUT信号,我需要在显示器中使用。我尝试绑定接口,然后在monitor中使用虚拟接口,但DUT值没有反映在我的接口上 测试台- bind fifo1 : i_dut.fifo_inst.fifo1_inst exp_interface m1 (.fifo_out(out_dut1)); exp_interface exp_intf(); initial begin uvm_config_db#(virtual exp_interface)::set(nul

我有一些内部DUT信号,我需要在显示器中使用。我尝试绑定接口,然后在monitor中使用虚拟接口,但DUT值没有反映在我的接口上

测试台-

bind fifo1 : i_dut.fifo_inst.fifo1_inst exp_interface m1 (.fifo_out(out_dut1));
exp_interface exp_intf();

initial
     begin 
       uvm_config_db#(virtual exp_interface)::set(null, "*", "exp_intf", exp_intf);
end
接口文件-

 interface exp_interface (
        output fifo_in,
        input fifo_out
    );
    endinterface
在监视器中,我尝试使用-

if(exp_intf.fifo_out==1)
          $display("hello0---------------------");

但是我没有看到out_dut1的dut值(绑定到1)反映在接口上

bind语句仅在您提供的实例中实例化类型为
exp\u interface
的接口,该实例名为
m1

因此,接口的路径是
i_dut.fifo_inst.fifo1_inst.m1
。这是你需要注册的


在本例中,您在当前范围中实例化了另一个接口,该接口未绑定到任何实际信号。它是不需要的。

bind语句只是在您提供的实例中用实例名
m1
实例化类型为
exp\u interface
的接口

因此,接口的路径是
i_dut.fifo_inst.fifo1_inst.m1
。这是你需要注册的


在本例中,您在当前范围中实例化了另一个接口,该接口未绑定到任何实际信号。不需要它。

ahhh。。。我觉得有些联系缺失,现在你明白了。所以我注册了m1,现在可以得到并看到DUT值。谢谢你。这几乎毁了我的周末。啊。。。我觉得有些联系缺失,现在你明白了。所以我注册了m1,现在可以得到并看到DUT值。谢谢你。这几乎毁了我的周末。