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

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

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

Описание

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

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

Порты

Входной параметр

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

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка

Параметры

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

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

Задайте, распространить ли тип данных через диалоговое окно или наследовать тип данных от ссылочных сигналов.

Зависимости

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

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

Блочный параметр: PropDataTypeMode
Ввод: символьный вектор
Значения: 'Задайте через диалоговое окно' |, 'Наследовались через правило распространения'
Значение по умолчанию: 'Inherit via propagation rule'

Задайте тип данных, чтобы распространить.

Зависимости

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

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

Блочный параметр: PropDataTypeMode
Ввод: символьный вектор
Значения: 'Задайте через диалоговое окно' |, 'Наследовались через правило распространения'
Значение по умолчанию: 'Inherit via propagation rule'

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

Зависимости

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

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

Блочный параметр: IfRefDouble
Ввод: символьный вектор
Значения: 'удвойтесь' | 'single'
Значение по умолчанию: 'double'

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

Зависимости

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

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

Блочный параметр: IfRefSingle
Ввод: символьный вектор
Значения: 'удвойтесь' | 'single'
Значение по умолчанию: единственный

Задайте знак Опоры как одно из следующих значений.

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

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'

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

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

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])'

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

Зависимости

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

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

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

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

Зависимости

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

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

Блочный параметр: NumBitsAdd
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '0'

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

Зависимости

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

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

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

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

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

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

Блочный параметр: PropScalingMode
Ввод: символьный вектор
Значения: Наследуйтесь через правило распространения |, Задают через диалоговое окно |, Получают через лучшую точность
Значение по умолчанию: Inherit via propagation rule

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

Зависимости

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

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

Блочный параметр: PropScaling
Ввод: символьный вектор
Значения: Наклон | [Наклонное смещение]
Значение по умолчанию: '2^-10'

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

Зависимости

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

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

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

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

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

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])'

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

Зависимости

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

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

Блочный параметр: SlopeMult
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '1'

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

Зависимости

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

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

Блочный параметр: SlopeAdd
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '0'

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

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

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'

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

Этот параметр видим только, когда вы устанавливаете Распространенное масштабирование на Inherit via propagation rule.

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

Блочный параметр: BiasMult
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '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

Была ли эта тема полезной?