2015-04-27 2 views
2

Существует ли эквивалентная конструкция для 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 сигналы дважды, один раз в интерфейсе и один раз в модуль обертки.

Есть ли более чистый способ сделать это?

+0

Прежде чем кто-нибудь сообщит, что этот подход не может быть повторно использован, в моем коде у меня есть путь к 'set (...)', определенный как параметр, который принимает модуль, который присваивается при его привязке. Это означает, что любой испытательный стенд может связывать этот модуль и передавать его соответствующему компоненту UVM. –

ответ

2

Существует proposal, чтобы использовать обратную ссылку вместо этого, но ничего не было доработано.

+1

Так что, я думаю, мне придется подождать до 2020 года, чтобы это сделать. Теперь я буду придерживаться своего подхода. –

+1

Некоторые производители уже внедрили что-то, что делает это. Поговорите с ними напрямую. –

Смежные вопросы