Факторы типа данных Simulink

Можно следовать этим инструкциям, чтобы изучить рекомендуемые настройки типа данных, которые вы хотите использовать в своей модели Simulink® для генерации HDL-кода. Каждая инструкция имеет уровень серьезности, который указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.

Используйте булевскую переменную для логических данных и Ufix1 для числовых данных

ID инструкции

2.10.1

Серьезность

Обязательный

Описание

Boolean и фиксированная точка, ufix1, оба 1-bit типы данных в MATLAB® и Simulink. Эти типы обработаны по-другому.

  • Используйте Boolean для сигналов управляющей логики тех, которые включают и локальные сигналы сброса. Если вы хотите вычислить Boolean сигнал с типом данных с фиксированной точкой, используйте Data Type Conversion, чтобы преобразовать сигнал в fixdt (0,1,0) ввод.

  • Чтобы выполнить числовые вычисления, используйте fixdt (0,1,0). Иногда, выходная ширина бита может стать больше, чем bitwidth. Чтобы выполнить такие операции, используйте Inherit: Inherit via internal rule установка, из-за numerictype свойство fixdt (0,1,0).

Задайте тип данных блоков усиления

ID инструкции

2.10.2

Серьезность

Рекомендуемый

Описание

Блоки Gain имеют параметр Gain и установку Output data type. Рекомендуется, чтобы вы использовали типы данных с фиксированной точкой для этих настроек. В диалоговом окне Block Parameters блока Gain:

  • Задайте Simulink.NumericType объект, такой как fixdt (1, 16, 8).

  • Убедитесь, что параметр Gain блока не использует круглое значение параметров. Чтобы постараться не округляться значения усиления, можно задать fi объект, такой как fi(3.44,0,8,4).

  • Избегайте использования Inherit:Inherit via internal rule. Эта установка может привести к ошибочному типу данных, присваиваемому блоку, таким образом, приводящему к ошибке генерации HDL-кода.

Перечислимые ограничения типа данных

ID инструкции

2.10.3

Серьезность

Обязательный

Описание

Определенная оптимизация, такая как конвейеризация и разделение ресурсов не работает беспрепятственно в присутствии перечислимых типов данных. Рекомендуется, чтобы вы использовали перечислимые типы по мере необходимости. Генерация HDL-кода имеет определенные ограничения при моделировании с перечислимыми типами.

  • Вы не можете использовать перечислимый тип данных для порта ввода или вывода DUT верхнего уровня.

  • Необходимо использовать монотонно увеличивающиеся перечислимые величины. Например, см. этот код:

    classdef  BasicColors < Simulink.IntEnumType 
    enumeration
        Red(0) 
        Yellow(1)
        Blue(2)
    end
    methods (Static)
        function  retVal = getDefaultValue() 
            retVal = BasicColors.Blue;
          end
       end
    end
    

  • Вы не можете выполнить арифметические операции, такие как *, / , -, и + с перечислимыми величинами.

  • Вы не можете выполнить операции сравнения, такие как >, <, >=, <=, ==, и ~= с перечислимыми величинами. Можно выполнить <> операция или условный переход такой, как будто или переключатель.

Смотрите также

Функции

Похожие темы