exponenta event banner

Распространение типа данных

Задать тип данных и масштабирование распространяемого сигнала на основе информации из опорных сигналов

  • Библиотека:
  • Атрибуты Simulink/Signal

  • Data Type Propagation block

Описание

Блок «Распространение типа данных» позволяет управлять типом данных и масштабированием сигналов в модели. Этот блок можно использовать вместе с блоками с фиксированной точкой, для которых параметр Output data type настроен на Inherit: Inherit via back propagation.

Блок имеет три входа: Ref1 и Ref2 являются опорными входами, в то время как вход Prop обратно распространяет информацию типа данных и масштабирования, собранную из опорных входов. Затем эта информация передается другим блокам с фиксированной точкой.

Блок предоставляет множество вариантов для распространения информации о типе данных и масштабировании. Например, можно использовать:

  • Количество битов из Ref1 опорного сигнала или число битов из самого широкого опорного сигнала

  • Диапазон от Ref2 опорного сигнала или диапазон опорного сигнала с наибольшим диапазоном

  • Смещение, равное нулю, независимо от смещения, используемого опорными сигналами

  • Точность опорного сигнала с наименьшей точностью

Способ распространения информации о типе данных задается с помощью параметра Распространенный тип данных:

  • При выборе Specify via dialog, затем вручную укажите тип данных в поле Изменение распространенного типа данных.

  • При выборе Inherit via propagation rule, то необходимо использовать параметры, описанные в разделе Параметры.

Способ распространения информации о масштабировании задается с помощью параметра «Распространение масштабирования»:

  • При выборе Specify via dialogзатем масштабирование задается вручную с помощью поля редактирования Распространенное масштабирование.

  • При выборе Inherit via propagation rule, то необходимо использовать параметры, описанные в разделе Параметры.

После использования информации из опорных сигналов можно применить второй уровень корректировки к типу данных и масштабированию. Для этого используются индивидуальные мультипликативные и аддитивные корректировки. Эта гибкость имеет различные применения. Например, если вы нацеливаетесь на DSP, то вы можете настроить блок так, чтобы количество битов, связанных с операцией умножения и накопления (MAC), было вдвое шире, чем входной сигнал, и к нему было добавлено определенное количество защитных битов.

Блок распространения типа данных также обеспечивает механизм для приведения вычисленного количества битов к полезному значению. Например, если вы нацеливаетесь на 16-битный микро, то целевой компилятор C, вероятно, будет поддерживать размеры только 8 бит, 16 бит и 32 бита. Блок принудительно использует эти три варианта. Например, предположим, что блок вычисляет размер типа данных 24 бита. Поскольку 24 бита не могут непосредственно использоваться целевым чипом, сигнал принудительно подается до 32 бит, что изначально поддерживается.

Существует также способ обработки опорных сигналов с плавающей запятой. Этот способ облегчает создание конструкций, которые легко переназначены между чипами с фиксированной запятой и чипами с плавающей запятой.

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

Правила приоритета

Приоритет параметров диалогового окна уменьшается сверху вниз. Также:

  • Исходные входные данные с двойной точностью имеют приоритет над всеми другими типами данных.

  • Исходные входные данные с одной точностью имеют приоритет над целыми типами данных и типами данных с фиксированной точкой.

  • Мультипликативные регулировки проводят перед аддитивными регулировками.

  • Количество битов определяется до того, как точность или положительный диапазон наследуется от опорных входных сигналов.

  • PosRange на один бит выше точного максимального положительного диапазона сигнала.

  • Вычисленное число битов повышается до наименьшего допустимого значения, которое больше или равно вычислению. Если нет, блок возвращает ошибку.

Порты

Вход

развернуть все

Первый опорный сигнал, из которого собирается информация о типе данных и масштабировании.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Второй опорный сигнал для сбора информации о типе данных и масштабировании.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Информация о типе данных и масштабировании, обратно распространяемая на модель. После того как блок соберет информацию о типе данных и масштабировании из опорных сигналов, можно применить второй уровень корректировки к типу данных и масштабированию. Для этого в диалоговом окне блока задайте отдельные мультипликативные и аддитивные корректировки.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Параметры

развернуть все

Распространенный тип

Укажите, следует ли распространять тип данных через диалоговое окно или наследовать тип данных из опорных сигналов.

