HDL Coder™ поддерживает и предопределенные и пользовательские Системные объекты для генерации кода.
Системные объекты обеспечивают преимущество проекта потому что:
Можно сэкономить время во время проекта и тестирующий при помощи существующей Системы object™ компоненты.
Можно разработать и квалифицировать пользовательские Системные объекты к повторному использованию в нескольких проектах.
Можно задать алгоритм в Системном объекте однажды, и повторное использование несколько экземпляров его в одном проекте MATLAB.
Эта идиома не может использоваться с функциями MATLAB, которые имеют состояние. Например, если алгоритм имеет состояние и требует использования персистентных переменных, эта функция нельзя инстанцировать многократно в проекте. Вместо этого необходимо было бы скопировать и переименовать функцию для каждого экземпляра.
HDL-код, который вы генерируете от Системных объектов, является модульным и более читаемым.
Предопределенные Системные объекты, которые доступны с MATLAB®, DSP System Toolbox™ и Communications Toolbox™, поддерживаются для генерации 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-кода, просмотрите проекты MATLAB в следующих примерах: