Bit Concat

Объединяет до 128 входных слов в один выход

Библиотека

HDL-кодер/логика и битовые операции

  • Bit Concat block

Описание

Блок Bit Concat объединяет до 128 входных слов в один выход. Порт входа маркирован L определяет входное слово самого низкого порядка. Порт маркирован H определяет входное слово наивысшего порядка. Блок использует bitconcat функция такая, что упорядоченное расположение слов в выходе справа налево следует за упорядоченным расположением входных сигналов от низкого до высокого. Чтобы узнать, как работает блок, см. «Алгоритмы».

Параметры

Number of Inputs: Введите целое число, определяющее количество входных сигналов. Количество входных портов блоков обновляется при изменении Number of Inputs.

  • По умолчанию: 2

  • Минимум: 1

  • Максимум: 128

Внимание

Убедитесь, что Number of Inputs равно количеству сигналов, которые вы соединяете с блоком. Если блок имеет несвязанные входы, ошибка возникает во времени генерации кода.

Порты

Блок имеет до 128 входных портов, с H представляющее входное слово наивысшего порядка, и L представление входного слова самого низкого порядка. Максимальный размер конкатенированного выходного слова составляет 128 биты.

Поддерживаемые типы данных

  • Вход: Фиксированная точка, целое число (со знаком или без знака), Логический

  • Выход: Неподписанная фиксированная точка или целое число

Алгоритмы

Блок использует bitconcat функция для вычисления результата. Как блок работает, зависит от количества и размерностей входов, следующим образом:

  • Один вход: Вход является скаляром или вектором. Когда вход является вектором, генератор кода конкатенирует отдельные векторные элементы. Для примера, если вектор входа [1 2] который имеет тип данных ufix4выходные выходы объединяют элементы 1 и 2 таким образом 1 формирует MSB (самый значительный бит). Выходные выходы:

    y = dec2bin ('00010010') = 18

  • Два входов: Входные параметры являются любой комбинацией скаляра и вектора.

    • Когда один вход скаляром, а другой вектором, генератор кода выполняет скалярное расширение. Каждый векторный элемент конкатенирован со скаляром, и выход имеет ту же размерность, что и вектор. Например, рассмотрим вектор [1 2] вход в H порт и скалярное значение 3 как вход в L порт. Оба входа имеют тип данных ufix4. Выход является вектором, который конкатенируется таким образом, что MSB является конкатенацией элементов 1 и 3, и LSB является конкатенацией элементов 2 и 3.

      y = [dec2bin ('00010011') dec2bin ('00100100')] = [19 35]

    • Когда оба входов являются векторами, они должны иметь одинаковый размер. В этом случае последний элемент является словом самого низкого порядка, а первый элемент является словом самого высокого порядка. Для примера рассмотрим два вектора входа [1 2] и [3 4] которые имеют тип данных ufix4. Выход является вектором, который конкатенируется таким образом, что MSB является конкатенацией элементов 1 и 3, и LSB является конкатенацией элементов 2 и 4.

      y = [dec2bin ('00010011') dec2bin ('00100100')] = [19 36]

  • Три или более входов (максимум 128 входы): Входы являются равномерно скалярными или векторными. Все векторные входы должны иметь одинаковый размер. Для примера рассмотрим три вектора входов [1 2], [3 4], и [5 6] таким образом, что векторные [1 2] - вход в H порт и [5 6] - вход в L порт. В этом случае выход является вектором, который сначала конкатенирует [1 2] и [3 4].

    temp = [dec2bin ('00010011') dec2bin ('00100100')] = [19 36]

    Результат этого расчета затем конкатенируется с вектором [5 6] для создания выхода.

    y = [dec2bin ('000100110101') dec2bin ('001001000110')] = [309 582]

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

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

.

См. также

Блоки

Введенный в R2014a