Программирование и строение FPGA на программируемых модулях ввода-вывода Speedgoat Simulink

В этом примере показано, как реализовать алгоритм Simulink ® на программируемом Speedgoat Simulink модуле ввода-вывода с помощью HDL Workflow Advisor. Вы запускаете Simulink Real-Time FPGA IO рабочий процесс по адресу:

  1. Укажите модуль ввода-вывода FPGA и его интерфейсы.

  2. Синтезируйте алгоритм Simulink для программирования FPGA.

  3. Сгенерируйте модель подсистемы интерфейса Real-Time™ Simulink ®.

Модель подсистемы интерфейса содержит блоки для программирования FPGA и связи с модулем FPGA через шину PCIe во время выполнения приложения реального времени. Вы добавляете сгенерированную подсистему к модели области Simulink Real-Time.

Этот пример использует модуль Speedgoat IO397-50k. Смотрите раздел Поддержка Speedgoat FPGA с помощью HDL Workflow Advisor.

Setup и строение

Перед развертыванием алгоритма на модуле Speedgoat IO:

1. Установите последнюю версию Xilinx ® Vivado ®, указанную в HDL Language Support и поддерживаемых сторонних программах и оборудовании.

Затем установите инструмент путь к установленному исполняемому файлу Xilinx Vivado при помощи hdlsetuptoolpath функция.

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','C:\Xilinx\Vivado\2019.2\bin\vivado.bat')

2. Для симуляции в реальном времени настройте среду разработки и настройки целевого компьютера. См. Запуск с Simulink Real-Time (Simulink Real-Time).

3. Установите библиотеку Speedgoat и пакеты Speedgoat HDL Coder Integration. См. раздел Установка пакетов HDL Coder Интегрирование Speedgoat.

HDL Workflow Advisor

HDL Workflow Advisor поможет вам с генерацией HDL-кода и процессом проекта FPGA. Используйте Advisor для:

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

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

  • Выполните синтез и временной анализ.

  • Развертывание сгенерированного кода на модулях SoCs, FPGA и Speedgoat ввода-вывода.

Чтобы открыть HDL Workflow Advisor для подсистемы в модели, используйте hdladvisor функция.

load_system('sschdlexTwoLevelConverterIgbtExample')
hdladvisor('sschdlexTwoLevelConverterIgbtExample/Simscape_system')

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

Модель области закольцовывания Simulink

Модель области Simulink имеет подсистему, которая содержит алгоритм для программирования на чип FPGA. Используйте эту модель, чтобы протестировать алгоритм FPGA в среде симуляции, прежде чем вы загрузите алгоритм на плату FPGA. В этом случае модель является циклическим тестом.

open_system('dslrtSGFPGAloopback_fpga')

Эта модель является вашей областью FPGA. Он представляет частоту выборки симуляции синхроимпульса на вашей плате FPGA. The loopback Подсистема содержит алгоритм для загрузки на FPGA. Тип данных и количество входа и выхода линий модели сконфигурированы, чтобы соответствовать Speedgoat IO397-50k платформы.

open_system('hdlcoder_slrt_loopback')
set_param('hdlcoder_slrt_loopback', 'SimulationCommand', 'Update')

Сгенерируйте модель интерфейса Simulink Real-Time для IO397 платформы Speedgoat

1. Откройте HDL Workflow Advisor для loopback подсистема. Эта подсистема загружена в FPGA.

hdladvisor('hdlcoder_slrt_loopback/loopback')

2. Разверните папку Set Target. В задаче Set Target Device и Synthesis Tool задайте Целевой рабочий процесс следующим Simulink Real-Time FPGA I/O и целевую платформу как Speedgoat IO397-50k. Щелкните правой кнопкой мыши задачу Set Target Reference Design и выберите Run to Selected Task.

3. В задаче Set Target Interface сопоставьте порты hwIn и hwOut на IO397_TTL [0:13] и pciRead C0-C4 и pciWrite C0-C4 на PCIe interface. Щелкните Запустить эту задачу.

4. Запустите задачу Set Target Frequency с набором значений по умолчанию для Target Frequency (МГц). Целевая частота должна быть в области значений частотной области значений (МГц).

5. Разверните задачу «Загрузить в цель». Щелкните правой кнопкой мыши задачу интерфейса Generate Simulink Real-Time и выберите Run to Selected Task.

Эта задача генерирует код RTL и IP-ядро, битовый поток FPGA и модель Simulink Real-Time Interface. В задаче Create Project откройте проект Vivado, чтобы увидеть реализованный дизайн блоков.

Интегрирование и выполнение подсистемы в реальном времени

После выполнения задачи интерфейса Generate Simulink Real-Time щелкните ссылку, чтобы открыть модель интерфейса Simulink Real-Time.

Модель Simulink-Real Time Interface содержит маскированную подсистему, которая имеет то же имя, что и подсистема в модели области Simulink FPGA. Эта подсистема является подсистемой Simulink Real-Time Interface, которая содержит алгоритм, который загружается в FPGA. Используйте сгенерированную модель Simulink Real-Time Interface или создайте модель Simulink Real-Time Domain и скопируйте подсистему Simulink Real-Time Interface в эту модель, чтобы симулировать алгоритм FPGA на целевой машине Speedgoat.

В маске подсистемы интерфейса Simulink Real-Time установите три параметра:

  • Индекс устройства

  • PCI- паза

  • Шаг расчета

Когда целевое устройство имеет одну плату ввода-вывода FPGA, оставьте индекс устройства равным значению по умолчанию. Для нескольких плат ввода-вывода FPGA укажите уникальный индекс устройства. Если две или более платы имеют одинаковый тип, укажите паз PCI для каждой платы.

Для проверки в реальном времени можно записать сигналы и просмотреть результаты симуляции в Данные моделирования Inspector.

  1. На вкладке REAL-TIME откройте Simulink Real-Time Explorer и укажите настройки подключения к целевому интерфейсу. Для получения примера смотрите Оборудование в цикле Реализация модели Simscape на ввод-вывод модулях Speedgoat FPGA.

  2. На вкладке REAL-TIME нажмите Run on Target, чтобы создать и загрузить приложение Simulink Real-Time. Приложение реального времени загружается на целевую машину Speedgoat, а битовый поток алгоритма FPGA загружается на FPGA.

Затем можно просмотреть результаты симуляции в Данные моделирования Inspector.

Похожие темы