MVB Shakedown
- ENTITY MVB_SHAKEDOWN IS
Converts
GenericsRX_ITEMS
item input MVB toTX_ITEMS
amount of single item MVB interfaces. Items can be read independetly and in order (out of order is not tested, UVM verification needed).Generic
Type
Default
Description
RX_ITEMS
natural
4
RX MVB item count
TX_ITEMS
natural
1
TX MVB independent interfaces count (can be merged to one MVB with MERGE component)
ITEM_WIDTH
natural
128
Data item width
SHAKE_PORTS
natural
2
Shake ports, when 1,
RX_ITEMS
must be read from TX interface to accept next transaction on RX MVB. When 2,RX_ITEMS/2
must be read, etc. Scale this number carefully, consumes lot of resources. When one needs value of 3, consider usingMULTI_FIFOX
for such use case. Ingored when using MUX implemetation.USE_MUX_IMPL
boolean
False
If set to true and TX_ITEMS = 1, this component will be implemented as simple multiplexer and logic emulating shakedown. This implementation does not provide buffering and does not break existing logic loops between SRC and DST readies.
DEVICE
string
“AGILEX”
Port
Type
Mode
Description
=====
CLOCK AND RESET
=====
=====
CLK
std_logic
in
RESET
std_logic
in
=====
INPUT MVB INTERFACE
=====
=====
RX_DATA
std_logic_vector(RX_ITEMS*ITEM_WIDTH-1 downto 0)
in
RX_VLD
std_logic_vector(RX_ITEMS-1 downto 0)
in
RX_SRC_RDY
std_logic
in
RX_DST_RDY
std_logic
out
=====
OUTPUT MULTI MVB INTERFACE
=====
=====
TX_DATA
std_logic_vector(TX_ITEMS*ITEM_WIDTH-1 downto 0)
out
Transmit data (one item per MVB)
TX_VLD
std_logic_vector(TX_ITEMS-1 downto 0)
out
Item valid, can be interpreted as
SRC_RDY
TX_NEXT
std_logic_vector(TX_ITEMS-1 downto 0)
in
Next item request, can be interpreted as
DST_RDY