MVB Item Collision Resolver

ENTITY MVB_ITEM_COLLISION_RESOLVER IS

The component MVB_ITEM_COLLISION_RESOLVER ensures that only Items with different data are valid at the output in each clock cycle. When the data at the output are the same, they are invalidated (all but one).

The data are stored in a FIFO and await to be read. After each read (TX_DST_RDY=’1’), the logic analyzes the output data anew and recalculates the valid signal (TX_VALID). This mechanism nullifies Item collisions at the cost of lowering the throughput in such cases.

Generics

Generic

Type

Default

Description

ITEM_WIDTH

natural

10

META_WIDTH

natural

10

ITEMS

natural

4

DEVICE

string

“AGILEX”

Ports

Port

Type

Mode

Description

CLK

std_logic

in

RESET

std_logic

in

RX_DATA

slv_array_t (ITEMS-1 downto 0)(ITEM_WIDTH-1 downto 0)

in

RX_META

slv_array_t (ITEMS-1 downto 0)(META_WIDTH-1 downto 0)

in

RX_VALID

std_logic_vector(ITEMS-1 downto 0)

in

RX_SRC_RDY

std_logic

in

RX_DST_RDY

std_logic

out

TX_DATA

slv_array_t (ITEMS-1 downto 0)(ITEM_WIDTH-1 downto 0)

out

TX_META

slv_array_t (ITEMS-1 downto 0)(META_WIDTH-1 downto 0)

out

TX_VALID

std_logic_vector(ITEMS-1 downto 0)

out

TX_SRC_RDY

std_logic

out

TX_DST_RDY

std_logic

in