Существует ли эквивалентная конструкция для this
для SystemVerilog интерфейсов?«этот» эквивалент для интерфейсов SystemVerilog
То, что я хотел бы сделать, это привязка интерфейса внутри некоторого ИУ блока, а затем передать его с помощью УВМ конфигурации БД в качестве виртуального интерфейса:
bind some_block some_interface(...);
interface some_interface(...);
initial
`uvm_config_db #(virtual some_interface)::set(null, "some.path", "vif", this);
endinterface
Обходной я имею в месте должен определить модуль оболочки, инстанцирует интерфейс, а затем делает набор конфигурации DB:
module some_interface_wrapper(...);
some_interface some_if(...);
initial
`uvm_config_db #(virtual some_interface)::set(null, "some.path", "vif", some_if);
endmodule
что мне не нравится с этим подходом является то, что я должен определить Whitebox сигналы дважды, один раз в интерфейсе и один раз в модуль обертки.
Есть ли более чистый способ сделать это?
Прежде чем кто-нибудь сообщит, что этот подход не может быть повторно использован, в моем коде у меня есть путь к 'set (...)', определенный как параметр, который принимает модуль, который присваивается при его привязке. Это означает, что любой испытательный стенд может связывать этот модуль и передавать его соответствующему компоненту UVM. –