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