Ссылка модели в вашей подсистеме DUT позволяет:
Разделите большой проект в иерархию меньших проектов для повторного использования, модульной разработки и ускоренной симуляции.
Инкрементно сгенерируйте и тестовый код.
HDL Coder™ инкрементно генерирует код для моделей, на которые ссылаются, согласно Configuration Parameters dialog box> Model Referencing pane> опции Rebuild.
Однако HDL Coder обрабатывает If any changes detected
и If any changes in known dependencies detected
как то же самое. Например, если вы устанавливаете Rebuild на любой If any changes detected
или If any changes in known dependencies detected
, HDL Coder регенерирует код для моделей, на которые ссылаются, только, когда модели, на которые ссылаются, изменились.
Когда генерация кода, если вы сталкиваетесь с вводом или конфликтами по совпадению имен между векторными портами при взаимодействии через интерфейс с двумя или больше сгенерированными модулями VHDL® кода, рассматривает использование ScalarizePorts
свойство сгенерировать неконфликтные определения порта. Для получения дополнительной информации смотрите порты вектора Scalarize.
Можно сгенерировать HDL-код для модели, на которую ссылаются, с помощью пользовательского интерфейса или командной строки.
Щелкните правой кнопкой по блоку Model и выберите HDL Code> HDL Block Properties.
Для Architecture выберите ModelReference.
Сгенерируйте HDL-код от своей подсистемы DUT.
Установите Architecture
свойство блока Model к ModelReference
. Например, для подсистемы DUT, mydut
, это включает модель - ссылку, referenced_model
, введите эту команду:
hdlset_param ('mydut/referenced_model', ... 'Architecture', 'ModelReference');
Сгенерируйте HDL-код для своей подсистемы DUT.
makehdl ('mydut');
Сгенерировать один Verilog®
module
или VHDL entity
для экземпляров модели, на которую ссылаются, с различными значениями аргументов модели смотрите, Генерируют Параметрированный Код для Моделей, на которые Ссылаются.
Если вы вводите текст в поле Description диалогового окна Model Block Properties, HDL Coder генерирует комментарий в HDL-коде.
Блок Model должен иметь значения по умолчанию для Параметров блоков.
Блок Model не может быть подсистемой маскированной.
Ссылки многоуровневой модели, которые обращаются к той же модели, должны иметь те же свойства блока HDL.
Модели, на которые ссылаются, не могут быть защищенными моделями.
Иерархическая распределенная конвейеризация должна быть отключена.
HDL Coder не может переместить регистры через модель - ссылку. Поэтому модели, на которые ссылаются, могут запретить эту оптимизацию:
Распределенная конвейеризация
Ограниченная выходная конвейеризация
Потоковая передача
Когда вы имеете модели - ссылки и генерируете HDL-код, сгенерированную модель, модель валидации, и cosimulation модель может не скомпилировать или симулирует. Чтобы зафиксировать ошибки компиляции или симуляции, убедитесь, что модели, на которые ссылаются, загружаются или находятся на пути поиска файлов.
Кодер может применить оптимизацию разделения ресурсов, чтобы совместно использовать экземпляры модели, на которые ссылаются. Однако можно применить эту оптимизацию только, когда все модели - ссылки, которые указывают на ту же модель, на которую ссылаются, имеют тот же уровень после распространения уровня и оптимизации. Уровень финала модели - ссылки может отличаться от исходного уровня, но все модели - ссылки, которые указывают на ту же модель, на которую ссылаются, должны иметь тот же итоговый уровень.