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.
GenericsGeneric
Type
Default
Description
ITEM_WIDTH
natural
10
META_WIDTH
natural
10
ITEMS
natural
4
DEVICE
string
“AGILEX”
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