主要内容

Bit Concat

R2026b

将最多 128 个输入字串联成单个输出

  • Bit Concat block

库:
HDL Coder / Logic and Bit Operations

描述

Bit Concat 模块将最多 128 个输入字串联成单个输出。标注为 L 的输入端口指定最低位输入字。标注为 H 的输入端口指定最高位输入字。对于标量输入,两个或更多输入信号应连接到该模块。对于向量输入,至少有一个输入应连接到该模块。该模块使用 bitconcat 函数,使得输出中字从右到左的顺序遵循输入信号从低到高的顺序。要了解该模块如何工作,请参阅算法。

端口

输入

全部展开

要串联的模块的最高位输入字,它成为串联后输出信号中最左侧的值。

数据类型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

要串联的模块的最低位输入字,它成为串联后输出信号中最右侧的值。

数据类型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

输出

全部展开

输出是按输入字从低到高顺序串联后的字。最大串联输出字长为 65535 位。

数据类型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

参数

全部展开

输入整数,指定输入信号的数量。当您更改输入数目时,模块输入端口的数量会更新。

  • 默认值:2

  • 最小值:1

  • 最大值:128

小心

确保输入数目等于您连接到模块的信号数量。如果模块有未连接的输入,代码生成期间会发生错误。

编程用法

模块参数:numInputs
类型:字符串标量 | 字符向量
值:小于或等于 128 的正整数值
默认值:'2'

算法

该模块使用 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]

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2014a 中推出

全部展开