В этом примере показано, как синтезировать и сгенерировать FPGA передают поток битов из модели Simscape и загружать поток битов на цель ввода-вывода Speedgoat для реализации HIL.
Реализация HIL модели Simscape на вводе-выводе FPGA Speedgoat является процессом с тремя шагами.
Сгенерируйте модель Simulink для реализации HDL из модели Simscape при помощи HDL Workflow Advisor Simscape.
Сгенерируйте поток битов от предыдущего шага с помощью HDL Workflow Advisor
Загрузите поток битов на ввод-вывод Speedgoat с помощью Simulink Real-Time Explorer в Аппаратно-программном моделировании
Этот пример показывает постепенный процесс, чтобы сгенерировать модель Simulink из модели Simscape половины Выпрямителя Волны. Следующие шаги должны быть выполнены, чтобы сконфигурировать модель Simscape:
1. Откройте модель Simscape. В командной строке MATLAB®, введите:
ModelName = 'sschdlexHalfWaveRectifierExample'; load_system(ModelName) open_system(ModelName) set_param(ModelName, 'SimulationCommand', 'update');
Модель Simscape половины Выпрямителя Волны состоит из блока Linear (резистор) и блок Switched Linear (диод). Это имеет блоки конвертера PS Simulink во входе и блоки PS-Simulink Converter в выходных портах. Чтобы проверить, что настройки решателя сконфигурированы правильно, откройте блок Solver Configuration, и затем выберите Use локальный решатель и Backward Euler
как тип Решателя в блоке Solver Configuration.
Следующий рисунок показывает результаты симуляции модели Simscape. Здесь, вход является синусоидой, и локальным шагом расчета решателя является 0.001
.
2. Сконфигурируйте Половину Модели Выпрямителя Волны для совместимости HDL с помощью следующей команды:
hdlsetup(ModelName)
Теперь модель Simscape готова к генерации модели реализации HDL, из которой можно сгенерировать поток битов. Чтобы сгенерировать модель реализации HDL, откройте HDL Workflow Advisor Simscape путем выполнения следующей команды:
sschdladvisor(ModelName)
Updating Model Advisor cache... Model Advisor cache updated. For new customizations, to update the cache, use the Advisor.Manager.refresh_customizations method.
Это обновляет кэш советника модели и открывает HDL Workflow Advisor Simscape. Советник содержит следующие папки:
Совместимость Генерации кода: задачи в этой папке проверяют ли:
Параметры конфигурации Решателя установлены правильно.
Модель не содержит неподдерживаемые блоки.
Преобразование пространства состояний: задачи в папке:
Симулируйте модель Simscape, чтобы получить линейные модели, которые поняты системой.
Дискретизируйте эти линейные уравнения к набору матриц пространства состояний.
После передачи эта задача отображает количество состояний, входных параметров, выходных параметров и режимов.
Генерация модели Implementation: Эта задача генерирует модель реализации от дискретного представления пространства состояний и обеспечивает ссылку на сгенерированную модель.
Чтобы узнать больше о задачах, смотрите Задачи HDL Workflow Advisor Simscape.
Чтобы открыть сгенерированную модель, щелкните по ссылке в Сгенерировать задаче Модели Реализации.
Чтобы сравнить выходные параметры модели реализации и исходной модели Simscape, откройте Осциллограф и измените Размещение в 3x1
Выход этой модели похож на ту из модели Simscape, которая указывает, что никакая потеря точности не произошла во время преобразования. Поскольку систематическая верификация этого преобразования видит Модель Реализации HDL Проверки к Алгоритму Simscape.
Чтобы узнать больше о HDL Workflow Advisor Simscape, см.: Генерация HDL-кода из моделей Simscape.
Этот шаг объясняет задачи, которые выполняются, чтобы сгенерировать поток битов FPGA из модели Half Wave Rectifier. Поток битов затем загружается на модуль FPGA Speedgoat IO333-325K при помощи HDL Workflow Advisor. Модуль FPGA Speedgoat IO333 использует Xilinx® Vivado® и Инфраструктуру Генерации Ядра IP. Поэтому до выполнения Советника по вопросам Рабочего процесса, убедитесь, что вы задали путь к установленному исполняемому файлу Xilinx Vivado.
Setup и конфигурирует комплект проекта Xilinx Vivado:
Чтобы развернуть любую модель на цель Speedgoat, сначала необходимо установить и сконфигурировать инструмент синтеза. В этом примере мы будем использовать 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. Поставленная цель:
a. *Set Target Device and Synthesis Tool* subtask, select:
Целевой рабочий процесс как ввод-вывод FPGA Simulink Real-Time, поскольку мы генерируем поток битов для цели Speedgoat.
Целевая платформа как Speedgoat IO333-325K
Инструмент Synthesis как Xilinx Vivado
b. Поставите Целевую задачу Исходного проекта, выберите x4 как значение параметров для маршрутов PCIe.
c. Поставите Целевую Интерфейсную задачу, сопоставьте Ввод и вывод один порты типа данных с Интерфейсом PCIe.
d. Поставите Целевую задачу Частоты, установите целевую частоту как 100 МГц. Важно выбрать целевое скручивание жгутов частоты область значений во избежание ошибки в генерации потока битов. В этом примере мы выбираем целевую частоту как 100 МГц.
2. Подготовьте Модель К генерации HDL-кода: Эта задача делает модель готовой к генерации потока битов путем гарантирования, что правильные параметры были выбраны.
В Оптимизации цикла for подзадачи Совместимости Блока Проверки может быть предупреждение. Установка флажка предупреждений Ignore продолжит запускать задачу.
3. Щелкните правой кнопкой по "Загрузке, чтобы Предназначаться>, Генерируют задачу" задачи Simulink Real-Time и выбирают "Run to Selected Task", чтобы сгенерировать ядро IP HDL, поток битов FPGA, и загрузить поток битов на цель Speedgoat IO333
Для подробного понимания о том, как сгенерировать поток битов, смотрите, Развертывают Модели объекта управления 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 Запуска со Скриптом.
Это - последний шаг этого примера, который включает настройку Simulink Real-Time, сборки, и загрузите сгенерированную модель Simulink Real-Time Interface с предыдущего шага путем создания приложения реального времени и запустите приложение в цели Speedgoat.
1. Setup и Конфигурирует Simulink Real-Time: поток битов загружается через 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 до модели и соедините его с выходными параметрами. Модель должна быть похожей на следующее:
Чтобы установить параметры Целевого Осциллографа, дважды щелкают и изменяют Количество выборок от 250
(значение по умолчанию) к 500
. Остальная часть значений параметров должна остаться неизменной. Для подробного понимания смотрите, Создают и Приложение реального времени Запуска из Модели Simulink
3. Создание и запуск приложения реального времени:
Если Целевой Осциллограф соединяется с моделью, нажмите кнопку Build Model на редакторе Тулбэре Simulink, чтобы скомпилировать и загрузить модель на цель Speedgoat IO333-325k.
После успешного завершения Simulink Real-Time создают процедуру, имя целевого объекта tg
создается в рабочем пространстве MATLAB, и модель может быть запущена в панели Приложения Simulink Real-Time Explorer. Кликните по Кнопке запуска в панели Приложения.
Выведите может наблюдаться в мониторе, соединенном с целью или следующей командой в компьютере разработчика.
tg.viewTargetScreen
Выходные формы волны в Целевом Осциллографе должны быть похожими на следующее:
Поскольку результаты симуляции загруженной модели точно соответствуют с исходной моделью Simscape, потеря точности является нулем или минимальный.