Документация Engee

Bit Concat

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

bit concat

Описание

Блок Bit Concat объединяет до 16 входных слов в одно выходное. Входной порт L обозначает младшее входное слово. Входной порт H обозначает старшее входное слово. Для скалярных входов к блоку должны быть подключены два или более входных сигналов. Для векторных входов к блоку должен быть подключен хотя бы один вход. Порядок слов на выходе справа налево повторяет порядок входных слов от младшего к старшему. Подробнее о работе блока см. в разделе Алгоритмы.

Порты

Вход

H — старшее входное слово
скаляр | вектор | матрица

Старшее слово на входе блока, которое становится крайним левым значением в объединенном выходном сигнале.

Типы данных: Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool, Fixed

L — младшее входное слово
скаляр | вектор | матрица

Младшее слово на входе блока, которое становится крайним правым значением в объединенном выходном сигнале.

Типы данных: Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool, Fixed

Выход

Output — объединенное выходное слово
скаляр | вектор | матрица

На выходе получается объединенное слово, расположенное в порядке от младшего к старшему значению входных слов. Максимальный размер слова на выходе составляет 16 бит.

Типы данных: Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Параметры

Number of Inputs — количество входных сигналов
2 (по умолчанию) | целое положительное число, меньшее или равное 16

Количество входных сигналов в виде целого положительного числа. Количество входных портов на иконке блока обновляется, когда значение параметра Number of Inputs изменяется. Минимальное количество сигналов — 1, максимальное — 16.

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

Параметр блока

numInputs

Значения

целое положительное число, меньшее или равное 16

По умолчанию

2

Алгоритмы

Принцип работы блока зависит от количества и размеров входов:

  • Один входной порт: на входной порт поступает скаляр или вектор. Если входной сигнал — вектор, генератор кода объединяет отдельные элементы вектора. Например, если входным вектором является [1 2] с типом данных UInt8, на выходе объединяются элементы 1 и 2 таким образом, что 1 образует старший значащий бит (MSB). На выходе получаем скаляр типа UInt16 с битовым представлением 0000000100000010 = 258.

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

    • Если на один входной порт поступает скаляр, а на другой вектор, то генератор кода выполняет скалярное расширение. Каждый элемент вектора объединяется со скаляром, и на выходе получается вектор той же размерности, что и вектор на входе. Например, рассмотрим вектор [1 2], подаваемый на вход порта H, и скалярное значение 3, подаваемое на вход порта L. Оба входа имеют тип данных UInt8. На выходе получается вектор с типом данных UInt16, который объединен таким образом, что старший значащий бит является объединением элементов 1 и 3, а младший значащий бит — объединением элементов 2 и 3.

    • Если на оба входных порта поступают вектора, они должны иметь одинаковый размер. В этом случае последний элемент — это младшее слово, а первый элемент — старшее слово. Например, рассмотрим два входных вектора [1 2] и [3 4], которые имеют тип данных UInt8. На выходе получается вектор с типом данных UInt16, который объединен таким образом, что старший значащий бит является объединением элементов 1 и 3, а младший значащий бит — объединением элементов 2 и 4.

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