Скажем, у меня есть чекер, который достигает $ root.i_dut и проверяет там некоторые сигналы. Тривиальный пример:Как подключить контролер к произвольному экземпляру?
module CheckOverflow(input logic clk);
assert property (@(posedge clk) $root.i_dut.overflow == 1'b0);
endmodule
Что делать, если я хочу использовать эту проверку в испытательном стенде, где вещь, которую я хочу, чтобы проверить, не обязательно инстанцирован как «$ root.i_dut»? Есть ли способ, скажем, передать ссылку на экземпляр на экземпляр проверки?
Кажется, что UVM решает эту проблему, используя интерфейсы. Мне интересно знать, есть ли способ сделать это, просто используя ссылки, а не интерфейсы.
Я попробую, хотя синтаксис выглядит наоборот по сравнению с примерами в SystemVerilog LRM 3.1a, раздел 17.15 (который довольно тонкий). Любые указатели на лучшую документацию, описывающие правильное использование «привязки»? –
@JonathanMayer Это может быть неправильно, я не знаю его наизусть, и я не открыл LRM. Не стесняйтесь исправить это после того, как вы заработаете. Обычно я ищу такие вещи в Google, и я заканчиваю сайтами asicworld.com или testbench.in –