Сгенерированная модель и модель валидации

HDL Coder™ позволяет вам просмотреть эффект оптимизации HDL и настройки блоков в сгенерированной модели.

Сгенерированная модель

Перед генерацией кода HDL Coder создает поведенческую модель HDL-кода, называемую generated model. Сгенерированная модель является промежуточной моделью, которая захватывает точное по циклу и битовое поведение сгенерированного кода в оптимизации области и времени во время генерации кода. Он показывает задержки и числовые различия между вашим Simulink® DUT и сгенерированный HDL-код. Задержки, которые вставляются генератором кода, подсвечиваются в сгенерированной модели различными цветами. В таблице ниже приведены различные задержки в генерации кода, соответствующий цвет подсветки и имя задержек в сгенерированной модели.

ЗадержкиПодсветка цветаСоглашение об именовании
  • Реализация блока

  • Отображение ОЗУ

Голубой

Блок подсвечивается голубым цветом. Delay блоках этого блока используется имя по умолчанию Delay и не подсвечиваются.

Ограниченный выходконвейеризации

ЗеленыйОграниченная выходная конвейеризация: rd_n
Оранжевый
  • Распределённая конвейеризация: rd_n

  • Входная конвейеризация: in_n_pipe_in_pipe и выходная конвейеризация: out_n_pipe_in_pipe

  • Балансировка задержки: delayMatch

  • Тактовая частота конвейеризации: rd_n

  • Адаптивная конвейеризация: HwModeRegister на блок входах и PipelineRegister на выходе блока.

С оптимизацией по времени и площади сгенерированная модель существенно отличается от исходной модели. Например, вы можете увидеть дополнительные целочисленные задержки рядом с блоками, если вы запрашиваете оптимизацию и дополнительные сбалансированные задержки, где это необходимо для поддержания точности алгоритма. Вы видите дополнительные скорости в модели, если вы запрашиваете совместное использование ресурсов или потоковую оптимизацию, где один и тот же оператор - это время, мультиплексированное через несколько операций.

Сгенерированная модель используется в генерации теста 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. Имя модели валидации смотрите в Суффиксе.

Ограничения

Похожие темы