Распространение типа данных
Установите тип данных и масштабирование распространенного сигнала на основе информации от ссылочных сигналов
Описание
Блок Data Type Propagation позволяет вам управлять типом данных и масштабированием сигналов в вашей модели. Можно использовать этот блок наряду с блоками фиксированной точки, которые имеют их параметр типа Выходных данных, сконфигурированный к Inherit: Inherit via back propagation
.
Блок имеет три входных параметра: Ref1 и Ref2 являются ссылочными входными параметрами, в то время как входной параметр Опоры назад - распространяет тип данных и масштабирующуюся информацию, собранную от ссылочных входных параметров. Эта информация затем передается другим блокам фиксированной точки.
Блок обеспечивает много выбора для распространения типа данных и масштабирования информации. Например, можно использовать:
Количество битов от ссылочного сигнала Ref1 или количество битов от самого широкого ссылочного сигнала
Диапазон от ссылочного сигнала Ref2 или области значений ссылочного сигнала с самой большой областью значений
Смещение нуля, независимо от смещений используется ссылочными сигналами
Точность ссылочного сигнала с наименьшим количеством точности
Вы задаете, как информация о типе данных распространена с помощью Распространенного параметра типа данных:
Если вы выбираете Specify via dialog
, то вы вручную задаете тип данных через Распространенное поле редактирования типа данных.
Если вы выбираете Inherit via propagation rule
, то необходимо использовать параметры, описанные в Параметрах.
Вы задаете, как масштабирование информации распространено с помощью Распространенного масштабного коэффициента:
Если вы выбираете Specify via dialog
, то вы вручную задаете масштабирование через Распространенное поле редактирования масштабирования.
Если вы выбираете Inherit via propagation rule
, то необходимо использовать параметры, описанные в Параметрах.
После того, как вы будете использовать информацию от ссылочных сигналов, можно применить второй уровень корректировок типа данных и масштабирования. Для этого используйте отдельные мультипликативные и аддитивные корректировки. Эта гибкость имеет различное использование. Например, если вы предназначаетесь для DSP, затем можно сконфигурировать блок так, чтобы количество битов, сопоставленных с умножением и, накопилось операция (MAC) вдвое более широка, чем входной сигнал и имеет определенное количество "сторожевых" разрядов, добавленных к нему.
Блок Data Type Propagation также обеспечивает механизм, чтобы обеспечить вычисленное количество битов к полезному значению. Например, если вы будете предназначаться для 16-битного микро, затем целевой компилятор C, вероятно, поддержит размеры только 8 битов, 16 битов и 32 битов. Блок обеспечивает эти три выбора, который будет использоваться. Например, предположите, что блок вычисляет размер типа данных 24 битов. Начиная с 24 битов не непосредственно применимо целевым чипом, сигнал обеспечен до 32 битов, который исходно поддержан.
Существует также метод для контакта со ссылочными сигналами с плавающей точкой. Этот метод облегчает создавать проекты, которые легко перенастраиваются между микросхемами фиксированной точки и микросхемами с плавающей точкой.
Блок Data Type Propagation позволяет вам создавать библиотеки полезных подсистем, которые правильно сконфигурированы на основе связанных сигналов. Без этого процесса распространения типа данных подсистемы от библиотеки вряд ли будут работать, как желаемый с большинством сигналов целочисленной или фиксированной точки. Ручное вмешательство потребовалось бы, чтобы конфигурировать тип данных и масштабирование. Во многих ситуациях этот блок может устранить ручное вмешательство.
Правила приоритета
Приоритет параметров диалогового окна уменьшается сверху донизу. Также:
С двойной точностью ссылочные входные параметры имеют приоритет по всем другим типам данных.
Ссылочные входные параметры с одинарной точностью имеют приоритет по типам данных целочисленной и фиксированной точки.
Мультипликативные корректировки выполняются перед аддитивными корректировками.
Количество битов определяется перед точностью, или положительная область значений наследована от ссылочных входных параметров.
PosRange
на один бит выше, чем точная максимальная положительная область значений сигнала.
Вычисленный номер битов способствуется наименьшему допустимому значению, которое больше, чем или равно вычислению. Если ни один не существует, то блок возвращает ошибку.
Порты
Входной параметр
развернуть все
Ref1
— Первый ссылочный сигнал
скаляр | вектор | матрица | массив N-D
Первый ссылочный сигнал, от которого можно собрать тип данных и масштабирующуюся информацию.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| булевская переменная
| фиксированная точка
Ref2
— Второй ссылочный сигнал
скаляр | вектор | матрица | массив N-D
Второй ссылочный сигнал, от которого можно собрать тип данных и масштабирующуюся информацию.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| булевская переменная
| фиксированная точка
Prop
— Распространенный тип данных и масштабирование
тип данных и масштабирование
Тип данных и масштабирующаяся информация, распространенная спиной к модели. После того, как блок собирает тип данных и масштабирующуюся информацию от ссылочных сигналов, можно применить второй уровень корректировок типа данных и масштабирования. Для этого задайте отдельные мультипликативные и аддитивные корректировки в блочном диалоговом окне.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| булевская переменная
| фиксированная точка
Параметры
развернуть все
Распространенный тип
1. Propagated data type
— Режим определения распространенного типа данных
Inherit via propagation rule
(значение по умолчанию) | Specify via dialog
Задайте, распространить ли тип данных через диалоговое окно или наследовать тип данных от ссылочных сигналов.
Зависимости
Установка этого параметра на Specify via dialog
включает 1.1. Распространенный тип данных (e. g. fixdt (1,16), fixdt ('single')).
Программируемое использование
Блочный параметр:
PropDataTypeMode |
Ввод: символьный вектор |
Значения:
'Задайте через диалоговое окно' |, 'Наследовались через правило распространения' |
Значение по умолчанию:
'Inherit via propagation rule' |
1.1. Propagated data type (e.g. fixdt(1,16), fixdt('single'))
— Распространенный тип данных
fixdt(1,16)
(значение по умолчанию) | строка типа данных
Задайте тип данных, чтобы распространить.
Зависимости
Чтобы включить этот параметр, установите 1. Распространенный тип данных к Specify via dialog
.
Программируемое использование
Блочный параметр:
PropDataTypeMode |
Ввод: символьный вектор |
Значения:
'Задайте через диалоговое окно' |, 'Наследовались через правило распространения' |
Значение по умолчанию:
'Inherit via propagation rule' |
1.1 If any reference input is double, output is
— Выходные данные вводят, когда ссылочный входной параметр является двойным
double
(значение по умолчанию) | single
Задайте тип выходных данных как single
или double
. Этот параметр облегчает создавать проекты, которые легко перенастраиваются между микросхемами фиксированной точки и микросхемами с плавающей точкой.
Зависимости
Чтобы включить этот параметр, установите Распространенный тип данных на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
IfRefDouble |
Ввод: символьный вектор |
Значения:
'удвойтесь' | 'single' |
Значение по умолчанию:
'double' |
1.2 If any reference input is single, output is
— Выходные данные вводят, когда ссылочный входной параметр является единственным
single
(значение по умолчанию) | double
Задайте тип выходных данных как single
или double
. Этот параметр облегчает создавать проекты, которые легко перенастраиваются между микросхемами фиксированной точки и микросхемами с плавающей точкой.
Зависимости
Чтобы включить этот параметр, установите Распространенный тип данных на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
IfRefSingle |
Ввод: символьный вектор |
Значения:
'удвойтесь' | 'single' |
Значение по умолчанию:
единственный |
1.3 Is-Signed
— Со знаком из распространенного типа данных
IsSigned1 or IsSigned2
(значение по умолчанию) | IsSigned1
| IsSigned2
| TRUE
| FALSE
Задайте знак Опоры как одно из следующих значений.
Значение параметров | Описание |
---|
IsSigned1
| Опора является типом данных со знаком, если Ref1 является типом данных со знаком. |
IsSigned2
| Опора является типом данных со знаком, если Ref2 является типом данных со знаком. |
IsSigned1 or IsSigned2
| Опора является типом данных со знаком, если или Ref1 или Ref2 являются подписанными типами данных. |
TRUE
| Ref1 и Ref2 проигнорированы, и Опора всегда является типом данных со знаком. |
Ложь
| Ref1 и Ref2 проигнорированы, и Опора всегда является типом данных без знака. |
Например, если сигналом Ref1 является ufix(16)
, сигналом Ref2 является sfix(16)
и - параметром Со знаком является IsSigned1 or IsSigned2
, то Опора обеспечена, чтобы быть типом данных со знаком.
Зависимости
Чтобы включить этот параметр, установите Распространенный тип данных на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
IsSigned |
Ввод: символьный вектор |
Значения:
'IsSigned1' | 'IsSigned2' | 'IsSigned1 или IsSigned2' | 'ВЕРНЫЙ' | 'ЛОЖЬ' |
Значение по умолчанию:
'IsSigned1 or IsSigned2' |
1.4.1 Number-of-bits: Base
— Количество битов для основы распространенного типа данных
max([NumBits1 NumBits2])
(значение по умолчанию) | NumBits1
| NumBits2
| min([NumBits1 NumBits2])
| NumBits1+NumBits2
Задайте количество битов, используемых Опорой для базового типа данных как одно из следующих значений.
Значение параметров | Описание |
---|
NumBits1
| Количество битов для Опоры дано количеством битов для Ref1. |
NumBits2
| Количество битов для Опоры дано количеством битов для Ref2. |
max([NumBits1 NumBits2])
| Количество битов для Опоры дано ссылочным сигналом с наибольшим числом битов. |
min([NumBits1 NumBits2])
| Количество битов для Опоры дано ссылочным сигналом с самым маленьким количеством битов. |
NumBits1+NumBits2
| Количество битов для Опоры дано суммой ссылочных битов сигнала. |
Для получения дополнительной информации о базовом типе данных, обратитесь к Предназначению для Встраиваемого процессора (Fixed-Point Designer).
Зависимости
Чтобы включить этот параметр, установите Распространенный тип данных на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
NumBitsBase |
Ввод: символьный вектор |
Значения:
'NumBits1' | 'NumBits2' | 'макс. ([NumBits1 NumBits2])' | 'min ([NumBits1 NumBits2])' | 'NumBits1+NumBits2' |
Значение по умолчанию:
'max([NumBits1 NumBits2])' |
1.4.2 Number-of-bits: Multiplicative adjustment
— Количество битов для мультипликативной корректировки распространенного типа данных
1
(значение по умолчанию) | положительное целое число
Задайте количество битов, используемых Опорой включением мультипликативной корректировки, которая использует тип данных double
. Например, предположите, что вы хотите гарантировать, что количество битов, сопоставленных с умножением и, накапливается операция (MAC) вдвое более широка, чем входной сигнал. Для этого установите этот параметр на 2
.
Зависимости
Чтобы включить этот параметр, установите Распространенный тип данных на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
NumBitsMult |
Ввод: символьный вектор |
Значения: положительное целое число |
Значение по умолчанию:
'1' |
1.4.3 Number-of-bits: Additive adjustment
— Количество битов для аддитивной корректировки распространенного типа данных
0
(значение по умолчанию) | положительное целое число
Задайте количество битов, используемых Опорой включением аддитивной корректировки, которая использует тип данных double
. Например, если вы выполняете несколько сложений во время операции MAC, результат мог бы переполниться. Чтобы предотвратить переполнение, можно сопоставить "сторожевые" разряды с распространенным типом данных. Чтобы сопоставить четыре "сторожевых" разряда, вы задаете значение 4
.
Зависимости
Чтобы включить этот параметр, установите Распространенный тип данных на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
NumBitsAdd |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию:
'0' |
1.4.4 Number-of-bits: Allowable final values
— Допустимое количество битов в распространенном типе данных
'1:128'
(значение по умолчанию) | скаляр или вектор положительных целых чисел
Обеспечьте вычисленное количество битов, используемых Опорой к полезному значению. Например, если вы предназначаетесь для процессора, который поддерживает только 8 битов, 16 битов и 32 бита, затем вы конфигурируете этот параметр к [8,16,32]
. Блок всегда распространяет самое маленькое заданное значение, которое соответствует. Если бы вы хотите позволить все типы данных фиксированной точки, вы задали бы значение 1:128
.
Зависимости
Чтобы включить этот параметр, установите Распространенный тип данных на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
NumBitsAllowFinal |
Ввод: символьный вектор |
Значения: скаляр или вектор положительных целых чисел |
Значение по умолчанию:
'1:128' |
Распространенное масштабирование
2. Propagated scaling
— Распространенный режим масштабирования
Inherit via propagation rule
(значение по умолчанию) | Specify via dialog
| Obtain via best precision
Примите решение распространить масштабирование через диалоговое окно, наследовать масштабирование от ссылочных сигналов или вычислить масштабирование, чтобы получить лучшую точность.
Программируемое использование
Блочный параметр:
PropScalingMode |
Ввод: символьный вектор |
Значения:
Наследуйтесь через правило распространения |, Задают через диалоговое окно |, Получают через лучшую точность |
Значение по умолчанию:
Inherit via propagation rule |
2.1. Propagated scaling (Slope or [Slope Bias])
— Наклон или наклон и смещение
2^-10
| Slope
| [Slope Bias]
Задайте масштабирование или как наклон или как наклон и смещение.
Зависимости
Чтобы включить этот параметр, установите Распространенное масштабирование на Specify via dialog
.
Программируемое использование
Блочный параметр:
PropScaling |
Ввод: символьный вектор |
Значения:
Наклон | [Наклонное смещение] |
Значение по умолчанию:
'2^-10' |
2.1. Values used to determine best precision scaling
— Значения, чтобы ограничить точность
[5 -7]
(значение по умолчанию)
Задайте любые значения, которые будут использоваться, чтобы ограничить точность, такой как верхнее и нижние пределы на распространенном входном параметре. На основе типа данных блок выбирает масштабирование таким образом, что эти значения могут быть представлены без ошибки переполнения и минимальной ошибки квантования.
Зависимости
Чтобы включить этот параметр, установите Распространенное масштабирование на Obtain via best precision
.
Программируемое использование
Блочный параметр:
ValuesUsedBestPrec |
Ввод: символьный вектор |
Значения: вектор значений |
Значение по умолчанию:
'[5 -7]' |
2.1.1. Slope: Base
— Наклон для основы распространенного типа данных
min([Slope1 Slope2])
(значение по умолчанию) | Slope1
| Slope2
| min([Slope1 Slope2])
| max([Bias1 Bias2])
| Slope1*Slope2
| Slope1/Slope2
| PosRange1
| PosRange2
| max([PosRange1 PosRange2])
| min([PosRange1 PosRange2])
| PosRange1*PosRange2
| PosRange1/PosRange2
Задайте наклон, используемый Опорой для базового типа данных как одно из следующих значений.
Значение параметров | Описание |
---|
Slope1
| Наклон Опоры дан наклоном Ref1. |
Slope2
| Наклон Опоры дан наклоном Ref2. |
max([Slope1 Slope2])
| Наклон Опоры дан максимальным наклоном ссылочных сигналов. |
min([Slope1 Slope2])
| Наклон Опоры дан минимальным наклоном ссылочных сигналов. |
Slope1*Slope2
| Наклон Опоры дан продуктом ссылочных наклонов сигнала. |
Slope1/Slope2
| Наклон Опоры дан отношением наклона Ref1 к наклону Ref2. |
PosRange1
| Область значений Опоры дана областью значений Ref1. |
PosRange2
| Область значений Опоры дана областью значений Ref2. |
max([PosRange1 PosRange2])
| Область значений Опоры дана максимальной областью значений ссылочных сигналов. |
min([PosRange1 PosRange2])
| Область значений Опоры дана минимальной областью значений ссылочных сигналов. |
PosRange1*PosRange2
| Область значений Опоры дана продуктом ссылочных диапазонов сигнала. |
PosRange1/PosRange2
| Область значений Опоры дана отношением области значений Ref1 к области значений Ref2. |
Вы управляете точностью Опоры с Slope1
и Slope2
, и вы управляете областью значений Опоры с PosRange1
и PosRange2
. Кроме того, PosRange1
и PosRange2
на один бит выше, чем максимальная положительная область значений связанного ссылочного сигнала.
Зависимости
Чтобы включить этот параметр, установите Распространенное масштабирование на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
SlopeBase |
Ввод: символьный вектор |
Значения:
'Slope1' | 'Slope2' | 'макс. ([Slope1 Slope2])' | 'min ([Slope1 Slope2])' | 'Slope1*Slope2' | 'Slope1/Slope2' | 'PosRange1' | 'PosRange2' | 'макс. ([PosRange1 PosRange2])' | 'min ([PosRange1 PosRange2])' | 'PosRange1*PosRange2' | 'PosRange1/PosRange2' |
Значение по умолчанию:
'min([Slope1 Slope2])' |
2.1.2. Slope: Multiplicative adjustment
— Наклон мультипликативной корректировки распространенного типа данных
1
(значение по умолчанию) | скаляр
Задайте наклон, используемый Опорой включением мультипликативной корректировки, которая использует тип данных double
. Например, если вы хотите 3 бита дополнительной точности (с соответствующим уменьшением в области значений), мультипликативной корректировкой является 2^-3
.
Зависимости
Чтобы включить этот параметр, установите Распространенное масштабирование на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
SlopeMult |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию:
'1' |
2.1.3. Slope: Additive adjustment
— Наклон аддитивной корректировки распространенного типа данных
0
(значение по умолчанию) | скаляр
Задайте наклон, используемый Опорой включением аддитивной корректировки, которая использует тип данных double
. Аддитивная наклонная корректировка не часто необходима. Наиболее вероятное использование должно установить мультипликативную корректировку 0
и установить аддитивную корректировку обеспечивать итоговый наклон к заданному значению.
Зависимости
Чтобы включить этот параметр, установите Распространенное масштабирование на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
SlopeAdd |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию:
'0' |
2.2.1. Bias: Base
— Основывайте смещение для Опоры
Bias1
(значение по умолчанию) | Bias2
| max([Bias1 Bias2])
| min([Bias1 Bias2])
| Bias1*Bias2
| Bias1/Bias2
| Bias1+Bias2
| Bias1-Bias2
Задайте смещение, используемое Опорой для базового типа данных. Значения параметров описаны можно следующим образом:
Значение параметров | Описание |
---|
Bias1
| Смещение Опоры дано смещением Ref1. |
Bias2
| Смещение Опоры дано смещением Ref2. |
max([Bias1 Bias2])
| Смещение Опоры дано максимальным смещением ссылочных сигналов. |
min([Bias1 Bias2])
| Смещение Опоры дано минимальным смещением ссылочных сигналов. |
Bias1*Bias2
| Смещение Опоры дано продуктом ссылочных смещений сигнала. |
Bias1/Bias2
| Смещение Опоры дано отношением смещения Ref1 к смещению Ref2. |
Bias1+Bias2
| Смещение Опоры дано суммой ссылочных смещений. |
Bias1-Bias2
| Смещение Опоры дано различием ссылочных смещений. |
Зависимости
Чтобы включить этот параметр, установите Распространенное масштабирование на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
BiasBase |
Ввод: символьный вектор |
Значения:
'Bias1' | 'Bias2' | 'макс. ([Bias1 Bias2])' | 'min ([Bias1 Bias2])' | 'Bias1*Bias2' | 'Bias1/Bias2' | 'Bias1+Bias2' | 'Bias1-Bias2' |
Значение по умолчанию:
'Bias1' |
2.2.2. Bias: Multiplicative adjustment
— Мультипликативное смещение для распространенного типа данных
1
(значение по умолчанию) | скаляр
Задайте смещение, используемое Опорой включением мультипликативной корректировки, которая использует тип данных double
.
Этот параметр видим только, когда вы устанавливаете Распространенное масштабирование на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
BiasMult |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию:
'0' |
2.3.2. Bias: Additive adjustment
— Аддитивное смещение для распространенного типа данных
0
(значение по умолчанию) | скаляр
Задайте смещение, используемое Опорой включением аддитивной корректировки, которая использует тип данных double
.
Если вы хотите гарантировать, что смещение, сопоставленное с Опорой, является нулем, сконфигурируйте и мультипликативную корректировку и аддитивную корректировку 0
.
Зависимости
Чтобы включить этот параметр, установите Распространенное масштабирование на Inherit via propagation rule
.
Программируемое использование
Блочный параметр:
BiasAdd |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию:
'0' |
Блокируйте характеристики
Типы данных | double | single | Boolean | base integer | fixed point
|
Прямое сквозное соединение | No
|
Многомерные сигналы | Yes
|
Сигналы переменного размера | Yes
|
Обнаружение пересечения нулем | No
|
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.
Преобразование фиксированной точки
Преобразуйте алгоритмы с плавающей точкой в фиксированную точку с помощью Фиксированной точки Designer™.
Представлено до R2006a