Генерация HDL-кода для System Objects

HDL Coder™ поддерживает как предопределенные, так и пользовательские System objects для генерации кода.

Зачем использовать System Objects?

System objects обеспечивают преимущество проекта, потому что:

  • Вы можете сэкономить время во время проекта и проверки с помощью существующих компонентов System object™.

  • Вы можете проектировать и квалифицировать пользовательские системные объекты для повторного использования в нескольких проектах.

  • Можно задать алгоритм в системном объекте один раз и повторно использовать несколько образцы из него в одном проекте MATLAB.

    Эта идиома не может использоваться с функциями MATLAB, которые имеют состояние. Например, если алгоритм имеет состояние и требует использования стойких переменных, эта функция не может быть создана несколько раз в проекте. Вместо этого необходимо скопировать и переименовать функцию для каждого образца.

  • HDL-код, который вы генерируете из System objects, является модульным и более читаемым.

Предопределенные системные объекты

Предопределенные System objects, доступные с MATLAB®Для генерации HDL-кода поддерживаются DSP System Toolbox™ и Communications Toolbox™. Для получения списка смотрите Предопределенные системные объекты, поддерживаемые для генерации HDL-кода.

Пользовательские системные объекты

Можно создать пользовательские системные объекты для генерации HDL-кода. Для получения примера смотрите Сгенерировать код для пользовательских системных объектов.

Ограничения генерации HDL-кода для System Objects

Следующие ограничения применяются к генерации HDL-кода для всех System objects:

  • Ваш проект может вызвать step метод только один раз для системного объекта.

  • step не должно находиться внутри вложенного условного оператора, такого как вложенный цикл if оператор, или switch оператор.

  • step не должен находиться внутри условного оператора, содержащего операцию индексирования матриц.

  • Системный объект должен быть объявлен постоянным, если он имеет состояние.

    Системный объект имеет состояние, когда он имеет настраиваемую частную или общественную собственность или свойство с DiscreteState атрибут.

  • Можно использовать dsp.Delay Системный объект только при моделировании задержки feedforward.

  • Перечисления не поддерживаются.

  • Глобальные переменные не поддерживаются.

Поддерживаемые методы

Для предопределенных System Objects step является единственным методом, поддерживаемым для генерации HDL-кода.

Для пользовательских System Objects либо step метод, или output и update методы, поддерживаются для генерации HDL-кода.

Дополнительные ограничения для предопределенных системных объектов

Предопределенные System objects не поддерживаются для генерации HDL-кода из блока MATLAB System.

Дополнительные ограничения для пользовательских системных объектов

В дополнение к ограничениям для всех System objects к определяемым пользователем System objects для генерации HDL-кода применяются следующие ограничения:

  • В setupImpl и resetImpl методы, если вы присваиваете значения свойствам или переменным, значения должны быть постоянными.

  • Если ваш проект использует output и update методы, он может вызывать каждый метод только один раз для системного объекта.

  • Начальное значение и значения сброса для свойств должны быть постоянными во время компиляции.

  • Пользовательские System objects не должны быть общественной собственностью.

  • A step метод с несколькими выходами не может быть вызван в рамках условного оператора.

Примеры системных объектов для генерации HDL-кода

Чтобы узнать, как использовать System objects для генерации HDL-кода, смотрите проекты MATLAB в следующих примерах: