MFB Trasformer

ENTITY MFB_TRANSFORMER IS

This component performs changing MFB word size by increasing or decreasing the number of Regions on RX to TX.

There are two possible solutions:
  • RX_REGIONS > TX_REGIONS - Multiple Regions in one word on the RX side are sent in multiple words with fewer Regions from the TX side.

  • RX_REGIONS < TX_REGIONS - Multiple words on the RX side are put together to form one word with multiple Regions on the TX side.

Generics

Generic

Type

Default

Description

=====

MFB Configuration

=====

=====

RX_REGIONS

integer

2

TX_REGIONS

integer

1

REGION_SIZE

integer

1

BLOCK_SIZE

integer

8

ITEM_WIDTH

integer

32

META_WIDTH

integer

0

Ports

Port

Type

Mode

Description

=====

Clock and Reset

=====

=====

CLK

std_logic

in

RESET

std_logic

in

=====

MFB input interface

=====

=====

RX_DATA

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

in

RX_META

std_logic_vector(RX_REGIONS*META_WIDTH-1 downto 0)

in

RX_SOP

std_logic_vector(RX_REGIONS-1 downto 0)

in

RX_EOP

std_logic_vector(RX_REGIONS-1 downto 0)

in

RX_SOP_POS

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

in

RX_EOP_POS

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

in

RX_SRC_RDY

std_logic

in

RX_DST_RDY

std_logic

out

=====

MFB output interface

=====

=====

TX_DATA

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

out

TX_META

std_logic_vector(TX_REGIONS*META_WIDTH-1 downto 0)

out

TX_SOP

std_logic_vector(TX_REGIONS-1 downto 0)

out

TX_EOP

std_logic_vector(TX_REGIONS-1 downto 0)

out

TX_SOP_POS

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

out

TX_EOP_POS

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

out

TX_SRC_RDY

std_logic

out

TX_DST_RDY

std_logic

in