Сгенерируйте модель программного интерфейса для зондирования и быстрого прототипирования HDL IP Core

Когда вы запускаете рабочий процесс совместного проектирования аппаратного и программного обеспечения для однокристальных платформ, вы генерируете HDL-ядро IP для алгоритма DUT, а затем интегрируете IP-ядро в исходный проект. Смотрите рабочий процесс «Совместное проектирование аппаратного и программного обеспечения» для однокристальных платформ.

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

Необходимые условия

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

  • Последняя версия стороннего инструмента синтеза, такого как Xilinx® Vivado®. См. раздел Поддержка языка HDL и поддерживаемые Сторонние программы и оборудование. В вашем MATLAB® сеанс, установите путь к установленному инструменту синтеза при помощи hdlsetuptoolpath функция.

  • Если вы генерируете модель интерфейса программного обеспечения, установите Embedded Coder® и Simulink® Coder™.

  • Установите пакеты поддержки HDL Coder™ и Embedded Coder для целевой платформы. На панели инструментов MATLAB нажмите кнопку Home > Add-Ons > Get Add-Ons. См. Раздел «Получение и управление дополнениями».

Сгенерируйте программный интерфейс

При запуске рабочего процесса генерации ядра IP можно сгенерировать скрипт и модель интерфейса программного обеспечения из интерфейса HDL Workflow Advisor или в командной строке.

В пользовательском интерфейсе в задаче Embedded System Integration > Generate Software Interface установите флажок Generate Software interface model.

Если вы нацелены на автономные платы FPGA, вы не можете сгенерировать модель интерфейса программного обеспечения. Вместо этого можно сгенерировать скрипт программного интерфейса и протестировать IP-ядро с помощью драйвера MATLAB AXI Master.

  1. В задаче Set Target Reference Design установите Insert JTAG MATLAB as AXI Master на on. Запустите рабочий процесс к Generate Software Interface задаче.

  2. В Generate Software Interface задаче установите флажок Generate Software interface script и запустите эту задачу.

В командной строке экспортируйте настройки HDL Workflow Advisor в скрипт, а затем используйте эти свойства с объектом Workflow Configuration. Этот скрипт задает выполнение задачи программного интерфейса путем генерации модели и скрипта. Если вы пропустите задачу, задав значение false для RunTaskGenerateSoftwareInterface, то модель и скрипт не генерируются. Смотрите Рабочий процесс настройки и запуска генерации IP-ядра с помощью скрипта.

% Export Workflow Configuration Script

% ...

%% Load the Model
load_system('hdlcoder_led_blinking');

%% Model HDL Parameters
% Set Model HDL parameters

% ...

hdlset_param('hdlcoder_led_blinking', 'SynthesisTool', 'Xilinx Vivado');
hdlset_param('hdlcoder_led_blinking', 'Workflow', 'IP Core Generation');

% ...

% Set Workflow tasks to run
hWC.RunTaskGenerateSoftwareInterface = true;
hWC.GenerateSoftwareInterfaceModel = true;
hWC.GenerateSoftwareInterfaceScript = true;

% ...

%% Run the workflow
hdlcoder.runWorkflow('hdlcoder_led_blinking/led_counter', hWC);

Модель интерфейса программного обеспечения

Когда вы запускаете рабочий процесс для SoC-платформ, генерируется модель интерфейса программного обеспечения, чтобы протестировать функциональность IP-ядра HDL. Если у вас установлены Embedded Coder и Simulink Coder, можно сгенерировать встраиваемый код из модели и создать и запустить исполняемый файл на процессоре ARM. Когда вы нацелены на автономные платы FPGA, вы не можете сгенерировать модель программного интерфейса, потому что платы не имеют встроенного процессора ARM. Вместо этого сгенерируйте скрипт программного интерфейса для тестирования IP-ядра с помощью MATLAB AXI Master.

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

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

Откройте модель hdlcoder_sfir_fixed_stream. Эта модель сопоставляет sfir_fixed модели упрощенного протокола AXI4-Stream путем вставки Valid сигнал как входной порт управления.

open_system('hdlcoder_sfir_fixed_stream')

Streaming symmetric FIR filter model.

  1. Откройте HDL Workflow Advisor для подсистемы DUT. В Set Target Device and Synthesis Tool задаче задайте IP Core Generation как Target workflow и ZedBoard, как Target platform. Нажмите Run this task.

  2. В Set Target Reference Design задаче задайте систему по умолчанию с AXI4-Stream интерфейсом в качестве Target Reference Design. Нажмите Run this task.

  3. В Set Target Interface задаче сопоставьте порты DUT с целевыми интерфейсами в таблице интерфейсов целевой платформы. Нажмите Run this task.

    Map target platform interfaces for DUT subsystem in FIR filter streaming model.

  4. Щелкните правой кнопкой мыши Generate Software Interface задачу и выберите Run to selected task. Запустите рабочий процесс, чтобы сгенерировать модель программного интерфейса.

Модель сгенерированного программного обеспечения интерфейса имеет имя gm_hdlcoder_sfir_fixed_stream_interface.slx. Потому что ваша исходная модель использует скалярные порты для портов данных x_in_data и y_out_dataзадача Generate software interface отображает предупреждение о том, что блоки драйверов AXI4-Stream IIO не генерируются автоматически в модели интерфейса программного обеспечения. Можно либо вставить блоки драйверов из библиотеки пакета поддержки Embedded Coder для целевой платформы в браузер библиотеки Simulink, либо перезапустить рабочий процесс, сопоставив порты данных с векторными сигналами. Чтобы увидеть модель интерфейса программного обеспечения, в которую вставлена AXI4-Stream блоков драйверов IIO, откройте hdlcoder_sfir_fixed_stream_sw. Модель использует блоки AXI4-Stream IIO Write (Embedded Coder Support Package for Xilinx Zynq Platform) и AXI4-Stream IIO Read (Embedded Coder Support Package for Xilinx Zynq Platform) для портов данных. Порты фильтра сопоставлены с AXI4-Lite блоками драйверов.

open_system('hdlcoder_sfir_fixed_stream_sw')

Generated software interface model with additional AXI4-Stream Driver blocks mapped to DUT ports.

Сконфигурируйте модель с временем остановки inf. На вкладке Hardware отображаются аппаратные настройки, заданные в модели. Затем можно подключиться, создать и запустить приложение на целевой платформе, чтобы проверить функциональность ядра IP HDL. См. «Начало работы с AXI4-Stream интерфейсом» в рабочем процессе Zynq.

См. также

Объекты

Функции

Похожие темы