Можете ли вы использовать ключевое слово SystemVerilog bind
, чтобы связать модуль с любой иерархией, для которой он требуется? (Для этого необходимо использовать SystemVerilog и иметь лицензию на симулятор.)
Использование bind похоже на создание экземпляра модуля обычным способом, за исключением того, что вы указываете путь к иерархии, в которую создается модуль «дистанционно»:
bind top.my.hier my_module instance_name(.*);
bind top.my_other.hier my_module instance_name(.*);
Еще лучше: предположим, что каждая иерархия, к которой вы привязываетесь, является отдельным экземпляром одного и того же модуля. Тогда:
bind remote_module my_module instance_name(.*);
Это связывает ваш модуль с каждым экземпляром цели, независимо от того, где он находится в дизайне. Это очень полезно, если ваш модуль является проверочным средством проверки.