exponenta event banner

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

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

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

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

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

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

В этом примере используется модуль Speedgoat IO397-50k. См. раздел Поддержка Speedgoat FPGA с помощью консультанта по рабочим процессам HDL.

Настройка и настройка

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

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

Затем установите путь к установленному исполняемому файлу 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 Library и пакеты интеграции кодеров HDL Speedgoat. См. раздел Установка пакетов интеграции кодеров HDL Speedgoat.

Консультант по рабочим процессам HDL

Консультант по рабочим процессам HDL помогает создавать коды HDL и разрабатывать FPGA. Используйте Advisor для:

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

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

  • Выполните анализ синтеза и синхронизации.

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

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

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

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

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

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

open_system('dslrtSGFPGAloopback_fpga')

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

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

Создание модели интерфейса Simulink в режиме реального времени для платформы Speedgoat IO397

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

hdladvisor('hdlcoder_slrt_loopback/loopback')

2. Разверните папку Set Target. В задаче Задать целевое устройство и средство синтеза укажите целевой рабочий процесс как Simulink Real-Time FPGA I/O и целевая платформа в качестве Speedgoat IO397-50k. Щелкните правой кнопкой мыши задачу «Задать целевую ссылочную конструкцию» и выберите команду «Выполнить до выбранной задачи».

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. Разверните задачу Загрузить в конечный объект. Щелкните правой кнопкой мыши задачу создания интерфейса Simulink в реальном времени и выберите команду Выполнить до выбранной задачи.

Эта задача создает код RTL и ядро IP, битовый поток FPGA и модель интерфейса Simulink в реальном времени. В задаче Создать проект откройте проект Vivado, чтобы увидеть реализованный дизайн блока.

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

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

Модель интерфейса Simulink-Real Time содержит маскированную подсистему, имя которой совпадает с именем подсистемы в модели домена 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 для каждой платы.

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

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

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

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

Связанные темы