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