【发布时间】:2015-04-27 10:26:56
【问题描述】:
对于 SystemVerilog 接口,是否有与 this 等效的构造?
我想做的是绑定某个 DUT 块内的接口,然后使用 UVM 配置数据库作为虚拟接口传递它:
bind some_block some_interface(...);
interface some_interface(...);
initial
`uvm_config_db #(virtual some_interface)::set(null, "some.path", "vif", this);
endinterface
我的解决方法是定义一个包装器模块来实例化接口,然后设置配置数据库:
module some_interface_wrapper(...);
some_interface some_if(...);
initial
`uvm_config_db #(virtual some_interface)::set(null, "some.path", "vif", some_if);
endmodule
我不喜欢这种方法的是我必须定义两次白盒信号,一次在接口中,一次在包装模块中。
有更清洁的方法吗?
【问题讨论】:
-
在任何人认为这种方法不可重用之前,在我的代码中,我将
set(...)的路径定义为模块采用的参数,该参数在绑定时分配。这意味着任何测试平台都可以绑定此模块并将其传递给适当的 UVM 组件。
标签: system-verilog uvm