HDL Coder™ поддерживает и предопределенный и пользовательский System objects для генерации кода.
System objects обеспечивает преимущество проекта потому что:
Можно сэкономить время во время проекта и тестирующий при помощи существующей Системы object™ компоненты.
Можно спроектировать и квалифицировать пользовательский System objects к повторному использованию в нескольких проектах.
Можно задать алгоритм в Системном объекте однажды, и повторное использование несколько экземпляров его в одном проекте MATLAB.
Эта идиома не может использоваться с функциями MATLAB, которые имеют состояние. Например, если алгоритм имеет состояние и требует использования персистентных переменных, эта функция нельзя инстанцировать многократно в проекте. Вместо этого необходимо было бы скопировать и переименовать функцию для каждого экземпляра.
HDL-код, который вы генерируете от System objects, является модульным и более читаемым.
Предопределенный System objects, которые доступны с MATLAB®, DSP System Toolbox™ и Communications Toolbox™ поддерживаются для генерации HDL-кода. Для списка смотрите Предопределенные Системные объекты, Поддержанные для генерации HDL-кода.
Можно создать пользовательский System objects для генерации HDL-кода. Для примера смотрите, Генерируют Код для Пользовательских Системных объектов.
Нижеследующие ограничения применяются к генерации HDL-кода за весь System objects:
Ваш проект может вызвать Системный объект только однажды.
Вы не должны вызывать объект во вложенном условном операторе, таком как вложенный цикл, if
оператор или switch
оператор.
Вы не должны вызывать объект в условном операторе, который содержит операцию индексирования матриц.
Системный объект должен быть объявлен персистентный, если он имеет состояние.
Системный объект имеет состояние, когда это имеет настраиваемую частную или общественную собственность или свойство с DiscreteState
атрибут.
Можно использовать dsp.Delay
Системный объект только в моделировании задержки прямого распространения.
Перечисления не поддерживаются.
Глобальные переменные не поддерживаются.
Для предопределенного System objects, вызывая сам объект поддерживается для генерации HDL-кода, но никакие другие объектные функции не поддерживаются.
Для пользовательского System objects, любой step
метод или output
и update
методы, поддерживаются для генерации HDL-кода.
Предопределенный System objects не поддерживается для генерации HDL-кода из блока MATLAB System.
В дополнение к ограничениям для всего System objects следующие ограничения применяются к пользовательскому System objects за генерацию HDL-кода:
В setupImpl
и resetImpl
методы, если вы присваиваете значения свойствам или переменным, значения, должны быть константами.
Если ваш проект использует output
и update
методы, это может вызвать каждый метод только однажды на Системный объект.
Начальный и значения сброса для свойств должно быть постоянное время компиляции.
Пользовательский System objects не должен быть публичными свойствами.
Системный объект с несколькими выходными параметрами не может быть назван в условном операторе.
Чтобы изучить, как использовать System objects для генерации HDL-кода, просмотрите проекты MATLAB в следующих примерах: