MVB MUX

Multi-value bus multiplexer. Selects, which input MVB will be transmitting to output MVB.

The selection is done base on received select transactions. For each RX transaction, there must be exactly one select transaction. If there is none, the component will wait until one is received.

ENTITY GEN_MVB_MUX IS

Multi-value bus multiplexer. Selects, which input MVB interface will be transmitting to output MVB. The selection is done base on received select transactions. For each RX transaction, there must be exactly one select transaction. If there is none, the component will wait until one is received.

Generics

Generic

Type

Default

Description

MVB_ITEMS

natural

1

DATA_WIDTH

natural

64

One MVB item width

MUX_WIDTH

natural

2

Number of RX MVB interfaces

FIFO_DEPTH

natural

2

Depth of select FIFO

DEVICE

string

“ULTRASCALE”

Ports

Port

Type

Mode

Description

CLK

std_logic

in

Clock signal

RESET

std_logic

in

Synchronous reset with CLK

RX_DATA

std_logic_vector(MUX_WIDTH * MVB_ITEMS * DATA_WIDTH - 1 downto 0)

in

MUX_WIDTH of RX MVB interfaces

RX_VLD

std_logic_vector(MUX_WIDTH * MVB_ITEMS - 1 downto 0)

in

RX_SRC_RDY

std_logic_vector(MUX_WIDTH - 1 downto 0)

in

RX_DST_RDY

std_logic_vector(MUX_WIDTH - 1 downto 0)

out

TX_DATA

std_logic_vector(MVB_ITEMS * DATA_WIDTH - 1 downto 0)

out

TX MVB interface

TX_VLD

std_logic_vector(MVB_ITEMS - 1 downto 0)

out

TX_SRC_RDY

std_logic

out

TX_DST_RDY

std_logic

in

RX_SEL_DATA

std_logic_vector(max(log2(MUX_WIDTH), 1) - 1 downto 0)

in

MVB interface for select signal, for each RX transaction one wants to multiplex, there must be one select transaction.

RX_SEL_VLD

std_logic_vector(0 downto 0)

in

RX_SEL_SRC_RDY

std_logic

in

RX_SEL_DST_RDY

std_logic

out