Оборудование в цикле (HIL) реализация модели Simscape™ на модулях ввода-вывода FPGA Speedgoat

Этот пример показывает, как синтезировать и сгенерировать поток битов FPGA из simscape модели и загрузить поток битов на цель ввода-вывода Speedgoat для реализации HIL.

Введение

Реализация HIL Модели Simscape на вводе-выводе FPGA Speedgoat является тремя процессами шага.

  1. Сгенерируйте модель Simulink для реализации HDL из модели Simscape при помощи HDL Workflow Advisor Simscape.

  2. Сгенерируйте поток битов от предыдущего шага с помощью HDL Workflow Advisor

  3. Загрузите поток битов на ввод-вывод Speedgoat с помощью Simuling Проводник В реальном времени для Аппаратно-программного моделирования

Реализация Simulink™ модели Simscape

Этот пример показывает постепенный процесс, чтобы сгенерировать Модель Simulink из модели Simscape половины Выпрямителя Волны. Следующие шаги должны быть выполнены, чтобы сконфигурировать simspace модель:

1. Откройте Модель Simscpae. В командной строке MATLAB® войти

ModelName = 'sschdlexHalfWaveRectifierExample';
load_system(ModelName)
open_system(ModelName)
set_param(ModelName, 'SimulationCommand', 'update');

Модель Simscape половины Выпрямителя Волны состоит из Линейного (резистор) и блок Switched Linear (диод). Это имеет блоки конвертера PS Simulink во входе и блоки Конвертера Simulink PS в выходных портах. Чтобы проверить, что настройки решателя сконфигурированы правильно, откройте Блок Configuration Решателя, выберите Use локальный решатель и Backward Euler как тип Решателя в Блоке Configuration Решателя.

Следующие данные показывают результаты симуляции модели Simscape. Здесь, вход является синусоидой, и локальным шагом расчета решателя является 0.001.

2. Сконфигурируйте Половину Модели Выпрямителя Волны для совместимости HDL с помощью следующей команды:

hdlsetup(ModelName)

Теперь simscape модель готова к simulink модели или HDL implementaion образцовая генерация, от которой можно сгенерировать поток битов. Используйте HDL Workflow Advisor Simscape с этой целью. Чтобы открыть Советника, запустите следующую команду:

sschdladvisor(ModelName)

Это обновляет образцовый кэш советника и открывает HDL Workflow Advisor Simscape. Советник содержит следующие папки:

  • Совместимость Генерации кода: задачи в этой папке проверяют ли:

  1. Параметры конфигурации Решателя установлены правильно.

  2. Существует любой блок Switched Linear, используемый в simscape модели.

  • Преобразование пространства состояний: Это лавирует, представляет Модель Simscape в форме линейных режимов, где каждый режим представлен набором матриц пространства состояний. После передачи эта задача отображает количество состояний, входных параметров, выходных параметров, режимы и так далее.

  • Генерация модели Implementation: Эта задача генерирует модель реализации от дискретного представления пространства состояний и обеспечивает ссылку на сгенерированную модель. Откройте сгенерированную модель от этой ссылки. Сгенерированная модель должна быть похожей на следующую модель и названный как "gmStateSpaceHDL_sschdlexHalfWaveRectifierEx".

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

Чтобы узнать больше о HDL Workflow Advisor Simscape, смотрите, Генерируют HDL-код из Моделей Simscape

Сгенерируйте поток битов для платформы Speedgoat

Этот шаг объясняет задачи сгенерировать поток битов Половины Выпрямителя Волны для загрузки на модуль FPGA Speedgoat IO333-325K при помощи HDL Workflow Advisor. Модуль FPGA Speedgoat IO333 использует Инфраструктура IP Core Generation и Xilinx® Vivado®. Поэтому до выполнения Советника по вопросам Рабочего процесса, убедитесь, что вы задали путь к установленному исполняемому файлу Xilinx Vivado.

  • Setup и конфигурирует комплект проекта Xilinx Vivado:

Чтобы развернуть любую модель на цель Speedgoat, сначала необходимо установить и сконфигурировать Xilinx. В этом примере мы будем использовать Speedgoat FPGA IO333-325K, который использует Xilinx Vivado. Поэтому установите Комплект Проекта Xilinx Vivado v2018.2. Затем запустите следующую команду в окне команды MATLAB, чтобы установить инструмент path на установленный исполняемый файл Xilinx.

  hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','C:\Xilinx\Vivado\2018.2\bin\vivado.bat')
  • HDL Workflow Advisor:

Открытый HDL Workflow Advisor с помощью следующей команды:

  hdladvisor('gmStateSpaceHDL_sschdlexHalfWaveRectifierEx/HDL Subsystem')

HDL Workflow Advisor обеспечивает интерфейс, где пользователь может установить целевые параметры, подготовить модель к генерации HDL-кода и наконец сгенерировать соответствующий HDL-код или поток битов. Следующие задачи должны быть выполнены, чтобы сгенерировать и создать поток битов FPGA.

1. Поставленная цель:

В подзадаче Инструмента Целевого устройства и Синтеза Набора выбрать

  • Целевой рабочий процесс как ввод-вывод FPGA Simulink Real-Time, поскольку мы генерируем поток битов для цели Speedgoat.

  • Целевая платформа как Speedgoat IO333-325K

  • Инструмент Synthesis как Xilinx Vivado

