HDL Coder™ позволяет вам просмотреть эффект оптимизации HDL и настроек блока в сгенерированной модели.
Прежде, чем сгенерировать код, HDL Coder создает поведенческую модель HDL-кода, названного generated model. Сгенерированная модель является промежуточной моделью, которая получает точное циклом и битно-истинное поведение сгенерированного кода в области и оптимизации синхронизации во время генерации кода. Это показывает задержку и числовые различия между вашим Simulink® DUT и сгенерированный HDL-код. Задержки, что вставки генератора кода подсвечены в сгенерированной модели в различных цветах. См. приведенную ниже таблицу для различных задержек генерации кода, соответствующего цвета подсветки, и как задержки называют в сгенерированной модели.
Задержки | 'HighlightColor' | Соглашение о присвоении имен |
---|---|---|
| Голубой | Блок подсвечен в голубом цвете. блоки Delay в этом блоке используют имя по умолчанию |
Зеленый | Ограниченная выходная конвейеризация: rd_n | |
Оранжевый |
|
С синхронизацией и оптимизацией области, сгенерированная модель существенно отличается от исходной модели. Например, вы видите дополнительные целочисленные задержки рядом с блоками, если вы запрашиваете оптимизацию и дополнительные сбалансированные задержки везде, где необходимо обеспечить точность алгоритма. Вы видите дополнительные уровни в модели, если вы запрашиваете оптимизацию разделения ресурсов или потоковой передачи, где тот же оператор является временем, мультиплексированным через несколько операций.
Сгенерированная модель используется в генерации испытательного стенда RTL. Входной стимул и выходной ответ получены из сгенерированной модели вместо исходной модели, потому что сгенерированная модель отражает алгоритмы, синхронизирующие изменения, требуемые для оптимизации. Если вы отключаете генерацию модели, вы не можете сгенерировать испытательный стенд в HDL Coder.
После генерации кода сгенерированная модель сохранена в целевой папке. По умолчанию сгенерированным префиксом модели является gm_
. Например, если вашим именем модели является myModel
, вашим сгенерированным именем модели является gm_
myModel
.
Чтобы настроить префикс сгенерированного имени модели, используйте GeneratedModelNamePrefix
свойство с makehdl
или hdlset_param
. Смотрите Префикс для сгенерированного имени модели.
Можно также задать различные варианты для именования и размещения сгенерированной модели. Смотрите Именование и Параметры макета для Генерации Модели.
Поскольку сгенерированная модель часто существенно отличается от исходной модели, кодер может также создать validation model, чтобы сравнить исходную модель со сгенерированной моделью. Модель валидации вставляет задержки при выходных параметрах исходной модели, чтобы компенсировать различия в задержке и сравнивает выходные параметры этих двух моделей. Когда вы симулируете модель валидации, числовые различия в выходных данных инициировали утверждение.
Используя модель валидации, можно проверить, что выход оптимизированного DUT битно-верен для результатов, приведенных исходным DUT.
Модель валидации содержит:
Сгенерированная модель.
Исходная модель, которая имеет компенсацию вставленных задержек.
Исходные входные параметры, направленные к исходной модели и сгенерированной модели.
Осциллографы для того, чтобы выдержать сравнение и просмотреть выводы исходной модели и сгенерированной модели.
Некоторые архитектуры блока и оптимизация вводят задержку. Например, для блока Reciprocal, можно задать архитектуры блока HDL, которые реализуют метод Ньютона-Raphson. Метод Ньютона-Raphson является итеративным, таким образом блокируйте архитектуры, которые используют его, мультицикл и вводит задержку на блочной скорости.
Точно так же данные мультиплексирования времени оптимизации области разделения ресурсов по ресурсу общего оборудования, который вводит локальный многоскоростной и задержка на сверхдискретизированном уровне.
Архитектуры блока HDL могут ввести числовые различия. Например:
Свойство блока HDL, такое как InputPipeline задало на блоке, или определенных архитектурах HDL или оптимизации такой, как распределено конвейеризация, которая перемещает задержки с входом блока.
Метод Ньютона-Raphson является приближением. Если вы выбираете реализацию блока Newton-Raphson, сгенерированная модель показывает изменение в численных данных.
Реализации HDL для блоков обработки сигналов, таких как фильтры, могут изменить численные данные.
См. также Определяют местоположение Числовых Различий После Оптимизации Скорости.
В диалоговом окне Configuration Parameters, в 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 не имеет никаких несвязанных выходных портов. Смотрите Оконечный Несвязанный Блок Выходные параметры и Использование Комментария Блоков.