Systemverilog 接口中的外部上拉

External Pullup in Systemverilog Interface

我想在我的界面中模拟一个外部上拉。

interface inter();
  wire a;
  wire a_out;

  assign (pull1, strong0) a = (a_out === 1'b0) ? 1'b0 : 1'b1;
  // assign (pull1, strong0) a = a_out;
  // pullup p1 (a_out);
endinterface

所以当a_out为0时,则a应为0,但当a_out为Z时,则a应上拉至1。

目前我正在使用 === 进行比较,因为基元在界面中不起作用。

有没有更好的方法,因为我认为应该避免使用 ===

此外,我的主要应用是通过虚拟接口在 class 任务中使用此网络。

如果您只是将 a_out 的声明更改为

,则无需执行任何操作
tri1 a_out;