В этом примере показано, как реализовать алгоритм Simulink ® на программируемом Speedgoat Simulink модуле ввода-вывода с помощью HDL Workflow Advisor. Вы запускаете Simulink Real-Time FPGA IO
рабочий процесс по адресу:
Укажите модуль ввода-вывода FPGA и его интерфейсы.
Синтезируйте алгоритм Simulink для программирования FPGA.
Сгенерируйте модель подсистемы интерфейса Real-Time™ Simulink ®.
Модель подсистемы интерфейса содержит блоки для программирования FPGA и связи с модулем FPGA через шину PCIe во время выполнения приложения реального времени. Вы добавляете сгенерированную подсистему к модели области Simulink Real-Time.
Этот пример использует модуль Speedgoat IO397-50k. Смотрите раздел Поддержка Speedgoat FPGA с помощью HDL Workflow Advisor.
Перед развертыванием алгоритма на модуле 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-кода и процессом проекта FPGA. Используйте Advisor для:
Проверьте модель на совместимость генерации HDL-кода и исправьте несовместимые настройки.
Сгенерируйте HDL-код, испытательный стенд и скрипты для создания и запуска кода и испытательного стенда.
Выполните синтез и временной анализ.
Развертывание сгенерированного кода на модулях SoCs, FPGA и Speedgoat ввода-вывода.
Чтобы открыть HDL Workflow Advisor для подсистемы в модели, используйте hdladvisor
функция.
load_system('sschdlexTwoLevelConverterIgbtExample') hdladvisor('sschdlexTwoLevelConverterIgbtExample/Simscape_system')
Левая панель Advisor содержит папки, представляющие группу связанных задач. При развертывании папок и выборе задачи сведения об этой задаче отображаются на правой панели. Правая панель содержит простые элементы управления для выполнения задачи к продвинутым параметрам и настройкам опций, которые управляют HDL-кодом и генерацией испытательного стенда. Чтобы узнать больше о каждой задаче, щелкните правой кнопкой мыши эту задачу и выберите «Что это?» См. Раздел «Начало работы с HDL Workflow Advisor».
Модель области 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')
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.
На вкладке REAL-TIME откройте Simulink Real-Time Explorer и укажите настройки подключения к целевому интерфейсу. Для получения примера смотрите Оборудование в цикле Реализация модели Simscape на ввод-вывод модулях Speedgoat FPGA.
На вкладке REAL-TIME нажмите Run on Target, чтобы создать и загрузить приложение Simulink Real-Time. Приложение реального времени загружается на целевую машину Speedgoat, а битовый поток алгоритма FPGA загружается на FPGA.
Затем можно просмотреть результаты симуляции в Данные моделирования Inspector.