exponenta event banner

Соображения по типу данных Simulink

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

Использовать логическое значение для логических данных и Ufix1 для числовых данных

Идентификатор руководства

2.10.1

Серьезность

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

Описание

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

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

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

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

Идентификатор руководства

2.10.2

Серьезность

Рекомендуется

Описание

Блоки усиления имеют параметры усиления и тип выходных данных. Для этих параметров рекомендуется использовать типы данных с фиксированной точкой. В диалоговом окне «Параметры блока» блока «Усиление»:

  • Укажите Simulink.NumericType объект, например, fixdt (1, 16, 8).

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

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

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

Идентификатор руководства

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
    

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

  • Нельзя выполнять операции сравнения, такие как >, <, >=, <=, ==, и ~= со значениями перечисления. Можно выполнить <> операция или условная ветвь, например, if или switch.

См. также

Функции

Связанные темы