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

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

Почему использование System Objects?

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

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

  • Можно спроектировать и квалифицировать пользовательские Системные объекты к повторному использованию в нескольких проектах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для предопределенного 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 не должен быть публичными свойствами.

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

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

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