Генерация HDL-кода и синтез FPGA из модели Simulink

В этом примере показано, как можно сгенерировать HDL-код для модели простого счетчика и синтезировать сгенерированный код на Xilinx® FPGA при помощи Simulink® HDL Workflow Advisor. Чтобы создать эту модель, смотрите Создание HDL-совместимой модели Simulink.

Функции Simulink HDL Workflow Advisor

HDL Workflow Advisor поможет вам посредством генерации HDL-кода для подсистемы Simulink и процесса проекта FPGA, такого как:

  • Проверка модели на совместимость генерации HDL-кода и автоматическое исправление несовместимых настроек.

  • Генерация HDL-кода, испытательного стенда и скриптов для создания и запуска кода и испытательного стенда.

  • Генерация косимуляции или испытательных стендов DPI SystemVerilog и покрытия кода (требует HDL Verifier™).

  • Синтез и анализ времени путем интегрирования с сторонними инструментами синтеза.

  • Обратная аннотация модели с информацией о критическом пути и другой информацией, полученной во время синтеза.

  • Завершите автоматизированные рабочие процессы для выбранных целевых устройств разработки FPGA и рабочего процесса ввода-вывода Simulink Real-Time™ FPGA, включая симуляцию FPGA в цикле.

Простая модель счетчика

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

Настройка пути инструмента

Чтобы синтезировать проект на целевой платформе, прежде чем открыть HDL Workflow Advisor и запустить рабочий процесс, настройте путь к инструменту синтеза. Этот пример использует Xilinx Vivado®, так что вы, должно быть, уже установили Xilinx Vivado. Чтобы задать путь инструмента, используйте hdlsetuptoolpath функция для указания на установленный исполняемый файл Xilinx Vivado 2019.2.

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath',...
 'C:\Xilinx\Vivado\2019.2\bin\vivado.bat');
Если вы используете другой инструмент синтеза, задайте путь к этому инструменту синтеза при помощи hdlsetuptoolpath. Сведения о новейших поддерживаемых инструментах см. в разделах Поддержка языка HDL и Поддерживать Сторонних программах и оборудование.

Если вы хотите сгенерировать HDL-код, но не синтезируете свой проект, вам не нужно настраивать путь инструмента.

Откройте HDL Workflow Advisor

Чтобы запустить HDL Workflow Advisor из модели Simulink,

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

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

Когда вы открываете HDL Workflow Advisor, генератор кода может предупредить, что папка проекта несовместима. Чтобы открыть Advisor, выберите Remove and continue.

HDL Workflow Advisor отображает группу задач на левой панели, сгруппированных по папкам. Расширение папок показывает доступные задачи в каждой папке. При выборе задачи или папки на правой панели отображаются сведения об этой задаче или папке. Правая панель имеет простые элементы управления для выполнения задачи с несколькими параметрами и опциями для генерации кода или испытательного стенда, и содержит область отображения для сообщений о состоянии и других результатов задачи.

Чтобы узнать больше о каждой отдельной задаче, щелкните правой кнопкой мыши эту задачу и выберите What's This?.

См. Начало работы с HDL Workflow Advisor.

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

  1. На шаге Set Target > Set Target Device and Synthesis Tool, для Synthesis tool, выберите Xilinx Vivado и выберите Run This Task. См. также раздел Рабочие процессы в HDL Workflow Advisor. Чтобы сгенерировать HDL-код, но не синтезировать код, оставьте параметр Synthesis tool равным No Synthesis Tool Specified.

  2. В Set Target Frequency задаче задайте целевую частоту, которую вы хотите достичь в проекте, используя Целевой параметр частоты. В данном примере установите Target Frequency (MHz) равным 200.

  3. Чтобы проверить модель на совместимость генерации кода, запустите задачи в папке Prepare Model For HDL Code Generation. Щелкните правой кнопкой мыши Check Sample Times задачу и выберите Run to Selected Task. Если выполнение задачи генерирует предупреждение, выберите Modify All и повторите задачу.

  4. Чтобы изменить генерацию кода, используйте задачи в Set Code Generation Options. Например, чтобы настроить целевой язык HDL и целевую папку генерации кода, используйте Set Basic Options задачу. После внесения изменений нажмите кнопку Apply.

  5. Чтобы сгенерировать код, щелкните правой кнопкой мыши Generate RTL Code and Testbench задачу и выберите Run to Selected Task.

Выполните синтез и анализ FPGA

  1. В FPGA Synthesis and Analysis Perform Synthesis and P/R > Run Implementation > Skip this task очистите и нажмите Apply. Затем щелкните правой кнопкой мыши эту задачу и выберите Run to Selected Task.

    Задача отображает количество ресурсов, расходуемых проектом, и задержку пути данных. Ослабление - это различие между необходимым временем и временем прибытия для комбинационного пути. При этом слабина является положительным значением, а значит, данные поступили гораздо раньше необходимого времени.

    Resource and timing report summary information.

  2. Щелкните правой кнопкой мыши Annotate Model with Synthesis Result и выберите Run to Selected Task. Если вы выбрали Intel Quartus Pro или Microsemi Libero SoC как Synthesis tool, Annotate Model with Synthesis Result задача недоступна. Чтобы увидеть критический путь, запустите рабочий процесс для синтеза, а затем откройте отчеты о синхронизации.

Просмотрите аннотированный критический путь в модели.

Критический путь является комбинационным путем между входом и выходом, который имеет максимальную задержку. Критическая задержка пути для модели счетчика 2.77ns. Задержка пути данных, сообщенная в Run Implementation задаче, больше, чем критический путь, поскольку он учитывает задержки маршрутизации на целевом FPGA. Чтобы сэкономить ресурсы, оптимизируйте критический путь и улучшите сроки вашего проекта на целевом FPGA, используйте оптимизацию скорости и площади в HDL- Coder™. Дополнительные сведения см. в разделе Оптимизация скорости и площади в HDL Coder.

Запуск рабочего процесса в командной строке с помощью скрипта

Запуск рабочего процесса HDL в MATLAB® в командной строке экспортируйте настройки Workflow Advisor в скрипт. Чтобы экспортировать в скрипт, в окне HDL Workflow Advisor выберите File > Export to Script. В диалоговом окне Export Workflow Configuration введите имя файла и сохраните скрипт. См. раздел Запуск рабочего процесса HDL со скриптом.

См. также

| |

Похожие темы

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