Сгенерируйте HDL-код из модели Simulink

В этом примере показано, как можно сгенерировать HDL-код для простой встречной модели в Simulink®. Эта модель совместима для генерации HDL-кода. Чтобы создать эту встречную модель, смотрите, Создают Совместимую с HDL Модель Simulink.

Модели для генерации HDL-кода

Можно или создать собственную совместимую с HDL модель, такую как встречная модель или выбрать из:

  • Модели HDL Coder™ в качестве примера, доступные в hdlcoderdemos папка.

    cd (fullfile(matlabroot,'toolbox','hdlcoder','hdlcoderdemos'))

    Эти модели доступны на пути MATLAB®. Например, можно выбрать симметричную КИХ-Модель Фильтра. Использовать эту модель, введите:

    sfir_fixed

  • Simulink обрабатывает по шаблону для генерации HDL-кода. Можно использовать шаблоны для регистров модели, ROM, основных арифметических операций, комплексных множителей, сдвиговых регистров, и так далее.

    Чтобы выбрать ваш шаблон, на панели инструментов MATLAB, нажимают кнопку, и затем перешли к разделу HDL Coder. Смотрите Использование Шаблоны Simulink для генерации HDL-кода.

Прежде, чем сгенерировать HDL-код, можно проверять и обновить модель для совместимости HDL при помощи Советника по вопросам HDL-кода. Смотрите Совместимость HDL Проверки Модели Simulink Используя Советника по вопросам HDL-кода.

Простая встречная модель

Откройте эту модель, чтобы видеть простой счетчик. Модель подсчитывает от нуля до порогового значения и затем переносится назад, чтобы обнулить. Пороговое значение установлено в 15. Чтобы изменить пороговое значение, измените значение входа к count_threshold порт. Разрешать сигнал задает, рассчитывает ли счетчик вверх или содержит предыдущее значение. Значение 1 указывает, что счетчик рассчитывает вверх постоянно.

Сгенерируйте HDL-код

Для встречной модели, HDL_DUT подсистема является DUT. Сгенерировать код для DUT:

  1. Во вкладке Apps выберите HDL Coder.

  2. Выберите DUT Subsystem в своей модели и убедитесь, что это имя Subsystem появляется в опции Code for на вкладке HDL Code. Чтобы помнить выбор, прикрепите эту опцию. Нажмите Generate HDL Code.

По умолчанию HDL Coder генерирует код VHDL в целевом hdlsrc папка.

Сгенерируйте код Verilog

Сгенерировать код Verilog для встречной модели:

  1. Во вкладке HDL Code нажмите Settings.

  2. В панели HDL Code Generation, для Language, выбирают Verilog. Нажмите Apply и затем нажмите Generate.

HDL Coder компилирует модель прежде, чем сгенерировать код. В зависимости от параметров отображения модели, таких как типы данных порта, модель может изменение внешности после генерации кода. В то время как генерация кода продолжает, HDL Coder отображает сообщения о ходе выполнения в командной строке MATLAB со ссылками на конфигурацию модели и сгенерированные файлы. Чтобы просмотреть файлы в редакторе MATLAB, щелкните по ссылкам.

Процесс завершается и отображает сообщение:

### HDL Code Generation Complete.

Просмотрите файлы генерации HDL-кода

Значок папки для hdlsrc папка появляется в текущей папке. Чтобы просмотреть сгенерированный код и файлы скрипта, дважды кликните hdlsrc папка, и затем дважды кликает папку, которая имеет то же имя как модель для который вы сгенерированный HDL-код.

  • HDL_DUT.vhd: Код VHDL®, который содержит определение сущности и архитектуру RTL, реализующую счетчик, который вы спроектировали. Если вы сгенерировали код Verilog, вы получаете HDL_DUT.v файл.

  • HDL_DUT_compile.do: Наставник скрипт компиляции Graphics® ModelSim®.

  • HDL_DUT_map.txt: Отображение регистрирует, который сопоставляет сгенерированные сущности или модули в HDL-коде к подсистемам в модели, которая сгенерировала их. См., что Код Трассировки Использует Файл Отображения.

  • HDL_DUT_report.html: Отчет проверки HDL отображает состояние генерации HDL-кода и предупреждения или сообщения.

  • gm_hdlcoder_simple_up_counter.slx: Сгенерированная модель, которая поведенчески представляет HDL-код в среде моделирования Simulink.

