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