Чтобы сгенерировать HDL-код для Simscape™ алгоритмов, вы генерируете модель реализации с помощью Simscape HDL Workflow Advisor. Если вы следуете определенным рекомендациям при моделировании алгоритма Simscape, Simscape HDL Workflow Advisor заменяет подсистему Simscape соответствующим HDL Subsystem
блок в модели реализации HDL. The HDL Subsystem
блок содержит алгоритм пространства состояний, который использует HDL-совместимый Simulink® блоки вместо блоков Simscape. Можно сгенерировать HDL-код для HDL Subsystem
блокируйте и развертывайте код на целевых устройствах FPGA и FPGA на борту модулей ввода-вывода Speedgoat FPGA. В этом случае, когда вы устанавливаете флажок Generate validation logic for the implementation model в Generate implementation model задаче Simscape HDL Workflow Advisor, Advisor генерирует отдельную модель валидации пространства состояний. Эта модель сравнивает выходы HDL Subsystem
и исходную подсистему Simscape, чтобы убедиться, что они функционально эквивалентны.
Если вы не соблюдаете эти инструкции, HDL Workflow Advisor Simscape, возможно, не сможет выполнить эту замену. В этом случае модель реализации HDL содержит алгоритм пространства состояний с исходной подсистемой Simscape рядом с ней. Перед генерацией кода вы изменяете модель реализации и переставляете блоки так, чтобы они заменяли подсистему Simscape на алгоритм пространства состояний. В этом случае, когда вы устанавливаете флажок Generate validation logic for the implementation model, Advisor помещает логическую подсистему валидации в модель реализации, чтобы проверить функциональную эквивалентность.
В дополнение к этим рекомендациям убедитесь, что модель Simscape настроена на совместимость с Simscape HDL Workflow Advisor. Смотрите Руководство по моделированию Simscape для совместимости HDL.
Заключайте блоки Simscape, для которых вы генерируете модель реализации HDL, в блок Subsystem и предоставьте входные тестовые воздействия. Внутри блока Subsystem ваша модель может иметь несколько иерархий, которые используют блоки Simscape.
Не используйте маскированные подсистемы. Simscape HDL Workflow Advisor не может заменить маскированные подсистемы в модели реализации HDL. Для автоматической замены подсистем можно использовать маскированные подсистемы, которые имеют косметические маски. Косметические маски являются масками, которые имеют только значок, но не имеют никаких параметров или кода инициализации.
Внутри блока Subsystem, который содержит блоки Simscape, в входных портах добавьте блоки Simulink-PS Converter (Simscape). В выходных портах этой подсистемы добавьте PS-Simulink Converter (Simscape) блоков.
Используйте значимое имя для блоков Simulink-PS Converter и PS-Simulink Converter.
Simscape HDL Workflow Advisor использует имена блоков Simulink-PS Converter и PS-Simulink Converter для входных и выходных портов HDL Subsystem
блок. Использование значимого имени облегчает идентификацию того, чему соответствуют входные и выходные порты в модели реализации HDL.
В диалоговом окне Block Parameters блоков Simulink-PS Converter и PS-Simulink Converter, на вкладке Input Handling, оставьте Filtering and derivatives значение Provide signals
и Provided signals установлено на Input only
.
Для примера откройте модель понижающего конвертера. Блок Simscape_system содержит блоки Simscape. Блоки за пределами этой подсистемы образуют тестовое окружение.
open_system('sschdlexBuckConverterExample') sim('sschdlexBuckConverterExample')
Внутри Simscape_system
подсистема, модель использует блоки Simscape и физические сигналы. Модель имеет Simulink-PS Converter и PS-Simulink Converter блоки на интерфейсах. Предоставьте уникальные имена для этих блоков, так чтобы они совпадали с соответствующими именами портов.
open_system('sschdlexBuckConverterExample/Simscape_system')
Если ваша модель Simscape содержит несколько сетей:
Заключайте каждую сеть в подсистему. Добавьте Simulink-PS Converter и PS-Simulink Converter блоки в интерфейсе подсистемы.
Используйте блок Solver Configuration (Simscape) для каждой сети. Используйте тот же шаг расчета между блоками Solver Configuration внутри различных сетей.
Например, эта модель содержит больше сетей Simscape, чем блоков Solver Configuration, сеть Simscape не заменяется подсистемой HDL.
Затем Simscape HDL Workflow Advisor заменяет каждую подсистему Simscape соответствующей HDL Subsystem
.
Для примера, который показывает, как сгенерировать HDL-код для модели, которая имеет несколько сетей, смотрите Сгенерировать HDL-код для моделей Simscape с несколькими сетями.
Чтобы сгенерировать модель реализации, которая заменяет подсистему Simscape алгоритмом пространства состояний, в вашей исходной модели Simscape не используйте эти блоки из библиотеки Simscape > Utilities:
Simscape Bus (Simscape)
Connection Port (Simscape)
Connection Label (Simscape)
Для примера эта модель содержит Connection Label и Simscape Bus блоки внутри двух разных подсистем. Simscape- HDL Workflow Advisor не может заменить эти подсистемы алгоритмом пространства состояний.