Объединяет до 128 входных слов в один выход
HDL-кодер/логика и битовые операции
Блок 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]