HDL Coder™ позволяет вам просмотреть эффект оптимизации HDL и настройки блоков в сгенерированной модели.
Перед генерацией кода HDL Coder создает поведенческую модель HDL-кода, называемую generated model. Сгенерированная модель является промежуточной моделью, которая захватывает точное по циклу и битовое поведение сгенерированного кода в оптимизации области и времени во время генерации кода. Он показывает задержки и числовые различия между вашим Simulink® DUT и сгенерированный HDL-код. Задержки, которые вставляются генератором кода, подсвечиваются в сгенерированной модели различными цветами. В таблице ниже приведены различные задержки в генерации кода, соответствующий цвет подсветки и имя задержек в сгенерированной модели.
Задержки | Подсветка цвета | Соглашение об именовании |
---|---|---|
| Голубой | Блок подсвечивается голубым цветом. Delay блоках этого блока используется имя по умолчанию |
Зеленый | Ограниченная выходная конвейеризация: rd_n | |
Оранжевый |
|
С оптимизацией по времени и площади сгенерированная модель существенно отличается от исходной модели. Например, вы можете увидеть дополнительные целочисленные задержки рядом с блоками, если вы запрашиваете оптимизацию и дополнительные сбалансированные задержки, где это необходимо для поддержания точности алгоритма. Вы видите дополнительные скорости в модели, если вы запрашиваете совместное использование ресурсов или потоковую оптимизацию, где один и тот же оператор - это время, мультиплексированное через несколько операций.
Сгенерированная модель используется в генерации теста RTL. Входной стимул и выходной ответ получены из сгенерированной модели вместо исходной модели, потому что сгенерированная модель отражает изменения времени алгоритмов, необходимые для оптимизации. Если вы отключаете генерацию модели, вы не можете сгенерировать испытательного стенда в HDL Coder.
После генерации кода сгенерированная модель сохраняется в целевой папке. По умолчанию сгенерированный префикс модели gm_
. Для примера, если ваше имя модели myModel
, ваше имя сгенерированной модели gm_
myModel
.
Чтобы настроить префикс имени сгенерированной модели, используйте GeneratedModelNamePrefix
свойство с makehdl
или hdlset_param
. Сгенерированное имя модели смотрите в Префиксе.
Можно также задать различные опции для именования и размещения сгенерированной модели. Смотрите Размещение имен и Опций для генерации модели.
Поскольку сгенерированная модель часто существенно отличается от исходной модели, кодер может также создать validation model для сравнения исходной модели с сгенерированной моделью. Модель валидации вставляет задержки на выходах исходной модели, чтобы компенсировать различия задержек и сравнивает выходы двух моделей. Когда вы симулируете модель валидации, числовые различия в выходных данных запускают утверждение.
Используя модель валидации, можно проверить, что выход оптимизированного DUT верен битам результатов, полученных исходным DUT.
Модель валидации содержит:
Сгенерированная модель.
Вставлена исходная модель с компенсирующими задержками.
Исходные входы, маршрутизируемые к исходной модели и сгенерированной модели.
Возможности для сравнения и просмотра выходов исходной модели и сгенерированной модели.
Некоторые архитектуры блоков и оптимизация вводят задержки. Например, для блока Reciprocal можно задать архитектуры блоков, которые реализуют метод Ньютона-Рафсона. Метод Ньютона-Рафсона итеративен, поэтому блочные архитектуры, которая его использует, являются многоколесной и вводит задержку со скоростью блока.
Точно так же оптимизация по времени оптимизации области разделения ресурсов мультиплексирует данные по совместно используемому аппаратному ресурсу, который вводит локальную мультирациональность и задержку с повышенной частотой дискретизации.
Архитектуры блоков HDL могут вводить числовые различия. Для примера:
Свойство HDL-блока, такое как InputPipeline, заданное в блоке, или определенные архитектуры HDL или оптимизации, такие как распределённая конвейеризация, которое перемещает задержки на вход блока.
Метод Ньютона-Рафсона является приближением. Если вы выбираете реализацию блока Ньютона-Рафсона, сгенерированная модель показывает изменение цифр.
Реализации HDL для блоков обработки сигналов, таких как фильтры, могут изменять числа.
Смотрите также Поиск числовых различий после оптимизации скорости.
В диалоговом окне «Параметры конфигурации» на панели HDL Code Generation Global Settings > Model Generation > выберите Validation Model.
В HDL Workflow Advisor на панели HDL Code Generation > Generate RTL Code and Testbench включите Generate validation model.
Используйте GenerateValidationModel
свойство с makehdl
или hdlset_param
.
Чтобы настроить суффикс сгенерированного имени валидации, используйте ValidationModelNameSuffix
свойство с makehdl
или hdlset_param
. Имя модели валидации смотрите в Суффиксе.
Чтобы сгенерировать модель валидации, необходимо сгенерировать HDL-код для Подсистемы DUT. Генерация модели не поддерживается для генерации кода для всей модели вместо Подсистемы DUT.
Убедитесь, что подсистема DUT не имеет несвязанных выходных портов. См. «Завершение работы несоединенных блоков Выходов и Использование блоков с комментариями».