HDL Coder™ поддерживает как предопределенные, так и пользовательские 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:
Ваш проект может вызвать 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
метод с несколькими выходами не может быть вызван в рамках условного оператора.
Чтобы узнать, как использовать System objects для генерации HDL-кода, смотрите проекты MATLAB в следующих примерах: