Чтобы сгенерировать модель реализации HDL, из которой можно сгенерировать код, используйте HDL Workflow Advisor Simscape. Чтобы открыть Советника, запустите функцию sschdladvisor
. Например:
sschdladvisor('sschdlexHalfWaveRectifierExample')
Для итоговой информации о каждой папке Simscape HDL Workflow Advisor или задаче, выберите папку или задачу, и также:
Нажмите кнопку Help.
Щелкните правой кнопкой по папке или задаче и выберите What's This?.
HDL Workflow Advisor Simscape состоит из различных задач, которые можно использовать, чтобы преобразовать модель Simscape™ в модель реализации HDL. Модель реализации совместима с HDL, и можно сгенерировать код для Подсистемы HDL в этой модели. HDL Workflow Advisor Simscape состоит из папок, которые выполняют эти задачи:
Папка Code generation compatibility состоит из задач, которые проверяют, переключается ли модель линейная и использует правильные параметры конфигурации решателя.
Папка State-space conversion состоит из задачи, которая выводит параметры пространства состояний из вашей модели для генерации модели реализации.
Папка Implementation model generation состоит из задачи, которая генерирует модель реализации HDL при помощи параметров пространства состояний, вычисленных от предыдущей задачи.
Чтобы узнать больше о каждой из этих папок или задач, щелкните правой кнопкой по той папке или задаче, и выберите What's This?.
Задачи в папке Code generation compatibility выполняют предварительные проверки, которые проверяют, использует ли ваша модель Simscape настройки, которые совместимы для преобразования в модель реализации HDL. Задачи в этой папке проверяют ли:
Вы задали Параметры конфигурации Решателя правильно.
Ваше образцовое использование переключило Линейные блоки.
Задача Check solver configuration проверяет, задали ли вы правильные настройки для Блока Configuration Решателя в вашей модели Simscape. Советник проверяет на эти настройки блока:
Локальный решатель использования выбран.
Backward Euler
задан как тип Решателя.
Задан дискретный шаг расчета, Ts.
Задача Check switched linear проверяет, используете ли вы переключенные линейные блоки в своей модели Simscape. Эта задача запускает simscape.findNonlinearBlocks
на вашей модели, чтобы проверять на присутствие нелинейных блоков. Например:
sschdladvisor('sschdlexHalfWaveRectifierExample')
Прежде чем можно будет сгенерировать модель реализации HDL, запустить задачу в этой папке, чтобы вывести параметры пространства состояний из модели. Get state-space parameters задачи в этой папке преобразовывает вашу модель Simscape в абстрактное дискретное представление пространства состояний, которое представляет модель в форме линейных режимов. Чтобы узнать больше задача Get state-space parameters, щелкните правой кнопкой по задаче и выберите What's This?.
Задача Get state-space parameters task преобразовывает вашу модель Simscape в абстрактное дискретное представление пространства состояний. Эта задача представляет модель в форме линейных режимов. Каждый режим представлен набором матриц пространства состояний. Эта задача выводит Simulation stop time и значения Discrete sample time из исходной модели Simscape. Рекомендуется, чтобы вы не изменяли эти значения.
Если эта задача передает, она отображает количество параметров, режимов, и так далее.
Количество режимов ограничивается количеством переключателей, существующих в вашей модели Simscape. Максимальное количество возможных режимов 2^ (количество переключателей). Все режимы, которые генерирует Советник, выполняются согласно входным параметрам при помощи переключающейся логики. Верный номер режимов выбран в зависимости от проекта вашей модели 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. Коммутируемый линейный рабочий процесс достигает представления пространства состояний для каждого режима в физической системе. Метод решателя обращается к алгоритму, чтобы определить правильный режим для следующего временного шага. Итеративный метод решателя выполняет множественные вычисления, чтобы прибыть в правильный режим. Количество итераций решателя относится к числу раз, модель в пространстве состояний выполняется на режим. HDL Workflow Advisor Simscape генерирует количество итераций, требуемых для модели в пространстве состояний на рассмотрении, автоматически. Чтобы узнать больше, смотрите Решатели для Симуляции В реальном времени (Simscape).
Используйте установку Floating-point precision, чтобы задать, хотите ли вы, чтобы алгоритм в блоке Subsystem HDL в сгенерированной модели реализации использовал один или двойные типы данных. По умолчанию Floating-point precision является single
. Если вы выбираете типы данных double
, это может увеличить числовую точность сгенерированной модели. Однако использование двойных типов данных в вашей модели может увеличить потребление области и уменьшить целевую частоту. Поэтому рекомендуется, чтобы вы использовали один типы данных и затем моделировали сгенерированную модель, чтобы видеть, удовлетворяет ли ваш проект числовые требования точности. Если ваш проект не удовлетворяет требования, можно использовать дважды в качестве точности С плавающей точкой.
Используйте Generate validation logic for the implementation model, чтобы сгенерировать логику, которая проверяет, эквивалентна ли сгенерированная модель реализации HDL функционально исходной модели Simscape. Можно настроить Number of Solver Iterations и Floating-point precision, пока проект не встречает желаемой числовой точности. Можно задать допуск к числовой правильности при помощи Validation logic tolerance. Validation logic tolerance является абсолютным значением. Например, можно задать значение допуска 1e-12
.
Если задача передает, вы видите ссылку на модель реализации.