Внешний Pullup в интерфейсе Systemverilog - PullRequest
1 голос
/ 27 сентября 2019

Я хочу смоделировать внешнее подтягивание в моем интерфейсе.

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.

В настоящее время я использую === для сравнения, потому что примитивы не работают в интерфейсе.

Есть ли лучший способ, как я полагаю, использование=== следует избегать?

Также мое основное приложение - использовать эту сеть в задачах класса через виртуальный интерфейс.

1 Ответ

1 голос
/ 27 сентября 2019

Нет необходимости делать это, если вы просто измените объявление a_out на

tri1 a_out;
...