MFB FRAME TRIMMER

ENTITY MFB_FRAME_TRIMMER IS

The MFB_FRAME_TRIMMER component allows shortening of MFB frames to a selected length. The current implementation is minimalist and does not allow any data shifts. Therefore, there are few restrictions for the new frame length: - max value is original frame length - min value is ((BLOCK_SIZE*ITEM_WIDTH)-(ITEM_WIDTH-1))

Generics

Generic

Type

Default

Description

REGIONS

natural

4

REGION_SIZE

natural

8

BLOCK_SIZE

natural

8

ITEM_WIDTH

natural

8

META_WIDTH

natural

8

LEN_WIDTH

natural

14

DEVICE

string

“AGILEX”

Ports

Port

Type

Mode

Description

CLK

std_logic

in

RESET

std_logic

in

RX_TRIM_EN

std_logic_vector(REGIONS-1 downto 0)

in

Enable frame trimming, valid with RX_SOF.

RX_TRIM_LEN

std_logic_vector(REGIONS*LEN_WIDTH-1 downto 0)

in

New frame length after trimming in ITEMS, max value is original frame length, min value is ((BLOCK_SIZE*ITEM_WIDTH)-(ITEM_WIDTH-1)). The new length is valid with RX_TRIM_EN.

RX_DATA

std_logic_vector(REGIONS*REGION_SIZE*BLOCK_SIZE*ITEM_WIDTH-1 downto 0)

in

RX_META

std_logic_vector(REGIONS*META_WIDTH-1 downto 0)

in

User metadata valid with RX_SOF.

RX_SOF_POS

std_logic_vector(REGIONS*max(1,log2(REGION_SIZE))-1 downto 0)

in

RX_EOF_POS

std_logic_vector(REGIONS*max(1,log2(REGION_SIZE*BLOCK_SIZE))-1 downto 0)

in

RX_SOF

std_logic_vector(REGIONS-1 downto 0)

in

RX_EOF

std_logic_vector(REGIONS-1 downto 0)

in

RX_SRC_RDY

std_logic

in

RX_DST_RDY

std_logic

out

TX_DATA

std_logic_vector(REGIONS*REGION_SIZE*BLOCK_SIZE*ITEM_WIDTH-1 downto 0)

out

TX_META

std_logic_vector(REGIONS*META_WIDTH-1 downto 0)

out

User metadata valid with TX_SOF.

TX_SOF_POS

std_logic_vector(REGIONS*max(1,log2(REGION_SIZE))-1 downto 0)

out

TX_EOF_POS

std_logic_vector(REGIONS*max(1,log2(REGION_SIZE*BLOCK_SIZE))-1 downto 0)

out

TX_SOF

std_logic_vector(REGIONS-1 downto 0)

out

TX_EOF

std_logic_vector(REGIONS-1 downto 0)

out

TX_SRC_RDY

std_logic

out

TX_DST_RDY

std_logic

in