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