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

Bit Concat

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

Тип: Bit Concat

Путь в библиотеке:

/Basic/Logic and Bit Operations/Bit Concat

Описание

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

Порты

Выход

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

Details

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

Типы данных

Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Поддержка комплексных чисел

Да

Вход

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

Details

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

Типы данных

Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool, Fixed

Поддержка комплексных чисел

Да

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

Details

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

Типы данных

Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool, Fixed

Поддержка комплексных чисел

Да

Параметры

Основные

# Number of Inputs — количество входных сигналов
Int64 integer

Details

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

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

2

Имя для программного использования

numInputs

Настраиваемый

Нет

Вычисляемый

Да

Алгоритмы

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

  • Один входной порт: на входной порт поступает скаляр или вектор. Если входной сигнал — вектор, генератор кода объединяет отдельные элементы вектора. Например, если входным вектором является [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].

Дополнительные возможности

Генерация Си кода: Да