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

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

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

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

2.10.1

Серьезность

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

Описание

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

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

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

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

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

2.10.2

Серьезность

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

Описание

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

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

  • Убедитесь, что параметр Gain блока не использует значение параметров round. Чтобы избежать округления значения усиления, можно задать 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
    

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

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

См. также

Функции

Похожие темы