Bit Concat
Объединяет до 16 входных слов в одно выходное.
Описание
Блок 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 равно количеству сигналов, которые подключаются к блоку. Если блок имеет неподключенные входы, при генерации кода возникнет ошибка. |
Параметр блока |
|
Значения |
|
По умолчанию |
|
Алгоритмы
Принцип работы блока зависит от количества и размеров входов:
-
Один входной порт: на входной порт поступает скаляр или вектор. Если входной сигнал — вектор, генератор кода объединяет отдельные элементы вектора. Например, если входным вектором является
[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]
.