При помощи HDL Workflow Advisor Simscape можно сгенерировать модель реализации HDL. Можно сгенерировать HDL-код для модели реализации и развернуть сгенерированный код на платформы FPGA. Чтобы открыть Советника, запустите sschdladvisor
функция. Например:
sschdladvisor('sschdlexHalfWaveRectifierExample')
HDL Workflow Advisor Simscape состоит из различных задач, которые преобразуют вашу модель Simscape™ в модель реализации HDL. При выполнении различных задач в HDL Workflow Advisor Simscape можно следовать определенным советам и инструкциям. Вы видите эти советы в окне UI конкретной задачи. Например, в задаче, которая дискретизирует уравнения к параметрам пространства состояний, пользовательский интерфейс имеет совет, который предлагает, как изменить шаг расчета. Этот раздел содержит больше информации о каждом совете в HDL Workflow Advisor Simscape пользовательский интерфейс.
После того, как вы запустите задачу Check Switched Linear, задача сообщает о количестве дифференциальных и алгебраических переменных для каждой сети Simscape, существующей в модели. Например, этот рисунок иллюстрирует, что существует два дифференциала и две алгебраических переменные в модели sschdlexBoostConverterExample
конвертера повышения в качестве примера.
sschdladvisor('sschdlexHalfWaveRectifierExample')
Запустите рабочий процесс к задаче Check Switched Linear.
Путем просмотра количества алгебраических и дифференциальных переменных можно определить, как проект использует ресурсы на устройстве FPGA. Если Nd
количество дифференциальных переменных и Na
количество алгебраических переменных, использование ресурсов на целевом компьютере варьируется согласно отношению Nd*(Nd+Na)
. Дифференциальные переменные используют квадратичную сумму ресурсов множителя на целевом устройстве FPGA. Алгебраические переменные используют линейную сумму ресурсов множителя. Можно использовать эту информацию, чтобы определить, сколько ресурсов множителя проект Simscape использует на устройстве FPGA и готов ли проект к преобразованию в представление пространства состояний.
Когда вы запускаете задачу Extract Equations, HDL Workflow Advisor Simscape сообщает о времени остановки симуляции. Время остановки симуляции соответствует количеству времени, которое Советник занимает, чтобы запустить симуляцию на вашей модели Simscape. Время остановки не должно быть значительно большое таким образом, что Советнику требуется много времени, чтобы запустить эту задачу. Используйте время остановки, которое достаточно, чтобы достигнуть необходимого количества режимов для вашей модели. Чтобы изменить время остановки, перейдите к модели Simscape, и затем задайте Stop Time.
В задаче Extract Equations, когда вы извлекаете дифференциальные алгебраические уравнения, HDL Workflow Advisor Simscape симулирует модель, чтобы покрыть нелинейную область значений блоков Simscape. Эта задача может занять много времени в зависимости от количества переключающихся элементов в модели Simscape.
Для коммутируемой линейной модели каждый элемент переключения в проекте имеет два режима. Коммутируемая линейная модель с n
переключение элементов имеет 2^n
возможные режимы. Для моделей Simscape с большим количеством переключающихся элементов количество режимов может стать значительно большим. Например, Венский выпрямитель имеет 21
переключение элементов, который переводит в 2^21
возможные режимы. HDL Workflow Advisor Simscape может занять много времени, чтобы симулировать такую большую модель и покрыть такое большое количество режимов. Кроме того, модель реализации HDL, которую вы генерируете для такого проекта, может использовать большую сумму ресурсов или даже не может соответствовать на целевом устройстве FPGA.
В большинстве случаев, при симуляции модели, Советник не должен достигать целого 2^n
режимы. Например, рассмотрите эту модель мостового выпрямителя. Открыть эту модель, введите:
open_system('sschdlexBridgeRectifierExample')
В Simscape_system
Subsystem, вы видите эти четыре диода, расположенные в настройке моста.
Когда каждый диод имеет два состояния, проект Simscape может иметь 2^4 = 16
возможные состояния. В отличие от этого мостовой выпрямитель имеет только три режима. Режимы:
Диоды D1
и D2
ON
, D3
и D4
OFF
Диоды D1
и D2
OFF
, D3
и D4
ON
Диоды D1
, D2
, D3
, и D4
OFF
Этот пример показывает, что, на основе алгоритма Simscape и входа к проекту, можно установить время остановки симуляции на минимальное значение, которое покрывает количество режимов, которые будут достигнуты.
Когда вы запускаете задачу Discretize Equations, HDL Workflow Advisor Simscape сообщает о дискретном шаге расчета. Дискретный шаг расчета соответствует шагу расчета что использование Советника, чтобы дискретизировать дифференциальные алгебраические уравнения к параметрам пространства состояний. Чтобы изменить шаг расчета, в вашей модели Simscape, открывают диалоговое окно Block Parameters для блока Solver Configuration, и затем задают Sample time.
В задаче Discretize Equations HDL Workflow Advisor Simscape дискретизирует дифференциальные алгебраические уравнения в параметры пространства состояний. Вы извлекаете дифференциальные алгебраические уравнения путем симуляции модели Simscape в предыдущей задаче, Extract Equations. Задача Discretize Equations запускается намного быстрее, чем задача Extract Equations, потому что Советник только должен дискретизировать дифференциальные алгебраические уравнения к параметрам пространства состояний.
Задача Discretize Equations получает информацию о шаге расчета из шага расчета, который вы задаете для блока Solver Configuration в вашей модели. Советник затем дискретизирует уравнения к параметрам пространства состояний на основе этой информации о шаге расчета.
В задаче Generate implementation model можно задать Number of solver iterations. Количество итераций решателя относится к числу раз, модель в пространстве состояний выполняется на режим. HDL Workflow Advisor Simscape генерирует количество итераций, которые требуются для выполнения модели в пространстве состояний, автоматически. По умолчанию Number of Solver iterations является 5
для коммутируемых линейных моделей и 1
для линейных моделей.
Для каждого режима в физической системе коммутируемый линейный рабочий процесс достигает представления пространства состояний. Метод решателя является итеративным и выполняет множественные вычисления, чтобы определить правильный режим для следующего временного шага. После определенного числа итераций выходное значение от следующего временного шага становится тем же самым как значением от предыдущего временного шага. Эта непротиворечивость в выходном значении указывает на правильное количество итераций решателя.
По умолчанию можно изменить количество итераций решателя на этой задаче. Увеличение числа итераций решателя улучшает числовую точность сгенерированной модели реализации HDL. Чтобы достигнуть более высоких частот дискретизации, сократите количество итераций решателя. Выберите значение для количества итераций решателя, которое обменивает числовую точность и частоту дискретизации.
На блоке Solver Configuration, если вы задаете установку Use fixed-cost runtime consistency iterations, вы не можете изменить настройки Number of solver iterations на этой задаче. Чтобы изменить количество итераций решателя, на блоке Solver Configuration, изменяют параметр Nonlinear iterations и повторно выполняют задачу Generate implementation model.
Чтобы проверить, совпадают ли числовые результаты модели реализации HDL с исходной моделью Simscape, выберите Generate validation logic for the implementation model. Если числовые результаты модели реализации HDL не соответствуют, можно увеличить число итераций решателя. Чтобы узнать больше, смотрите, Увеличивают Число Итераций Решателя.
Изменение количества итераций решателя обменивает числовую точность на частоту дискретизации. Увеличение числа итераций решателя увеличивает шаг расчета модели реализации HDL, которая может уменьшить частоту дискретизации. Смотрите Сокращающее Количество Итераций Решателя.
На блоке Solver Configuration флажок Use fixed-cost runtime consistency iterations снимается по умолчанию. Если вы устанавливаете этот флажок, установка Nonlinear iterations на блоке Solver Configuration становится тем же самым как установкой Number of solver iterations в задаче Generate implementation model.
По умолчанию Nonlinear iterations установлен в 2
. Когда вы запускаете задачу Generate implementation model, Советник устанавливает Number of solver iterations на 2
и эта установка не может быть изменена. Изменить Number of solver iterations, также:
Измените Nonlinear iterations.
Очистите Use fixed-cost runtime consistency iterations и затем измените Number of solver iterations.
Чтобы узнать больше об установке Use fixed-cost runtime consistency iterations, смотрите Solver Configuration. См. также Решатели для Симуляции В реальном времени (Simscape).
Используйте установку Floating-point precision, чтобы задать, хотите ли вы алгоритм в HDL Subsystem
в сгенерированной модели реализации, чтобы использовать single
или double
типы данных при выполнении матричных расчетов.
Точность с плавающей точкой | Описание |
---|---|
Double | Используя double точность с плавающей точкой увеличивает числовую точность сгенерированной модели и максимальной достижимой целевой частоты. Однако потребление области и конвейерная задержка также увеличены. |
Single | Это - настройка по умолчанию для точности с плавающей точкой. |
Single coefficient, double computation | Этот режим предлагает компромисс между Single и Double режимы точности с плавающей точкой. Сохранить использование памяти, коэффициенты, которые хранятся в single . Матричные расчеты затем выполняются в double для улучшенной точности. |
Чтобы узнать больше о настройках точности с плавающей точкой и компромиссах, смотрите Использование Большая Точность С плавающей точкой.