Bit Concat
将最多 16 个输入字合并为一个输出字。
类型: Bit Concat
图书馆中的路径:
|
说明
块 Bit Concat 将最多 16 个输入字合并为一个输出字。输入端口 L 表示最低输入字。输入端口 H 表示最高输入字。对于标量输入,必须有两个或更多输入信号连接到块。对于矢量输入,至少有一个输入必须连接到程序块。从右到左的输出字顺序与从低到高的输入字顺序相同。有关程序块操作的更多详情,请参阅"…… "部分。 算法.
输出
Output - 组合输出字
标量 | 向量 | 矩阵
输出字是一个组合字,按照输入字从最小值到最大值的顺序排列。输出字的最大值为 16 位。
数据类型: Int8
, Int16
, Int32
, Int64
, Int128
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
, Bool
, Fixed
参数
输入信号数 - 输入信号数
2(默认) | `小于或等于 16 的正整数
输入信号的正整数。当 Number of Inputs 的值发生变化时,程序块图标上的输入端口数也会随之更新。信号的最小数目为 "1",最大数目为 "16"。
确保 Number of Inputs 的值等于连接到程序块的信号数。如果单元有未连接的输入端,则在生成代码时会出现错误。 |
块参数 |
|
价值观 |
|
默认值 |
|
算法
程序块的运行原理取决于输入的数量和大小:
-
单输入端口:输入端口输入标量或矢量。如果输入是矢量,代码生成器会组合矢量的各个元素。例如,如果输入向量是数据类型为
UInt8`的
[1 2],则输出会将元素 `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]
结合起来。