Software Manager

ENTITY TX_DMA_SW_MANAGER IS

This component provides control interface for TX DMA Calypte controller. It contains MI configuration registers which allows acces from the SW to control some behavior of the controller or to read status information. Each channel has its own set of registers. The component serves as a master when start/stop of a specific channel needs to be done. When start/stop of multiple channels is requested, the channels are started/stopped one after anoter, not all at once.

Generics

Generic

Type

Default

Description

DEVICE

string

“STRATIX10”

Traget device

CHANNELS

natural

8

Total number of DMA Channels within this DMA Endpoint

RECV_PKT_CNT_WIDTH

natural

64

Actual width of packet and byte counters

RECV_BTS_CNT_WIDTH

natural

64

DISC_PKT_CNT_WIDTH

natural

64

DISC_BTS_CNT_WIDTH

natural

64

DATA_POINTER_WIDTH

natural

14

Width of the pointer to data and DMA header buffers signify depth of the internal buffers in the CHANNEL_CORE

DMA_HDR_POINTER_WIDTH

natural

9

PKT_SIZE_MAX

natural

2**12

  • Maximum size of a packet (in bytes)

  • Defines width of Packet length signals.

MI_WIDTH

natural

32

Width of MI bus

Ports

Port

Type

Mode

Description

=====

Clock and Reset

=====

=====

CLK

std_logic

in

RESET

std_logic

in

=====

MI interface for SW access

=====

=====

MI_ADDR

std_logic_vector(MI_WIDTH-1 downto 0)

in

MI_DWR

std_logic_vector(MI_WIDTH-1 downto 0)

in

MI_BE

std_logic_vector(MI_WIDTH/8-1 downto 0)

in

MI_RD

std_logic

in

MI_WR

std_logic

in

MI_DRD

std_logic_vector(MI_WIDTH-1 downto 0)

out

MI_ARDY

std_logic

out

MI_DRDY

std_logic

out

=====

Input packet discart/sent counter interface

=====

=====

PKT_SENT_CHAN

std_logic_vector(log2(CHANNELS)-1 downto 0)

in

PKT_SENT_INC

std_logic

in

PKT_SENT_BYTES

std_logic_vector(log2(PKT_SIZE_MAX+1)-1 downto 0)

in

PKT_DISCARD_CHAN

std_logic_vector(log2(CHANNELS)-1 downto 0)

in

PKT_DISCARD_INC

std_logic

in

PKT_DISCARD_BYTES

std_logic_vector(log2(PKT_SIZE_MAX+1)-1 downto 0)

in

=====

Channel status interface

=====

=====

START_REQ_CHAN

std_logic_vector(log2(CHANNELS)-1 downto 0)

out

START_REQ_VLD

std_logic

out

START_REQ_ACK

std_logic

in

STOP_REQ_CHAN

std_logic_vector(log2(CHANNELS)-1 downto 0)

out

STOP_REQ_VLD

std_logic

out

STOP_REQ_ACK

std_logic

in

ENABLED_CHAN

std_logic_vector(CHANNELS-1 downto 0)

out

general vector of all channels with their activity

HDP_WR_CHAN

std_logic_vector(log2(CHANNELS)-1 downto 0)

in

Hardware pointers writing interface

HDP_WR_DATA

std_logic_vector(DATA_POINTER_WIDTH-1 downto 0)

in

HDP_WR_EN

std_logic

in

HHP_WR_CHAN

std_logic_vector(log2(CHANNELS)-1 downto 0)

in

HHP_WR_DATA

std_logic_vector(DMA_HDR_POINTER_WIDTH-1 downto 0)

in

HHP_WR_EN

std_logic

in

General components