Зависимости

Установка для этого параметра значения Specify via dialog включает параметр 1.1. Распространенный тип данных (например, fixdt (1,16), fixdt ('один')).

Программное использование

Параметр блока: PropDataTypeMode
Текст: символьный вектор
Значения: 'Specify via dialog' | 'Inherit via propagation rule'
По умолчанию: 'Inherit via propagation rule'

Укажите тип данных для распространения.

Зависимости

Чтобы включить этот параметр, установите значение 1. Распространенный тип данных в Specify via dialog.

Программное использование

Параметр блока: PropDataTypeMode
Текст: символьный вектор
Значения: 'Specify via dialog' | 'Inherit via propagation rule'
По умолчанию: 'Inherit via propagation rule'

Укажите тип выходных данных как single или double. Этот параметр упрощает создание конструкций, которые легко перенаправляются между элементами с фиксированной точкой и элементами с плавающей точкой.

Зависимости

Чтобы включить этот параметр, задайте для параметра Распространенный тип данных значение Inherit via propagation rule.

Программное использование

Параметр блока: IfRefDouble
Текст: символьный вектор
Значения: 'double' | 'single'
По умолчанию: 'double'

Укажите тип выходных данных как single или double. Этот параметр упрощает создание конструкций, которые легко перенаправляются между элементами с фиксированной точкой и элементами с плавающей точкой.

Зависимости

Чтобы включить этот параметр, задайте для параметра Распространенный тип данных значение Inherit via propagation rule.

Программное использование

Параметр блока: IfRefSingle
Текст: символьный вектор
Значения: 'double' | 'single'
По умолчанию: 'single'

Укажите знак Prop как одно из следующих значений.

Значение параметраОписание

IsSigned1

Prop является подписанным типом данных, если Ref1 является подписанным типом данных.

IsSigned2

Prop является подписанным типом данных, если Ref2 является подписанным типом данных.

IsSigned1 or IsSigned2

Prop является подписанным типом данных, если Ref1 или Ref2 являются подписанными типами данных.

TRUE

Ref1 и Ref2 игнорируются, а Prop всегда является подписанным типом данных.

FALSE

Ref1 и Ref2 игнорируются, а Prop всегда является неподписанным типом данных.

Например, если Ref1 сигнал ufix(16), сигнал Ref2 - sfix(16), а параметр Is-Signed имеет значение IsSigned1 or IsSigned2, то Prop вынужден быть подписанным типом данных.

Зависимости

Чтобы включить этот параметр, задайте для параметра Распространенный тип данных значение Inherit via propagation rule.

Программное использование

Параметр блока: IsSigned
Текст: символьный вектор
Значения: 'IsSigned1' | 'IsSigned2' | 'IsSigned1 or IsSigned2' | 'TRUE' | 'FALSE'
По умолчанию: 'IsSigned1 or IsSigned2'

Укажите число битов, используемых Prop для базового типа данных, как одно из следующих значений.

Значение параметраОписание

NumBits1

Количество битов для Prop задается количеством битов для Ref1.

NumBits2

Количество битов для Prop задается количеством битов для Ref2.

max([NumBits1 NumBits2])

Количество битов для Prop задается опорным сигналом с наибольшим количеством битов.

min([NumBits1 NumBits2])

Количество битов для Prop задается опорным сигналом с наименьшим числом битов.

NumBits1+NumBits2

Количество битов для Prop задается суммой битов опорного сигнала.

Дополнительные сведения о базовом типе данных см. в разделе Таргетинг встроенного процессора (Fixed-Point Designer).

Зависимости

Чтобы включить этот параметр, задайте для параметра Распространенный тип данных значение Inherit via propagation rule.

Программное использование

Параметр блока: NumBitsBase
Текст: символьный вектор
Значения: 'NumBits1' | 'NumBits2' | 'max([NumBits1 NumBits2])' | 'min([NumBits1 NumBits2])' | 'NumBits1+NumBits2'
По умолчанию: 'max([NumBits1 NumBits2])'

Укажите количество битов, используемых Prop, включив мультипликативную корректировку, использующую тип данных double. Например, предположим, что необходимо гарантировать, что количество битов, связанных с операцией умножения и накопления (MAC), в два раза больше, чем входной сигнал. Для этого установите для этого параметра значение 2.

