Переключите выход между различными входами на основе значения первого входа
Simulink/Маршрутизация сигнала
HDL-кодер/сигнальная маршрутизация
Блок Index Vector является специальным строением блока Multiport Switch, в которой вы задаете один вход данных, и вход управления основан на нуле. Выход блока является элементом входного вектора, индекс которого соответствует входу управления. Для примера, если вектор входа [18 15 17 10]
и вход управления 3
элемент, который соответствует индексу 3 (на нуле), равен 10, и это становится выходом значением.
Чтобы сконфигурировать блок Multiport Switch, чтобы работать как Index Vector набор блоков Number of data ports на 1
и Data port order к Zero-based contiguous
.
Для получения дополнительной информации о Блоке switch Multiport, смотрите Multiport Switch страницы с описанием блока.
Port_1
- Управляющий сигналУправляющий сигнал, заданный как скаляр. Когда вход управления не является целым значением, блок обрезает значение до целого числа путем округления до нуля.
Для получения информации об управляющих сигналах перечисляемого типа смотрите Инструкции по установке параметров для перечисляемого порта управления на странице Multiport Switch block ref.
Если сигнал управления является числовым, сигнал управления не может быть комплексным.
Если управляющий сигнал является перечисленным сигналом, блок использует значение базового целого числа, чтобы выбрать порт данных.
Если базовое целое число не соответствует входным данным, возникает ошибка.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
0 or 1
- Первый вход данныхПервый вход данных, заданный как скаляр или вектор. Порт помечается 0, когда вы задаете Data port order Zero-based contiguous
и маркировались 1, когда вы Data port order One-based contiguous
.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| bus
| enumerated
| string
Port_1
- Выбранный вход данных, основанный на значении сигналов управленияБлок выводит выбранное значение из вектора входных данных, согласно значения сигналов управления. Выход является скаляром.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Data port order
- Тип упорядоченного расположения для входных портов данныхZero-based contiguous
(по умолчанию) | One-based contiguous
| Specify indices
Укажите тип упорядоченного расположения для входных портов данных.
Zero-based contiguous
- Блок использует нулевую индексацию для упорядоченного расположения смежных портов данных. Это значение по умолчанию для блока Index Vector.
One-based contiguous
- Блок использует индексацию на основе одного для упорядоченного расположения смежных портов данных. Это значение по умолчанию для блока Multiport Switch.
Specify indices
- Блок использует несмежную индексацию для упорядоченного расположения портов данных. Это значение поддерживается только для строений с двумя или более портами входных данных.
Когда порт управления имеет перечисленный тип, выберите Specify indices
.
Если вы выбираете Zero-based contiguous
или One-based contiguous
, проверьте, что порт управления не имеет перечисленного типа. Это строение устарело и приводит к ошибке. Можно запустить Upgrade Advisor в модели, чтобы заменить каждый Multiport Switch блок этого строения блоком, который явно задает индексы портов данных. См. «Обновление моделей».
Избегайте ситуаций, когда блок содержит неиспользованные порты данных для симуляции или генерации кода. Когда порт управления имеет тип данных с фиксированной точкой или встроенный тип, проверьте, что все индексы портов данных являются представимыми с этим типом. В противном случае происходит следующее поведение блоков:
Если блок имеет неиспользованные порты данных, и порядок портов данных следующий: | Блок производит: |
---|---|
Zero-based contiguous или One-based contiguous
| Предупреждение |
Specify indices
| Ошибка |
Выбор Zero-based contiguous
или One-based contiguous
включает параметр Number of data ports.
Выбор Specify indices
включает параметр Data port indices.
Параметры блоков:
DataPortOrder
|
Тип: Вектор символов |
Значения:
'Zero-based contiguous' | 'One-based contiguous' | 'Specify indices' |
По умолчанию:
'Zero-based contiguous' |
Number of data ports
- Количество входных портов данных1
(по умолчанию) | целое число от 1 до 65536Укажите количество входных портов данных для блока.
Чтобы включить этот параметр, установите Data port order равным Zero-based contiguous
или One-based contiguous
.
Параметры блоков:
Inputs
|
Тип: Вектор символов |
Значения: целое число от 1 до 65536 |
По умолчанию:
'1' |
Require all data port inputs to have the same data type
- Требовать, чтобы все входы имели совпадающий тип данныхoff
(по умолчанию) | on
Установите этот флажок, чтобы потребовать, чтобы все порты входа данных имели совпадающий тип данных. Когда вы снимаете этот флажок, блок позволяет входам портов данных иметь различные типы данных.
Параметры блоков: InputSameDT |
Тип: Вектор символов |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Output minimum
- Минимальное выходное значение для проверки области значений[]
(по умолчанию) | скаляромБолее низкое значение выходной области значений, который Simulink® проверки.
Simulink использует минимум для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков») для некоторых блоков.
Проверка области значений симуляции (см. «Задание диапазонов сигнала» и «Включение проверки области значений симуляции»).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов симуляции, таких как SIL или режим external mode. Для получения дополнительной информации смотрите Оптимизировать используя указанные минимальное и максимальное значения (Embedded Coder).
Примечание
Output minimum не насыщает или не зажимает фактический выходной сигнал. Вместо этого используйте блок Saturation.
Параметры блоков: OutMin |
Тип: Вектор символов |
Значения: '[ ]' | скаляр |
По умолчанию: '[ ]' |
Output maximum
- Максимальное выходное значение для проверки области значений[]
(по умолчанию) | скаляромВерхнее значение выходной области значений, который Simulink проверяет.
Simulink использует максимальное значение для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков») для некоторых блоков.
Проверка области значений симуляции (см. «Задание диапазонов сигнала» и «Включение проверки области значений симуляции»).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов симуляции, таких как SIL или режим external mode. Для получения дополнительной информации смотрите Оптимизировать используя указанные минимальное и максимальное значения (Embedded Coder).
Примечание
Output maximum не насыщает или не зажимает фактический выходной сигнал. Вместо этого используйте блок Saturation.
Параметры блоков: OutMax |
Тип: Вектор символов |
Значения: '[ ]' | скаляр |
По умолчанию: '[ ]' |
Output data type
- Задайте тип выходных данныхInherit: Inherit via internal rule
(по умолчанию) | Inherit: Inherit via back propagation
| Inherit: Same as first data input
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| string
| <data type expression>
Выберите тип данных для выхода. Тип может быть унаследован, задан непосредственно или выражен как объект типа данных, такой как Simulink.NumericType
.
Когда вы выбираете унаследованную опцию, блок ведет себя следующим образом:
Inherit: Inherit via internal rule
- Simulink выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, принимая во внимание свойства встроенного целевого оборудования. Если вы измените настройки целевого процессора, тип данных, выбранный внутренним правилом, может измениться. Не всегда программное обеспечение может оптимизировать эффективность кода и числовую точность одновременно. Если внутреннее правило не соответствует вашим конкретным потребностям в числовой точности или эффективности, используйте одну из следующих опций:
Явным образом задайте тип выходных данных.
Явным образом задайте тип данных по умолчанию, такой как fixdt(1,32,16)
а затем используйте Fixed-Point Tool, чтобы предложить типы данных для вашей модели. Для получения дополнительной информации см. fxptdlg
(Fixed-Point Designer).
Чтобы задать свое собственное правило наследования, используйте Inherit: Inherit via back propagation
а затем используйте блок Data Type Propagation. Примеры использования этого блока доступны в библиотеке Signal Attributes Data Type Propagation Examples блоке.
Inherit: Inherit via back propagation
- Использует тип данных ведущего блока.
Inherit: Same as first data input
- Использует тип данных первого входного порта данных.
Параметры блоков: OutDataTypeStr |
Тип: Вектор символов |
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | '<data type expression>' |
По умолчанию: 'Inherit: Inherit via internal rule' |
Lock output data type setting against changes by the fixed-point tools
- Предотвратить переопределение типов данных инструментами с фиксированной точкойoff
(по умолчанию) | on
Выберите, чтобы заблокировать настройку типа выходных данных этого блока от изменений с помощью Fixed-Point Tool и Fixed-Point Advisor. Для получения дополнительной информации смотрите Использование настройки типа выходных данных блокировки (Fixed-Point Designer).
Параметры блоков: LockScale |
Тип: Вектор символов |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Integer rounding mode
- Задайте режим округления для операций с фиксированной точкойFloor
(по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Выберите один из следующих режимов округления.
Ceiling
Округлает как положительные, так и отрицательные числа к положительной бесконечности. Эквивалентно MATLAB®
ceil
функция.
Convergent
Округлить число до ближайшего представимого значения. Если происходит связывание, округляет до ближайшего четного целого числа. Эквивалентно Fixed-Point Designer™ convergent
функция.
Floor
Округлает как положительные, так и отрицательные числа к отрицательной бесконечности. Эквивалентно MATLAB floor
функция.
Nearest
Округлить число до ближайшего представимого значения. Если происходит галстук, округляет к положительной бесконечности. Эквивалентен Fixed-Point Designer nearest
функция.
Round
Округлить число до ближайшего представимого значения. Если происходит связывание, округляет положительные числа к положительной бесконечности и округляет отрицательные числа к отрицательной бесконечности. Эквивалентен Fixed-Point Designer round
функция.
Simplest
Автоматически выбирает между скруглением к полу и скруглением к нулю, чтобы сгенерировать код округления, который максимально эффективен.
Zero
Число округлений к нулю. Эквивалентно MATLAB fix
функция.
Параметры блоков: RndMeth |
Тип: Вектор символов |
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
По умолчанию: 'Floor' |
Для получения дополнительной информации см. раздел Округление (Fixed-Point Designer).
Saturate on integer overflow
- Метод действия переполненияoff
(по умолчанию) | on
Укажите, будут ли переполнения насыщаться или переноситься.
off
- Переполнения переходят к соответствующему значению, которое может представлять тип данных.
Для примера число 130 не помещается в 8-разрядное целое число со знаком и переносами к -126.
on
- Переполнения достигают минимального или максимального значения, которое может представлять тип данных.
Для примера переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщаться до -128 или 127.
Совет
Рассмотрите выбор этого флажка, когда ваша модель имеет возможное переполнение, и вы хотите явную защиту от насыщения в сгенерированном коде.
Рассмотрите снятие этого флажка, когда вы хотите оптимизировать эффективность вашего сгенерированного кода.
Снятие этого флажка также помогает вам избежать переопределения того, как блок обрабатывает сигналы вне области допустимого. Для получения дополнительной информации смотрите Поиск и устранение ошибок диапазона сигнала.
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, а не только к выходу или результату.
В целом процесс генерации кода может обнаружить, когда переполнение невозможно. В этом случае генератор кода не производит код насыщения.
Параметры блоков: SaturateOnIntegerOverflow |
Тип: Вектор символов |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Allow different data input sizes (Results in variable-size output signal)
- Разрешить входные сигналы с различными размерамиoff
(по умолчанию) | on
Установите этот флажок, чтобы разрешить входные сигналы с различными размерами.
On
- Позволяет входные сигналы с различными размерами и распространять размер входного сигнала на выходной сигнал. В этом режиме блок генерирует выходной сигнал переменного размера.
Off
- Требует, чтобы все нескалярные входные сигналы данных были одинакового размера.
Параметр: AllowDiffInputSizes |
Тип: Вектор символов |
Значение: 'on' | 'off' |
По умолчанию: 'off' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Блок Вектор является блоком Multiport Switch с Number of data ports набором 1. Для получения информации о генерации HDL-кода см. Multiport Switch.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.