将内部 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
。这是您需要注册的。
在您的情况下,您在当前范围内实例化了另一个接口,该接口未绑定到任何实际信号。不需要。
我有一些内部 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
。这是您需要注册的。
在您的情况下,您在当前范围内实例化了另一个接口,该接口未绑定到任何实际信号。不需要。