MFB Cutter Simple

ENTITY MFB_CUTTER_SIMPLE IS

This component cuts the specified number of items from each incoming packet. The data which are not cut out, are shifted to the original SOF position and the EOF is lowered by the number of items which have been cut out.

Generics

Generic

Type

Default

Description

=====

MFB DATA BUS CONFIGURATION:

=====

Frame size restrictions:

  • For REGION_SIZE = 1: MIN = (CUTTED_ITEMS+1)*ITEM_WIDTH bits

  • For REGION_SIZE >= 2: MIN = (REGION_SIZE*BLOCK_SIZE+CUTTED_ITEMS)*ITEM_WIDTH bits

REGIONS

natural

2

any positive

REGION_SIZE

natural

8

any power of two

BLOCK_SIZE

natural

8

any power of two except 1

ITEM_WIDTH

natural

8

any positive

META_WIDTH

natural

0

Width of MFB Metadata

META_ALIGNMENT

natural

0

Metadata is valid either with:

  • SOF (MODE 0)

  • EOF (MODE 1)

=====

OTHER CONFIGURATION:

=====

=====

CUTTED_ITEMS

natural

4

Count of cutted items from SOF. Maximum value is REGION_SIZE*BLOCK_SIZE.

Ports

Port

Type

Mode

Description

=====

CLOCK AND RESET

=====

=====

CLK

std_logic

in

RESET

std_logic

in

=====

INPUT MFB INTERFACE WITH CUT ENABLE FLAGS

=====

=====

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

RX_SOF

std_logic_vector(REGIONS-1 downto 0)

in

RX_EOF

std_logic_vector(REGIONS-1 downto 0)

in

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_SRC_RDY

std_logic

in

RX_DST_RDY

std_logic

out

RX_CUT

std_logic_vector(REGIONS-1 downto 0)

in

Enable of cutting, valid with each SOF.

=====

OUTPUT MFB INTERFACE

=====

=====

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

valid on SOF

TX_SOF

std_logic_vector(REGIONS-1 downto 0)

out

TX_EOF

std_logic_vector(REGIONS-1 downto 0)

out

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_SRC_RDY

std_logic

out

TX_DST_RDY

std_logic

in