HDL Coder создает поведенческую модель HDL-кода, названного generated model. Сгенерированное имя модели совпадает с исходной моделью и имеет префиксный gm_. Сгенерированная модель битно-верна и цикл - с точностью до сгенерированного HDL-кода. Эта модель показывает эффект реализаций блока и скорости и оптимизации области, что вы задали. См. также Скорость и Оптимизацию области в HDL Coder.

Открыть сгенерированную модель для счетчика, введите:

gm_hdlcoder_simple_up_counter

Для встречной модели, когда оптимизация отключена, сгенерированная модель идентична исходной модели.

Смотрите сгенерированный HDL-код

Чтобы идентифицировать отображение между исходной моделью и сгенерированным HDL-кодом более легко, сгенерируйте отчет трассируемости. Используйте отчет перейти от блока в вашей модели к сгенерированному коду для того блока и от кода до блока в вашей модели.

Сгенерировать отчет трассируемости:

  1. Во вкладке HDL Code нажмите Settings> Report Options.

  2. В HDL Code Generation> панель Report, выберите Generate traceability report, и затем сгенерируйте HDL-код для HDL_DUT подсистема

Generate traceability report check box selected in the Configuration Parameters dialog box.

После того, как вы сгенерируете код, окно Code Generation Report открывается. HDL Coder записывает файлы отчета генерации кода в hdlsrc\html\ папка папки сборки. Если вы закрываете отчет, можно перейти к этой папке, чтобы вновь открыть отчет.

Перейти от HDL-кода до модели:

  1. В Отчете Генерации кода перейдите к разделу Traceability Report, и затем щелкните по ссылкам в разделе Code Location.

  2. Выберите гиперссылку на строку кода, чтобы подсветить соответствующий блок в вашей модели.

Чтобы перейти от блока в вашей модели к HDL-коду, выберите тот блок, и затем нажмите кнопку Navigate to Code в разделе Review Results вкладки HDL Code.

Traceability report showing code-to-model and model-to-code navigation.

Смотрите перешли между моделью Simulink и HDL-кодом при помощи трассируемости и создают и используют отчеты генерации кода.

В разделе Generated Source Files, если вы кликаете по файлу HDL HDL_DUT, вы видите сигналы clkсброс, и clk_enable. Эти сигналы являются часами, сбросом, и часы включают сигналы, которые управляют триггерами на целевом компьютере. HDL Coder генерирует эти сигналы в коде в зависимости от последовательных элементов, таких как блоки Delay, которые вы используете в своей модели. Смотрите Генерацию Сигналов Пакета Часов в HDL Coder.

Подтвердите поведение HDL Используя модель валидации

Чтобы подтвердить поведенческую модель HDL-кода с вашей исходной моделью, сгенерируйте модель валидации. Модель валидации содержит обоих исходная модель и сгенерированная модель. Это сравнивает выходные параметры обеих моделей при помощи тестовых векторов, которые вы обеспечили в исходной модели.

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

  1. Во вкладке HDL Code нажмите Settings.

  2. Во вкладке HDL Code Generation> Global Settings> Model Generation выберите Validation model, и затем сгенерируйте HDL-код для HDL_DUT подсистема.

Configuration parameters option to select Validation model check box.

В журналах генерации кода вы видите ссылку на модель валидации. Модель валидации имеет тот же префикс как сгенерированная модель и также имеет суффиксный _vnl. Для встречной модели модель валидации имеет имя gm_hdlcoder_simple_up_counter_vnl.slx. Можно найти эту модель в той же папке как сгенерированная модель. Открыть эту модель, введите:

gm_hdlcoder_simple_up_counter_vnl

Validation model comparing output of generated model with original model.

После того, как вы симулируете модель, дважды кликаете Compare подсистема, и затем перешла в Assert_Out подсистема. Если вы открываете блок Scope, вы видите что err сигнал имеет значение нуля, что означает, что сгенерированная модель выводила соответствия исходная модель.

См. сгенерированную модель модели и валидации.

Проверьте сгенерированный HDL-код

Прежде чем вы развернете свой проект на целевом компьютере, проверите сгенерированный HDL-код. От hdlsrc папка, перейдите к текущей рабочей папке. Смотрите Проверяют Сгенерированный HDL-код из Модели Simulink.

Смотрите также

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте