Этот пример показывает, как синтезировать и сгенерировать поток битов FPGA из simscape модели и загрузить поток битов на цель ввода-вывода Speedgoat для реализации HIL.
Реализация HIL Модели Simscape на вводе-выводе FPGA Speedgoat является тремя процессами шага.
Сгенерируйте модель Simulink для реализации HDL из модели Simscape при помощи HDL Workflow Advisor Simscape.
Сгенерируйте поток битов от предыдущего шага с помощью HDL Workflow Advisor
Загрузите поток битов на ввод-вывод Speedgoat с помощью Simuling Проводник В реальном времени для Аппаратно-программного моделирования
Этот пример показывает постепенный процесс, чтобы сгенерировать Модель 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. Советник содержит следующие папки:
Совместимость Генерации кода: задачи в этой папке проверяют ли:
Параметры конфигурации Решателя установлены правильно.
Существует любой блок Switched Linear, используемый в simscape модели.
Преобразование пространства состояний: Это лавирует, представляет Модель Simscape в форме линейных режимов, где каждый режим представлен набором матриц пространства состояний. После передачи эта задача отображает количество состояний, входных параметров, выходных параметров, режимы и так далее.
Генерация модели Implementation: Эта задача генерирует модель реализации от дискретного представления пространства состояний и обеспечивает ссылку на сгенерированную модель. Откройте сгенерированную модель от этой ссылки. Сгенерированная модель должна быть похожей на следующую модель и названный как "gmStateSpaceHDL_sschdlexHalfWaveRectifierEx".
Вывод этой модели подобен той из Модели Simscape, которая указывает, что никакая потеря точности не происходится во время этого преобразования.
Чтобы узнать больше о HDL Workflow Advisor Simscape, смотрите, Генерируют HDL-код из Моделей Simscape
Этот шаг объясняет задачи сгенерировать поток битов Половины Выпрямителя Волны для загрузки на модуль 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 Выполнения со Скриптом
Это - последний шаг этого примера, который включает настройку 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 до модели и соедините его с выходными параметрами. Модель должна быть похожей на следующее:
Чтобы установить параметры Целевого Осциллографа, дважды щелкают и изменяют Количество выборок от 250
(значение по умолчанию) к 500
. Остальная часть значений параметров должна остаться неизменной. Для подробного понимания смотрите, Создают и Приложение реального времени Выполнения из Модели Simulink
3. Создание и запуск приложения реального времени:
Если Целевой Осциллограф соединяется с моделью, нажмите кнопку Build Model на редакторе Тулбэре Simulink, чтобы скомпилировать и загрузить модель на цель Speedgoat IO333-325k.
После успешного завершения процедуры сборки Simulink Real-Time имя целевого объекта tg
создается в рабочем пространстве MATLAB, и модель может быть запущена в панели Приложения Simulink Real-Time Explorer. Кликните по Кнопке запуска в панели Приложения.
Выведите может наблюдаться в мониторе, соединенном с целью или следующей командой в компьютере разработчика.
tg.viewTargetScreen
ouput формы волны в Целевом Осциллографе должны быть похожими на следующее:
Поскольку результаты симуляции загруженной модели точно соответствуют с исходной Моделью Simscape, потеря точности является нулем или минимальный.