При помощи HDL Workflow Advisor Simscape можно сгенерировать модель реализации HDL. Можно затем сгенерировать HDL-код для модели реализации и развернуть код на платформы FPGA. Чтобы открыть Советника, запуститесь sschdladvisor
функция. Например:
sschdladvisor('sschdlexHalfWaveRectifierExample')
В HDL Workflow Advisor Simscape, для итоговой информации о каждой папке Simscape HDL Workflow Advisor или задаче, щелкают правой кнопкой по той папке или задаче и выбирают What's This?.
HDL Workflow Advisor Simscape состоит из различных задач, которые можно использовать, чтобы преобразовать модель Simscape™ в модель реализации HDL. Можно сгенерировать код для Подсистемы HDL в этой модели. HDL Workflow Advisor Simscape состоит из папок, которые выполняют эти задачи:
Папка Code generation compatibility состоит из задач, которые проверяют, является ли модель коммутируемой линейной системой и использует правильные параметры конфигурации решателя.
Папка State-space conversion состоит из задач, которые выводят параметры пространства состояний из вашей модели для генерации модели реализации.
Папка Implementation model generation состоит из задачи, которая генерирует модель реализации HDL от параметров пространства состояний.
Чтобы узнать больше о каждой папке или задаче, щелкните правой кнопкой по той папке или задаче, и выберите What's This?.
Задачи в папке Code generation compatibility проверяют ли:
Вы правильно задали параметры конфигурации решателя, и настройки сопоставимы через блоки Solver Configuration в каждой сети в вашу модель Simscape.
Ваше использование модели переключило линейные блоки.
Задача Check solver configuration проверяет, задали ли вы правильные настройки, и настройки сопоставимы через Solver Configuration (Simscape) блоки в каждой сети в вашей модели Simscape.
Советник проверяет, задали ли вы эти настройки для всех блоков Solver Configuration:
Use local solver выбран
Solver type установлен в Backward Euler
Дискретный шаг расчета, Ts
задан
Use fixed-cost runtime consistency iterations или выбран или очищен
Значение Nonlinear iterations является тем же самым, когда Use fixed-cost runtime consistency iterations выбран
Если вы не задавали эти настройки, задача обеспечивает ссылку на блок Solver Configuration в вашей модели и настройках, чтобы изменить.
Задача Check switched linear проверяет, используете ли вы переключенные линейные блоки в своей модели Simscape.
Для этой задачи передать, модель, которую вы используете, должна содержать линейный или переключила линейные блоки. Нелинейные блоки и изменяющиеся во времени блоки (такие как Variable Inductor и блоки Variable Capacitor) не поддерживаются.
Линейные блоки являются блоками, которые заданы линейным соотношением. Например, резистор является линейным блоком, поскольку он задан уравнением V = IR
. Точно так же индуктор линеен, потому что он задан V = d/dt I L
. Коммутируемые линейные блоки являются блоками, такими как диоды или переключатели. Эти блоки заданы линейным соотношением, таким как V = IR
где R
может переключиться между двумя или больше значениями в зависимости от состояния диодов или переключателей.
Эта задача запуски simscape.findNonlinearBlocks
(Simscape) на вашей модели, чтобы проверять на присутствие нелинейных блоков. Например:
sschdladvisor('sschdlexHalfWaveRectifierExample')
Когда эта задача передает, она отображается:
Сообщение, указывающее, что модель переключается линейная.
Количество сетей Simscape, существующих в модели.
Количество алгебраических и дифференциальных переменных для каждой сети Simscape со ссылками на блоки в вашей модели Simscape, которые связаны с этими переменными.
Дифференциальные переменные используют квадратичную сумму ресурсов множителя на целевом устройстве FPGA. Алгебраические переменные используют линейную сумму ресурсов множителя. Можно использовать эту информацию, чтобы определить, сколько ресурсов множителя проект Simscape использует на устройстве FPGA.
Сообщение со ссылками на Simulink-PS Converter (Simscape) и PS-Simulink Converter (Simscape) блокируется в вашей модели, если вы используете имена по умолчанию для этих блоков.
Порты ввода и вывода HDL Subsystem
в реализации модель использует имена, которые вы задаете для блоков PS-Simulink Converter и Simulink-PS Converter. Чтобы избежать этого сообщения, используйте понятное имя для этих блоков.
Прежде чем можно будет сгенерировать модель реализации HDL, запустить задачу в этой папке, чтобы вывести параметры пространства состояний из модели. Задачи в этой модели:
Симулируйте модель Simscape, чтобы извлечь дифференциальные алгебраические уравнения.
Дискретизируйте дифференциальные алгебраические уравнения, чтобы сгенерировать абстрактное представление пространства состояний, которое представляет модель в форме линейных режимов.
Задача Extract Equations симулирует вашу модель Simscape, чтобы извлечь дифференциальные алгебраические уравнения. Эта задача получает значение Simulation stop time на исходную модель Simscape.
Если эта задача передает, она отображает количество состояний, входных параметров, выходных параметров, режимов и дифференциальных переменных для каждой сети Simscape, существующей в модели. Задача также отображает сообщение, если модель чисто линейна и не содержит нелинейных элементов.
Количество режимов ограничивается количеством переключателей, существующих в вашей модели Simscape. Максимальным количеством возможных режимов является 2^(number of switches)
. Все режимы, которые генерирует Советник, выполняются согласно входным параметрам при помощи переключающейся логики. Верный номер режимов выбран в зависимости от проекта вашей модели Simscape.
Эта задача дискретизирует дифференциальные алгебраические уравнения и генерирует абстрактное дискретное представление пространства состояний. Эта задача представляет модель в форме линейных режимов. Каждый режим представлен набором матриц пространства состояний. Эта задача получает значение Discrete sample time на исходную модель Simscape.
Если эта задача передает, она отображает Discrete sample time и количество параметров и режимов для каждой сети Simscape, существующей в модели.
Задача в папке Implementation model generation генерирует модель реализации HDL от дискретного представления пространства состояний. Модель реализации представляет алгоритм Simscape при помощи Simulink® блоки, которые совместимы для генерации HDL-кода. Если задача Generate implementation model в этой папке передачи, это обеспечивает ссылку на модель реализации.
Чтобы сгенерировать модель реализации HDL от дискретного представления пространства состояний, запустите эту задачу. Модель реализации HDL содержит HDL Subsystem
это моделирует уравнения пространства состояний при помощи параметров пространства состояний, выведенных путем выполнения задачи Get state-space parameters. HDL Subsystem
блок представляет DUT, для которого можно сгенерировать HDL-код.
Прежде чем вы запустите эту задачу, вы можете:
Задайте пользовательское значение для установки Number of Solver iterations. Чтобы узнать больше, смотрите Используя Количество Итераций Решателя.
Используйте установку Floating-point precision, чтобы задать ли HDL Subsystem
в сгенерированной реализации модель хранит матричные типы в single
или double
и вычисляет результаты в single
или double
типы данных. Чтобы узнать больше, смотрите Точность С плавающей точкой и Числовую Точность.
Используйте Generate validation logic for the implementation model, чтобы сгенерировать логику, которая проверяет, эквивалентна ли сгенерированная модель реализации HDL функционально исходной модели Simscape. Логика сгенерирована для каждой сети Simscape, существующей в модели. Можно задать допуск к числовой правильности при помощи Validation logic tolerance. Validation logic tolerance является абсолютным значением. Например, можно задать значение допуска 1e-12
.
Если задача передает, вы видите ссылку на модель реализации.