Установите тип данных и масштабирование распространяемого сигнала на основе информации от опорных сигналов
Атрибуты Simulink/Signal
Блок 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
на один бит выше точной максимальной положительной области значений сигнала.
Вычисленное количество битов повышается до наименьшего допустимого значения, которое больше или равно расчету. Если этого нет, блок возвращает ошибку.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|