Инструкции для генерации HDL-кода Используя диаграммы Stateflow

Эти инструкции иллюстрируют рекомендуемые настройки при использовании графиков Stateflow® в вашей модели. Блок Stateflow Chart доступен в библиотеке блоков Stateflow. При помощи диаграмм Stateflow можно смоделировать задержки модели Simulink®.

Каждая инструкция имеет уровень серьезности, который указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.

Выберите State Machine Type based on HDL Implementation Requirements

ID инструкции

2.9.1

Серьезность

Строго рекомендуемый

Описание

HDL Coder™ поддерживает генерацию кода для диаграмм Stateflow Мура и Мучнистого. Не используйте блоки MATLAB Function, чтобы смоделировать любой Mealy или Moore конечный автомат.

Задавать, хотите ли вы Mealy или Moore конечный автомат, в свойствах Chart (Stateflow), задает State Machine Type. Не используйте Classic потому что это влияет на удобочитаемость сгенерированного HDL-кода. Выберите State Machine Type в зависимости от того, как вы хотите, чтобы семантика Stateflow сопоставила с аппаратной реализацией. Смотрите Аппаратную Реализацию Семантики Stateflow.

Когда вы используете Mealy графики, выходные параметры зависят от текущего состояния и входных параметров. При помощи Mealy графики, можно более легко задать изменения состояния, который делает эти графики более гибкими, чтобы использовать. Сгенерированный HDL-код от Mealy графики могут быть менее читаемыми.

Для Moore графики, выходные параметры зависят только от текущего состояния. Сгенерированный HDL-код от Moore графики более читаемы. Moore графики ограничивают гибкость в определении изменений состояния.

Задайте параметры конфигурации блока диаграммы Stateflow

ID инструкции

2.9.2

Серьезность

Строго рекомендуемый

Описание

Когда вы будете использовать диаграмму Stateflow (Stateflow) блоки в вашей модели для генерации HDL-кода, используйте эти рекомендуемые настройки:

  • Для Action Language используйте MATLAB

  • Для Update method используйте Discrete или Inherited. Не используйте Continuous.

График Мура

  • Включите Initialize Outputs Every Time Chart Wakes Up

  • Отключите Support Variable-Size Arrays

  • Отключите Support Variable-Size Arrays

Диаграмма Мили

  • Включите Execute (Enter) Chart at Initialization

  • Включите Initialize Outputs Every Time Chart Wakes Up

  • Отключите Enable Super Step Semantics

  • Отключите Support Variable-Size Arrays

Чтобы убедиться, что эти настройки заданы для Chart Stateflow, можно осуществить Проверку проверки на настройки диаграммы Stateflow.

Вставьте безусловное переходное состояние для еще оператора в HDL-коде

ID инструкции

2.9.3

Серьезность

Рекомендуемый

Описание

Когда вы используете графики Stateflow® для генерации HDL-кода, вставляете безусловные состояния в график. HDL-код, сгенерированный для такого графика еще, содержит ветвь с оператором if. Присутствие еще ветвь препятствует тому, чтобы сторонняя программа вывела фиксатор, когда вы развертываете HDL-код. Например, откройте модель hdlcoder_chart_ifnelsecond.

open_system('hdlcoder_chart_ifnelsecond')
set_param('hdlcoder_chart_ifnelsecond', 'SimulationCommand', 'Update')
open_system('hdlcoder_chart_ifnelsecond/dut_chart')

Модель содержит два Stateflow Графики Мура. График onlyif_chart реализует простое условие что выходные параметры out1 на основе in1.

open_system('hdlcoder_chart_ifnelsecond/dut_chart/onlyif_chart')

Блок Chart ifnelse_chart совпадает с onlyif_chart и имеет безусловное переходное состояние.

open_system('hdlcoder_chart_ifnelsecond/dut_chart/ifnelse_chart')

Чтобы сгенерировать HDL-код для DUT, запустите эту команду:

makehdl('hdlcoder_chart_ifnelsecond/dut_chart')

HDL-код сгенерирован для onlyif_chart еще не содержит условие. Не развертывайте этот код в целевое устройство, потому что инструменты синтеза могут вывести фиксатор.

HDL-код сгенерирован для ifnelse_chart еще содержит оператор для безусловного переходного состояния. Этот код рекомендуется для развертывания на целевом устройстве FPGA.

Смотрите также

Функции

Похожие темы