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

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

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

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

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

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

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

Setup и настройка

Прежде, чем развернуть ваш алгоритм на модуле Speedgoat IO:

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

Затем установите инструмент path на установленный исполняемый файл 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 и пакеты Интегрирования HDL Coder Speedgoat. Смотрите Установку Пакеты Интегрирования HDL Coder Speedgoat.

HDL Workflow Advisor

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

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

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

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

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

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

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

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

Петлевая модель предметной области 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 Real-Time для платформы Speedgoat IO397

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

hdladvisor('hdlcoder_slrt_loopback/loopback')

2. Расширьте папку Set Target. В задаче Инструмента Целевого устройства и Синтеза Набора задайте Целевой рабочий процесс как Simulink Real-Time FPGA I/O и Целевая платформа как Speedgoat IO397-50k. Щелкните правой кнопкой по Целевой задаче Исходного проекта Набора и выберите Run to Selected Task.

3. В Цели Набора Интерфейсная задача сопоставьте порты hwIn и hwOut к IO397_TTL [0:13] и pciRead C0-C4 и pciWrite C0-C4 к PCIe interface. Нажмите Run This Task.

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

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

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

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

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

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

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

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

  • Паз PCI

  • Размер шага

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

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

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

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

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

Похожие темы