Задачи HDL Workflow Advisor

Используя Simscape HDL Workflow Advisor, можно сгенерировать модель реализации HDL. Затем можно сгенерировать HDL-код для модели реализации и развернуть код на платформах FPGA. Чтобы открыть Advisor, запустите sschdladvisor функция. Для примера:

sschdladvisor('sschdlexHalfWaveRectifierExample')

В Simscape HDL Workflow Advisor для получения сводных сведений о каждой папке или задаче Simscape HDL Workflow Advisor щелкните правой кнопкой мыши эту папку или задачу и выберите What's This?.

Папка HDL Workflow Advisor

Simscape HDL Workflow Advisor состоит из различных задач, которые можно использовать, чтобы преобразовать модель Simscape™ в HDL-модель реализации. Вы можете сгенерировать код для Подсистемы HDL в этой модели. Simscape HDL Workflow Advisor состоит из папок, которые выполняют следующие задачи:

  • Папка 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')
Если ваша модель содержит нелинейные блоки, выполнение этой задачи терпит неудачу. В журнале Result вы видите ссылки, предоставленные нелинейным блокам в вашей модели. Чтобы продолжить рабочий процесс, замените нелинейные блоки на коммутируемые линейные блоки и перезапустите задачу.

Когда эта задача проходит, она отображает:

  • Сообщение, указывающее, что модель переключена линейно.

  • Количество сетей Simscape, присутствующих в модели.

  • Количество алгебраических и дифференциальных переменных для каждой сети Simscape со ссылками на блоки в вашей модели Simscape, которые связаны с этими переменными.

    Дифференциальные переменные используют квадратичный объем ресурсов умножения на целевом устройстве FPGA. Алгебраические переменные потребляют линейное количество ресурсов умножителя. Можно использовать эту информацию, чтобы определить, сколько ресурсов умножения использует ваш проект Simscape на устройстве FPGA.

  • Сообщение со ссылками на блоки Simulink-PS Converter (Simscape) и PS-Simulink Converter (Simscape) в вашей модели, если вы используете имена по умолчанию для этих блоков.

    Входные и выходные порты HDL Subsystem в модели реализации используйте имена, которые вы задаете для блоков Simulink-PS Converter и PS-Simulink Converter. Чтобы избежать этого сообщения, используйте значимое имя для этих блоков.

Папка преобразования пространства состояний

Прежде чем вы сможете сгенерировать модель реализации HDL, запустите задачу в этой папке, чтобы вывести параметры пространства состояний из вашей модели. Задачи в этой модели:

  • Симулируйте модель Simscape, чтобы извлечь дифференциальные алгебраические уравнения.

  • Дискретизируйте дифференциальные алгебраические уравнения, чтобы сгенерировать представление абстрактного пространства состояний, которое представляет модель в виде линейных мод.

Извлечение уравнений

Задача Extract Equations моделирует вашу модель Simscape, чтобы извлечь дифференциальные алгебраические уравнения. Эта задача выводит значение Simulation stop time из исходной модели Simscape.

Если эта задача проходит, она отображает количество состояний, входов, выходов, режимов и дифференциальных переменных для каждой сети Simscape, присутствующей в модели. Задача также отображает сообщение, если модель является чисто линейной и не содержит нелинейных элементов.

Количество режимов ограничено количеством переключателей, присутствующих в вашей модели Simscape. Максимальное количество возможных режимов 2^(number of switches). Все режимы, которые генерирует Advisor, выполняются согласно входным параметрам с помощью логики переключения. Допустимое количество режимов выбирается в зависимости от проекта вашей модели Simscape.

Дискретизируйте уравнения

Эта задача дискретизирует дифференциальные алгебраические уравнения и генерирует абстрактное представление дискретного пространства состояний. Эта задача представляет модель в виде линейных режимов. Каждый режим представлен набором матриц пространства состояний. Эта задача выводит значение Discrete sample time из исходной модели Simscape.

Если эта задача проходит, она отображает Discrete sample time и количество параметров и режимов для каждой сети Simscape, присутствующей в модели.

Папка генерации модели реализации

Задача в папке Implementation model generation генерирует модель реализации из представления дискретного пространства состояний. Модель реализации представляет алгоритм Simscape при помощи Simulink® блоки, совместимые с генерацией HDL-кода. Если Generate implementation model задачи в этой папке проходит, она предоставляет ссылку на модель реализации.

Сгенерируйте задачу модели реализации

Чтобы сгенерировать модель реализации HDL из представления дискретного пространства состояний, запустите эту задачу. Модель реализации HDL содержит HDL Subsystem который моделирует уравнения пространства состояний при помощи параметров пространства состояний, выведенных при запуске Get state-space parameters задачи. The 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.

Если задача проходит, вы видите ссылку на модель реализации.

Похожие темы