Зависимости

Чтобы включить этот параметр, задайте для параметра Распространенный тип данных значение Inherit via propagation rule.

Программное использование

Параметр блока: NumBitsMult
Текст: символьный вектор
Значения: положительное целое число
По умолчанию: '1'

Укажите количество битов, используемых Prop, включив аддитивную корректировку, использующую тип данных double. Например, если во время операции MAC выполняется несколько дополнений, результат может переполниться. Чтобы предотвратить переполнение, можно связать защитные биты с распространяемым типом данных. Чтобы связать четыре бита защиты, укажите значение 4.

Зависимости

Чтобы включить этот параметр, задайте для параметра Распространенный тип данных значение Inherit via propagation rule.

Программное использование

Параметр блока: NumBitsAdd
Текст: символьный вектор
Значения: скаляр
По умолчанию: '0'

Приведите вычисленное количество битов, используемых Prop, к полезному значению. Например, если вы нацеливаетесь на процессор, который поддерживает только 8 бит, 16 бит и 32 бита, то вы настраиваете этот параметр на [8,16,32]. Блок всегда распространяет наименьшее заданное значение, которое подходит. Если требуется разрешить все типы данных с фиксированной точкой, следует указать значение 1:128.

Зависимости

Чтобы включить этот параметр, задайте для параметра Распространенный тип данных значение Inherit via propagation rule.

Программное использование

Параметр блока: NumBitsAllowFinal
Текст: символьный вектор
Значения: скаляр или вектор положительных целых чисел
По умолчанию: '1:128'

Распространенное масштабирование

Выберите распространение масштабирования через диалоговое окно, наследование масштабирования из опорных сигналов или вычисление масштабирования для получения наилучшей точности.

Программное использование

Параметр блока: PropScalingMode
Текст: символьный вектор
Значения: Inherit via propagation rule | Specify via dialog | Obtain via best precision
По умолчанию: Inherit via propagation rule

Задайте масштаб как уклон или уклон и смещение.

Зависимости

Чтобы включить этот параметр, установите для параметра Распространенное масштабирование значение Specify via dialog.

Программное использование

Параметр блока: PropScaling
Текст: символьный вектор
Значения: Slope | [Slope Bias]
По умолчанию: '2^-10'

Укажите любые значения, которые будут использоваться для ограничения точности, такие как верхний и нижний пределы на распространяемом входе. На основе типа данных блок выбирает масштабирование так, что эти значения могут быть представлены без ошибки переполнения и минимальной ошибки квантования.

Зависимости

Чтобы включить этот параметр, установите для параметра Распространенное масштабирование значение Obtain via best precision.

Программное использование

Параметр блока: ValuesUsedBestPrec
Текст: символьный вектор
Значения: вектор значений
По умолчанию: '[5 -7]'

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

Значение параметраОписание

Slope1

Наклон Пропа задаётся наклоном Ref1.

Slope2

Наклон Пропа задаётся наклоном Ref2.

max([Slope1 Slope2])

Наклон Prop задается максимальным наклоном опорных сигналов.

min([Slope1 Slope2])

Наклон Prop задается минимальным наклоном опорных сигналов.

Slope1*Slope2

Наклон Пропа задаётся произведением откосов опорного сигнала.

Slope1/Slope2

Наклон Пропа задаётся отношением откоса Ref1 к откосу Ref2.

PosRange1

Диапазон Prop задается диапазоном Ref1.

PosRange2

Диапазон Prop задается диапазоном Ref2.

max([PosRange1 PosRange2])

Диапазон Prop задается максимальным диапазоном опорных сигналов.

min([PosRange1 PosRange2])

Диапазон Prop задается минимальным диапазоном опорных сигналов.

PosRange1*PosRange2

Диапазон Prop задается произведением диапазонов опорных сигналов.

PosRange1/PosRange2

Диапазон Prop задается отношением диапазона Ref1 к диапазону Ref2.

Вы контролируете точность Prop с помощью Slope1 и Slope2, и вы управляете диапазоном Prop с PosRange1 и PosRange2. Также, PosRange1 и PosRange2 на один бит выше максимального положительного диапазона ассоциированного опорного сигнала.

