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

Binding internal DUT signal to interface and using it in monitor

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

testbench_top-

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(绑定到 1)的 dut 值。

bind 语句只是在您提供 i_dut.fifo_inst.fifo1_inst 的实例中实例化类型为 exp_interface 的接口,实例名称为 m1

因此,您的界面路径是 i_dut.fifo_inst.fifo1_inst.m1。这是您需要注册的。

在您的情况下,您在当前范围内实例化了另一个接口,该接口未绑定到任何实际信号。不需要。