Переключение выхода между различными входами на основе значения первого входа
Одновременная маршрутизация/маршрутизация сигналов
Кодер HDL/маршрутизация сигналов
Блок Index Vector представляет собой специальную конфигурацию блока Multiport Switch, в которой указывается один вход данных, а управляющий вход основан на нуле. Блочный выход - это элемент входного вектора, индекс которого совпадает с управляющим входом. Например, если входной вектор [18 15 17 10] и управляющий вход 3, элемент, соответствующий индексу 3 (на основе нуля), равен 10 и становится выходным значением.
Настройка блока мультипортового коммутатора для работы в качестве блока вектора индекса 1 и порядок портов данных в Zero-based contiguous.
Для получения дополнительной информации о блоке Multiport Switch см. справочную страницу блока 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 при установке для параметра Порядок портов данных значения Zero-based contiguousи с меткой 1 при установке для параметра Порядок портов данных значения 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 - Блок использует индексирование на основе нуля для упорядочения смежных портов данных. Это значение по умолчанию для блока «Вектор индекса».
One-based contiguous - Block использует индексирование на основе одного объекта для упорядочения смежных портов данных. Это значение по умолчанию для блока многопортового коммутатора.
Specify indices - Блок использует несмежное индексирование для упорядочения портов данных. Это значение поддерживается только для конфигураций с двумя или более портами входных данных.
Если порт управления имеет перечисляемый тип, выберите Specify indices.
При выборе Zero-based contiguous или One-based contiguousубедитесь, что порт управления не имеет перечисляемого типа. Эта конфигурация устарела и приводит к ошибке. Для замены каждого блока мультипортового коммутатора данной конфигурации блоком, явно указывающим индексы портов данных, в модели можно запустить помощник по обновлению. См. раздел Модернизация модели.
Избегайте ситуаций, когда блок содержит неиспользуемые порты данных для моделирования или генерации кода. Если порт управления имеет фиксированный или встроенный тип данных, убедитесь, что все индексы портов данных могут быть представлены этим типом. В противном случае происходит следующее поведение блока:
| Если блок имеет неиспользуемые порты данных и порядок портов данных: | Блок производит: |
|---|---|
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 или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMin |
| Текст: символьный вектор |
Значения: '[ ]'| скаляр |
По умолчанию: '[ ]' |
Output maximum - Максимальное выходное значение для проверки дальности[] (по умолчанию) | скалярВерхнее значение диапазона вывода, которое проверяет Simulink.
Simulink использует максимальное значение для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: 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) а затем с помощью инструмента «Фиксированная точка» предложите типы данных для модели. Дополнительные сведения см. в разделе fxptdlg (Конструктор фиксированных точек).
Чтобы указать собственное правило наследования, используйте Inherit: Inherit via back propagation а затем используйте блок распространения типа данных. Примеры использования этого блока доступны в блоке Примеры распространения типов данных библиотеки атрибутов сигнала.
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. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).
Параметр блока: LockScale |
| Текст: символьный вектор |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Integer rounding mode - Укажите режим округления для операций с фиксированной точкойFloor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Simplest | ZeroВыберите один из этих режимов округления.
CeilingОкругляет как положительные, так и отрицательные числа в сторону положительной бесконечности. Эквивалентно MATLAB
®ceil функция.
ConvergentОкругляет число до ближайшего представимого значения. Если возникает связь, округляется до ближайшего чётного целого числа. Эквивалентно Designer™ фиксированной точки convergent функция.
FloorОкругляет как положительные, так и отрицательные числа в сторону отрицательной бесконечности. Эквивалентно MATLAB floor функция.
NearestОкругляет число до ближайшего представимого значения. Если возникает галстук, округляется до положительной бесконечности. Эквивалентно конструктору фиксированных точек nearest функция.
RoundОкругляет число до ближайшего представимого значения. Если возникает связь, округляет положительные числа в сторону положительной бесконечности и округляет отрицательные числа в сторону отрицательной бесконечности. Эквивалентно конструктору фиксированных точек round функция.
SimplestАвтоматический выбор между скруглением по направлению к полу и скруглением по направлению к нулю для создания кода округления, который является максимально эффективным.
ZeroОкругляет число до нуля. Эквивалентно MATLAB fix функция.
Параметр блока: RndMeth |
| Текст: символьный вектор |
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
По умолчанию: 'Floor' |
Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).
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 и синтезированную логику.
Блок вектора индекса является блоком мультипортового коммутатора с числом портов данных, равным 1. Информацию о генерации кода HDL см. в разделе Многопортовый коммутатор.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
