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

HDL Coder™ поддерживает и предопределенные и пользовательские Системные объекты для генерации кода.

Почему системные объекты использования?

Системные объекты обеспечивают преимущество проекта потому что:

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

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

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

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

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

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

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

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

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

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

Следующие ограничения применяются к генерации HDL-кода за все Системные объекты:

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

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

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

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

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

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

  • Атрибут UseMatrixTypesInHDL должен быть установлен в 'off', если у вас есть Системный объект в вашем коде MATLAB.

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

  • Глобальные переменные не поддержаны.

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

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

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

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

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

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

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

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

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

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

  • Пользовательские Системные объекты не должны быть публичными свойствами.

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

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

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