Используя Simscape HDL Workflow Advisor, можно сгенерировать модель реализации HDL. Можно сгенерировать HDL-код для модели реализации и развернуть сгенерированный код на платформах FPGA. Чтобы открыть Advisor, запустите sschdladvisor
функция. Для примера:
sschdladvisor('sschdlexHalfWaveRectifierExample')
Simscape HDL Workflow Advisor состоит из различных задач, которые преобразуют вашу Simscape™ модель в HDL-модель реализации. При выполнении различных задач в Simscape HDL Workflow Advisor можно следовать определенным советам и рекомендациям. Эти советы можно увидеть в окне пользовательского интерфейса конкретной задачи. Для примера в задаче, которая дискретизирует уравнения к параметрам пространства состояний, UI имеет совет, которое предполагает, как изменить шаг расчета. В этом разделе содержатся дополнительные сведения о каждом совете в пользовательском интерфейсе Simscape HDL Workflow Advisor.
После запуска Check Switched Linear задачи задача сообщает количество дифференциальных и алгебраических переменных для каждой сети Simscape, присутствующей в модели. Например, этот рисунок иллюстрирует, что в модели примера преобразователя ускорения существуют две дифференциальные и две алгебраические переменные sschdlexBoostConverterExample
.
sschdladvisor('sschdlexHalfWaveRectifierExample')
Запустите рабочий процесс к Check Switched Linear задаче.
При просмотре количества алгебраических и дифференциальных переменных можно определить, как проект потребляет ресурсы на устройстве FPGA. Если Nd
количество дифференциальных переменных и Na
- количество алгебраических переменных, использование ресурса на целевом компьютере изменяется в соответствии с отношением Nd*(Nd+Na)
. Дифференциальные переменные используют квадратичный объем ресурсов умножения на целевом устройстве FPGA. Алгебраические переменные потребляют линейное количество ресурсов умножителя. Можно использовать эту информацию, чтобы определить, сколько ресурсов умножения использует ваш проект Simscape на устройстве FPGA и готов ли ваш проект к преобразованию в представление пространства состояний.
Когда вы запускаете Extract Equations задачу, Simscape HDL Workflow Advisor сообщает время остановки симуляции. Время остановки симуляции соответствует количеству времени, которое Advisor занимает, чтобы запустить симуляцию на вашей модели Simscape. Время остановки не должно быть значительно большим, так что Advisor занимает много времени, чтобы запустить эту задачу. Используйте время остановки, которое достаточно для достижения необходимого количества режимов для вашей модели. Чтобы изменить время остановки, перейдите к модели Simscape, а затем укажите Stop Time.
В Extract Equations задаче, когда вы извлекаете дифференциальные алгебраические уравнения, Simscape HDL Workflow Advisor моделирует модель, чтобы охватить нелинейную область значений блоков Simscape. Эта задача может занять много времени в зависимости от количества элементов переключения в модели Simscape.
Для коммутируемой линейной модели каждый переключающий элемент в проекте имеет два режима. Коммутируемая линейная модель с n
элементы коммутации имеют 2^n
возможные режимы. Для моделей Simscape с большим количеством переключающих элементов количество режимов может стать значительно большим. Для примера венский выпрямитель имеет 21
элементы переключения, который переводится в 2^21
возможные режимы. Simscape HDL Workflow Advisor может занять много времени, чтобы симулировать такую большую модель и охватить такое большое количество режимов. В сложение модели реализации HDL, которые вы генерируете для такого проекта, может потреблять большое количество ресурсов или даже не помещаться на целевом устройстве FPGA.
В большинстве случаев при симуляции модели Advisor не должен достигать всего 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 задачу, Simscape HDL Workflow Advisor сообщает дискретный шаг расчета. Дискретное время расчета соответствует шагу расчета, который Советник использует, чтобы дискретизировать дифференциальные алгебраические уравнения к параметрам пространства состояний. Чтобы изменить шаг расчета, в модели Simscape откройте диалоговое окно Параметров блоков для блока Solver Configuration, а затем укажите Sample time.
В Discretize Equations задаче Simscape HDL Workflow Advisor дискретизирует дифференциальные алгебраические уравнения в параметры пространства состояний. Вы извлекаете дифференциальные алгебраические уравнения путем симуляции модели Simscape в предыдущей задаче, Extract Equations. Задача Discretize Equations запускается намного быстрее, чем задача Extract Equations, потому что Советник должен дискретизировать только дифференциальные алгебраические уравнения к параметрам пространства состояний.
Задача Discretize Equations получает информацию о шаге расчета из шага расчета, который вы задаете для блока Solver Configuration (Simscape) в вашей модели. Затем Советник дискретизирует уравнения к параметрам пространства состояний на основе этой информации о шаге расчета.
В Generate implementation model задаче можно задать Number of solver iterations. Количество итераций решателя относится к количеству раз, когда модель пространства состояний выполняется в каждом режиме. Simscape HDL Workflow Advisor автоматически генерирует количество итераций, необходимых для выполнения модели пространства состояний.
Для каждого режима в физической системе коммутируемый линейный рабочий процесс приходит к представлению пространства состояний. Метод решателя итеративен и выполняет несколько расчеты, чтобы определить правильный режим для следующего временного шага. После определенного количества итераций значение выхода со следующего временного шага становится таким же, как и значение с предыдущего временного шага. Эта непротиворечивость в значении выхода указывает на правильное количество итераций решателя.
По умолчанию Number of Solver iterations является 1
для линейных моделей. Для коммутируемых линейных моделей Number of solver iterations зависит от количества итераций режима, которые Simscape использует во время симуляции модели. Это выбранное значение оптимально таким образом, что оно заставляет модель сходиться и избегает превышения порогового значения для развертывания приложений.
На блоке 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 задачу, Advisor устанавливает 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). Смотрите также Решатели для симуляции в реальном времени (Simscape).
По умолчанию можно изменить количество итераций решателя в этой задаче. Увеличение количества итераций решателя улучшает числовую точность сгенерированной модели реализации 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, что может уменьшить частоту дискретизации. См. Уменьшение количества итераций решателя.
Используйте настройку Floating-point precision, чтобы указать, хотите ли вы алгоритм внутри HDL Subsystem
в сгенерированной модели реализации для использования single
или double
типы данных при выполнении матричных расчетов.
Точность с плавающей точкой | Описание |
---|---|
Double | Использование double точность с плавающей точностью увеличивает числовую точность сгенерированной модели и максимальную достижимую целевую частоту. Тем не менее, потребление площади и задержки трубопровода также увеличены. |
Single | Это значение по умолчанию для точности с плавающей точкой. |
Single coefficient, double computation | Этот режим предлагает компромисс между Single и Double режимы точности с плавающей точкой. Чтобы сохранить использование памяти, коэффициенты, которые хранятся в single . Матричные расчеты затем выполняются в double для повышения точности. |
Дополнительные сведения о настройках точности с плавающей точностью и компромиссах см. в разделе Использование большей точности с плавающей точностью.