Зависимости

Чтобы включить этот параметр, установите для параметра Распространенное масштабирование значение Inherit via propagation rule.

Программное использование

Параметр блока: SlopeBase
Текст: символьный вектор
Значения: 'Slope1' | 'Slope2' | 'max([Slope1 Slope2])' | 'min([Slope1 Slope2])' | 'Slope1*Slope2' | 'Slope1/Slope2' | 'PosRange1' | 'PosRange2' | 'max([PosRange1 PosRange2])' | 'min([PosRange1 PosRange2])' | 'PosRange1*PosRange2' | 'PosRange1/PosRange2'
По умолчанию: 'min([Slope1 Slope2])'

Укажите уклон, используемый реквизитом, путем включения мультипликативной корректировки, использующей тип данных double. Например, если требуется 3 бита дополнительной точности (с соответствующим уменьшением диапазона), мультипликативная корректировка будет 2^-3.

Зависимости

Чтобы включить этот параметр, установите для параметра Распространенное масштабирование значение Inherit via propagation rule.

Программное использование

Параметр блока: SlopeMult
Текст: символьный вектор
Значения: скаляр
По умолчанию: '1'

Укажите уклон, используемый реквизитом, путем включения аддитивной корректировки, использующей тип данных double. Дополнительная регулировка уклона часто не требуется. Наиболее вероятным использованием является установка мультипликативной корректировки на 0и задайте аддитивную корректировку, чтобы принудить конечный откос к заданному значению.

Зависимости

Чтобы включить этот параметр, установите для параметра Распространенное масштабирование значение Inherit via propagation rule.

Программное использование

Параметр блока: SlopeAdd
Текст: символьный вектор
Значения: скаляр
По умолчанию: '0'

Укажите смещение, используемое Prop для базового типа данных. Значения параметров описываются следующим образом:

Значение параметраОписание

Bias1

Смещение Prop определяется смещением Ref1.

Bias2

Смещение Prop определяется смещением Ref2.

max([Bias1 Bias2])

Смещение Prop определяется максимальным смещением опорных сигналов.

min([Bias1 Bias2])

Смещение Prop определяется минимальным смещением опорных сигналов.

Bias1*Bias2

Смещение Prop определяется произведением смещений опорного сигнала.

Bias1/Bias2

Смещение Prop определяется отношением смещения Ref1 к смещению Ref2.

Bias1+Bias2

Смещение Prop задается суммой опорных смещений.

Bias1-Bias2

Смещение Prop определяется разностью опорных смещений.

Зависимости

Чтобы включить этот параметр, установите для параметра Распространенное масштабирование значение Inherit via propagation rule.

Программное использование

Параметр блока: BiasBase
Текст: символьный вектор
Значения: 'Bias1' | 'Bias2' | 'max([Bias1 Bias2])' | 'min([Bias1 Bias2])' | 'Bias1*Bias2' | 'Bias1/Bias2' | 'Bias1+Bias2' | 'Bias1-Bias2'
По умолчанию: 'Bias1'

Укажите смещение, используемое Prop, путем включения мультипликативной корректировки, которая использует тип данных double.

Этот параметр отображается только в том случае, если для параметра «Распространенное масштабирование» задано значение Inherit via propagation rule.

Программное использование

Параметр блока: BiasMult
Текст: символьный вектор
Значения: скаляр
По умолчанию: '1'

Укажите смещение, используемое Prop, путем включения аддитивной корректировки, которая использует тип данных double.

Если вы хотите гарантировать, что смещение, связанное с Prop, равно нулю, настройте как мультипликативную корректировку, так и аддитивную корректировку на 0.

Зависимости

Чтобы включить этот параметр, установите для параметра Распространенное масштабирование значение Inherit via propagation rule.

Программное использование

Параметр блока: BiasAdd
Текст: символьный вектор
Значения: скаляр
По умолчанию: '0'

Характеристики блока

Типы данных

Boolean | double | fixed point | integer | single

Прямой проход

yes

Многомерные сигналы

yes

Сигналы переменного размера

yes

Обнаружение пересечения нулей

no

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

Преобразование с фиксированной точкой
Проектирование и моделирование систем с фиксированной точкой с помощью Designer™ с фиксированной точкой.

Представлен до R2006a