【问题标题】:'this' equivalent for SystemVerilog interfacesSystemVerilog 接口的“this”等价物
【发布时间】: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


【解决方案1】:

有一个proposal 可以使用向上引用来代替它,但还没有最终确定。

【讨论】:

  • 所以我想我必须等到 2020 年才能做到这一点。到时候我会坚持我的方法。
  • 一些供应商已经实现了这样的功能。直接与他们交谈。
猜你喜欢
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 2017-08-04
  • 2012-08-10
  • 2021-06-22
  • 2011-05-25
  • 2016-07-04
  • 2020-05-16
相关资源
最近更新 更多