Wire Merge
Bit concatenation operation. Merges multiple single-bit or multi-bit input vectors into a single wider output vector. Configurable bit ordering (LSB-first or MSB-first). Pure combinational logic (zero latency). Essential for bit field packing and bus construction.
Introduction
This block performs bit merging (concatenation) on standard (non-TM) data streams. It receives multiple input vectors and concatenates them into a single wider output vector.
The operation is purely combinational with zero clock latency.
Input bit ordering is configurable:
- IN_0 LEFT: First input becomes MSBs of output
- IN_0 RIGHT: First input becomes LSBs of output
Pin Description
Properties
Set the number of inputs
Number of input vectors to merge. Range: 2 – 16384. Each input can have its own width.Default: 2
Range: 2 – 16384
Order of the inputs in output vector. IN_0 LEFT option aligns the first input on the LEFT (MSB of IN0 is MSB of OUT)
Bit ordering mode:
IN_0 LEFT (MSBs)→ First input becomes MSBs of outputIN_0 RIGHT (LSBs)→ First input becomes LSBs of output
Default: IN_0 LEFT (MSBs)
Options: IN_0 LEFT (MSBs) IN_0 RIGHT (LBSs)
Functional description
Wire Merge concatenates N input vectors into one output vector.
Bit ordering modes
-
IN_0 LEFT (MSBs):
- IN_0 occupies the leftmost (MSB) positions
- IN_N-1 occupies the rightmost (LSB) positions
- Example: IN_0=[A,B], IN_1=[C,D] → OUT=[A,B,C,D]
-
IN_0 RIGHT (LSBs):
- IN_0 occupies the rightmost (LSB) positions
- IN_N-1 occupies the leftmost (MSB) positions
- Example: IN_0=[A,B], IN_1=[C,D] → OUT=[C,D,A,B]
Example
Given 4 inputs, each 2 bits:
- IN_0 =
10, IN_1 =11, IN_2 =01, IN_3 =00 - IN_0 LEFT: OUT (8 bits) =
10110100 - IN_0 RIGHT: OUT (8 bits) =
00011110
Timing
Purely combinational with zero latency.
Typical use cases
- Building wide data buses from narrow signals
- Packing bit fields into registers
- Constructing communication protocol frames
- Merging status flags into status words