Data Type Propagation

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

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

    HDL Coder / Атрибуты Сигнала

  • 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, затем необходимо использовать параметры, описанные в Параметрах.

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

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

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

После того, как вы будете использовать информацию от опорных сигналов, можно применить второй уровень корректировок типа данных и масштабирования. Для этого используйте отдельные мультипликативные и аддитивные корректировки. Эта гибкость имеет различное использование. Например, если вы предназначаетесь для 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 проигнорированы, и Опора всегда является типом данных со знаком.

FALSE

Ref1 и Ref2 проигнорированы, и Опора всегда является типом данных без знака.

Например, если сигналом 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'

Задайте смещение, используемое Опорой включением мультипликативной корректировки, которая использует тип данных 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 | half | integer | single

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

no

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

yes

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

yes

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

no

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

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

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

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