Data Type Propagation

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

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

  • Data Type Propagation block

Описание

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

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

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

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

  • Область значений от Ref2 опорного сигнала или области значений опорного сигнала с наибольшей области значений

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

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

Вы задаете, как информация о типе данных распространяется с помощью параметра Propagated data type:

  • Если вы выбираете Specify via dialog, затем вы вручную задаете тип данных через Propagated data type поле редактирования.

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

Вы задаете, как информация о масштабировании распространяется с помощью параметра Propagated scaling:

  • Если вы выбираете Specify via dialog, затем вы вручную задаете масштабирование через Propagated scaling поле редактирования.

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

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

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

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

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

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

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

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

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

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

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

  • 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. Propagated data type (e.g. fixdt(1,16), fixdt('single')).

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

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

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

Зависимости

Чтобы включить этот параметр, установите 1. Propagated data type равным Specify via dialog.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated data type равным Inherit via propagation rule.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated data type равным 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 должен быть тип данных со знаком.

Зависимости

Чтобы включить этот параметр, установите Propagated data type равным 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).

Зависимости

Чтобы включить этот параметр, установите Propagated data type равным Inherit via propagation rule.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated data type равным Inherit via propagation rule.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated data type равным Inherit via propagation rule.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated data type равным Inherit via propagation rule.

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

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

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated scaling равным Specify via dialog.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated scaling равным Obtain via best precision.

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

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

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

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

Slope1

Уклон Prop задается уклоном Ref1.

Slope2

Уклон Prop задается уклоном Ref2.

max([Slope1 Slope2])

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

min([Slope1 Slope2])

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

Slope1*Slope2

Уклон Prop задается продуктом опорного сигнала склонов.

Slope1/Slope2

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

Зависимости

Чтобы включить этот параметр, установите Propagated scaling равным 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])'

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

Зависимости

Чтобы включить этот параметр, установите Propagated scaling равным Inherit via propagation rule.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated scaling равным 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 определяется различием эталонных смещений.

Зависимости

Чтобы включить этот параметр, установите Propagated scaling равным Inherit via propagation rule.

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

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

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

Этот параметр видим только, когда вы задаете Propagated scaling Inherit via propagation rule.

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите Propagated scaling равным Inherit via propagation rule.

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

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

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

Типы данных

Boolean | double | fixed point | integer | single

Прямое сквозное соединение

yes

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

yes

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

yes

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

no

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

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

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