В Целевой задаче Исходного проекта Набора выберите x4 как значение параметров для маршрутов PCIe

В Поставившей Целевой Интерфейсной задаче сопоставьте Ввод и вывод один порты типа данных с Интерфейсом PCIe

В Целевой задаче Частоты Набора, набор целевая частота как 100 МГц. Важно выбрать целевое скручивание жгутов частоты область значений во избежание ошибки в генерации потока битов. В этом примере мы выбираем целевую частоту как 100 МГц.

2. Подготовьте Модель К генерации HDL-кода: Эта задача делает модель готовой к генерации потока битов путем гарантирования, что правильные параметры были выбраны. Это имеет следующие подзадачи:

  • Проверяйте глобальную установку

  • Проверяйте алгебраические циклы

  • Проверяйте совместимость блока

  • Время контрольного образца

В Оптимизации цикла for подзадачи Совместимости Блока Проверки может быть предупреждение. Установка флажка предупреждений Ignore продолжит запускать задачу.

3. Интегрирование встраиваемой системы: Эта задача имеет "подзадачу" Потока битов FPGA Сборки, которая генерирует поток битов соответствующей simulink модели. Этот поток битов загружается на цель Speedgoat IO333.

4. Загрузка, чтобы Предназначаться: Наконец запустите Сгенерировать задачу Интерфейса Simulink Real-Time сгенерировать модель Simulink Real-Time Interface.

Для подробного понимания о том, как сгенерировать поток битов, смотрите, Развертывают Модели объекта управления Simscape.

После выполнения этой задачи сгенерирована новая модель Simulink Real-Time Interface, который подобен следующей модели и названный как gm_gmStateSpaceHDL_sschdlexHalfWaveRectifierEx_slrt:

Эта модель будет загружена на цель Speedgoat. После завершения последнего шага рабочий процесс может быть сохранен для будущего использования. В порядке сохранить рабочий процесс, выберите File> Export to Script. Это, экспортирует.m файл с именем hdlworkflow.m. Пользователь может импортировать этот файл путем выбора File> Import from Script. Это откроет диалоговое окно Import Workflow Configuration от того, где пользователь может выбрать hdlworkflow.m файл. и HDL Workflow Advisor обновляет задачи согласно импортированному скрипту. Смотрите Рабочий процесс HDL Выполнения со Скриптом

Разверните поток битов на цели Speedgoat IO333-325k

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

1. Setup и Конфигурирует Reat-разовый Simulink: поток битов загружается через Simulink Real-Time Explorer. Поэтому важно установить и сконфигурировать Simulink Real-Time Explorer. Сначала, соедините компьютер разработчика с целью с помощью перекрестного сетевого кабеля. В этом случае Целевым IP-адресом Speedgoat является 10.10.10.15. Поэтому IP-адрес линии связи между компьютером разработчика и целевым компьютером должен иметь ту же сеть (т.е.; 10.10.10.12).

Теперь выполните следующие шаги, чтобы сконфигурировать Simulink Real-Time Explorer правильно:

  • Откройте Simulink Real-Time Explorer путем ввода slrtexplr

  • В Целях панель нажимают Add Target button.

  • На панели инструментов кликните по Кнопке свойства.

  • В рабочей области Target Properties нажмите Host-to-Target Communication

  • Установите IP-адрес как 10.10.10.15, Порт как 22222, маска Подсети как 255.255.255.0 и Шлюз как 10.10.10.10. Кроме того, Целевой драйвер набора как Auto и Тип шины как PCI

  • Нажмите рабочую область Target Settings in Target Properties

  • Выберите USB Support и Графический режим

  • Нажмите рабочую область Boot Configuration in Target Properties

  • Выберите Режим начальной загрузки как Network и нажмите на загрузочный диск Create. Целевой Мак адрес появится в поле Мак адреса.

  • Наконец сохраните настройку путем нажимания кнопки сохранения. Смотрите Настроенный и Сконфигурируйте Simulink Real-Time для получения дополнительной информации.

2. Создайте Приложение реального времени: Эта задача требуется, чтобы наконец загружать модель на цель Speedgoat. Следующие шаги должны выполниться:

  • Откройте модель Simulink Real-Time Interface

  • Simulink Real-Time поддерживает осциллограф в реальном времени. Поэтому добавьте Целевой Осциллограф от Библиотеки Simulink до модели и соедините его с выходными параметрами. Модель должна быть похожей на следующее:

3. Создание и запуск приложения реального времени:

  • Если Целевой Осциллограф соединяется с моделью, нажмите кнопку Build Model на редакторе Тулбэре Simulink, чтобы скомпилировать и загрузить модель на цель Speedgoat IO333-325k.

  • После успешного завершения процедуры сборки Simulink Real-Time имя целевого объекта tg создается в рабочем пространстве MATLAB, и модель может быть запущена в панели Приложения Simulink Real-Time Explorer. Кликните по Кнопке запуска в панели Приложения.

  • Выведите может наблюдаться в мониторе, соединенном с целью или следующей командой в компьютере разработчика.

tg.viewTargetScreen

ouput формы волны в Целевом Осциллографе должны быть похожими на следующее:

Поскольку результаты симуляции загруженной модели точно соответствуют с исходной Моделью Simscape, потеря точности является нулем или минимальный.