Skip to content

NetFPGA 1G CML nf1_cml_interface_v1_00_a

jhirata edited this page Oct 2, 2014 · 3 revisions

Name

nf1_cml_interface

Version

v1.00a

Type

pcore (HW)

Location

lib/hw/contrib/pcores/nf1_cml_interface_v1_00_a

Interface Types

AXI4-Stream, AXI-Lite, RGMII

Busses

M_AXIS: Master AXI4-Stream (RX) bus, 8 bit minimum

S_AXIS: Slave AXI4-Stream (TX) bus, 8 bit minimum

Parameters

Parameter Description
C_MAC_SEL Select which MAC implementation to use. 0: TRIMAC Lite, 1: TRIMAC, 2: UCSD Gig MAC
C_INCLUDE_IDELAYCTRL All for 1G ports share the IDELAYCTRL between them. Only one of the instantiated ports may include the IDELAYCTRL.
C_M_AXIS_DATA_WIDTH Width of AXIS Master (RX) bus. Can be 8, 32, 64, 256
C_S_AXIS_DATA_WIDTH Width of AXIS Slave (TX) bus. Can be 8, 32, 64, 256
The following parameters are only available with the TRIMAC Lite and UCSD MAC:
Parameter Description Values
C_TX_EN Enable TX by default? 1=Yes, 0=No
C_TX_FCS_EN Disable automatic padding and checksum generation by default 1=Yes, 0=No
C_TX_JUMBO_EN Enable TX jumbo packets by default 1=Yes, 0=No
C_RX_EN Enable RX by default 1=Yes, 0=No
C_RX_FCS_EN Pass on the RX frame checksum by default 1=Yes, 0=No
C_RX_JUMBO_EN Enable RX jumbo packets by default 1=Yes, 0=No

The following parameters are only available with the TRIMAC Lite:

Parameter Description Values
C_TX_VLAN_EN Enable TX VLAN packets by default 1=Yes, 0=No
C_TX_FC_EN Enable TX flow control by default 1=Yes, 0=No
C_TX_HD_EN Enable TX half duplex by default 1=Yes, 0=No
C_TX_IFG_ADJUST_EN Enable interframe gap alternate value by default 1=Yes, 0=No
C_TX_MAX_FRAME_EN Enable maximum transmittable frame size specified by TX Max Frame Size register by default 1=Yes, 0=No
C_TX_MAX_FRAME_SIZE Default TX Max Frame Size register value 1518 - 65535
C_TX_PAUSE_MAC_ADDR Transmitter pause frame source address
C_TX_RESET Hold TX in reset by default? 1=Yes, 0=No
C_RX_VLAN_EN Enable RX VLAN packets by default 1=Yes, 0=No
C_RX_FC_EN Enable RX flow control by default 1=Yes, 0=No
C_RX_HD_EN Enable RX half duplex by default 1=Yes, 0=No
C_RX_PROMISCUOUS_EN Enable RX promiscous mode by default 1=Yes, 0=No
C_RX_LEN_TYPE_CHK_DIS Disable length/type error check by default 1=Yes, 0=No
C_RX_CONTROL_LEN_CHK_DIS Disable checks on control frame lengths by default 1=Yes, 0=No
C_RX_MAX_FRAME_EN Enable maximum receivable frame size specified by the RX Max Frame Size register by default 1=Yes, 0=No
C_RX_MAX_FRAME_SIZE Default RX Max Frame Size register value 1518 - 65535
C_RX_PAUSE_MAC_ADDR Receiver pause frame source address
C_RX_RESET Hold RX in reset by default? 1=Yes, 0=No

Register map

The TRIMAC uses registers from the Tri-Mode Ethernet MAC. Please see LogiCORE IP Tri-Mode Ethernet MAC v5.5 Product Guide for more details.

The TRIMAC Lite and UCSD MAC both use a separate set of registers. However, the only valid bits for the UCSD mac are the TX_EN, TX_FCS_EN, TX_JUMBO_EN, RX_EN, RX_FCS_EN, and RX_JUMBO_EN.

Offset Name Description
0x00 RX_CTRL RX control register
0x08 RX_PAUSE_HI RX pause control address high bits
0x0c RX_PAUSE_LO RX pause control address low bits
0x10 TX_CTRL TX control register
0x18 TX_PAUSE_HI TX pause control address high bits
0x1c TX_PAUSE_LO TX pause control address low bits

Register Descriptions

RX_CTRL
Bits Name Default Value Description
31:16 RX_MAX_FRAME_SIZE C_RX_MAX_FRAME_SIZE Receiver Max Frame Size
15 Reserved
14 RX_MAX_FRAME_EN C_RX_MAX_FRAME_EN Receiver Max Frame Enable
13:12 Reserved
11 RX_PROMISCUOUS_EN C_RX_PROMISCUOUS_EN Promiscuous Mode
10 Reserved
9 RX_CONTROL_LEN_CHK_DIS C_RX_CONTROL_LEN_CHK_DIS Receiver Control Frame Length Check Disable
8 RX_LEN_TYPE_CHK_DIS C_RX_LEN_TYPE_CHK_DIS Receiver Length/Type Error Check Disable
7 Reserved
6 RX_HD_EN C_RX_HD_EN Receiver Half-Duplex
5 RX_FC_EN C_RX_FC_EN Receiver Flow Control Enable
4 RX_JUMBO_EN C_RX_JUMBO_EN Receiver Jumbo Frame Enable
3 RX_FCS_EN C_RX_FCS_EN Receive In-Band FCS Enable
2 RX_VLAN_EN C_RX_VLAN_EN Receive VLAN Enable
1 RX_EN C_RX_EN Receiver Enable
0 RX_RESET C_RX_RESET Receiver Reset
RX_PAUSE_HI
Bits Name Default Value Description
31:16 Reserved
15:0 RX_PAUSE_MAC_ADDR_HI C_RX_PAUSE_MAC_ADDR_HI Receiver Pause Frame Source Address bits 47 - 32
RX_PAUSE_LOW
Bits Name Default Value Description
31:0 RX_PAUSE_MAC_ADDR_LO C_RX_PAUSE_MAC_ADDR_LO Receiver Pause Frame Source Address bits 31 - 0
TX_CTRL
Bits Name Default Value Description
31:16 TX_MAX_FRAME_SIZE C_TX_MAX_FRAME_SIZE Transmitter Max Frame Size
15 Reserved
14 TX_MAX_FRAME_EN C_TX_MAX_FRAME_EN Transmitter Max Frame Enable
13:9 Reserved
8 TX_IFG_ADJUST_EN C_TX_IFG_ADJUST_EN Interframe Gap Adjust Enable
7 Reserved
6 TX_HD_EN C_TX_HD_EN Transmitter Half-Duplex
5 TX_FC_EN C_TX_FC_EN Transmitter Flow Control Enable
4 TX_JUMBO_EN C_TX_JUMBO_EN Transmitter Jumbo Frame Enable
3 TX_FCS_EN C_TX_FCS_EN Transmit In-Band FCS Enable
2 TX_VLAN_EN C_TX_VLAN_EN Transmit VLAN Enable
1 TX_EN C_TX_EN Transmitter Enable
0 TX_RESET C_TX_RESET Transmitter Reset
TX_PAUSE_HI
Bits Name Default Value Description
31:16 Reserved
15:0 TX_PAUSE_MAC_ADDR_HI C_TX_PAUSE_MAC_ADDR_HI Transmitter Pause Frame Source Address bits 47 - 32
TX_PAUSE_LOW
Bits Name Default Value Description
31:0 TX_PAUSE_MAC_ADDR_LO C_TX_PAUSE_MAC_ADDR_LO Transmitter Pause Frame Source Address bits 31 - 0

Description

This pcore gives you the option of using several different ethernet MACs. The most fully featured MAC is the TRIMAC. It allows operation in 10/100/1000 and lots of configuration of features. TRIMAC Lite allows lots of configuration, but will only opperate at the 1G speed. Both the TRIMAC and TRIMAC Lite require a license from Xilinx. The UCSD MAC is completely open source but it doesn't provide as many of the features as the TRIMAC cores. It only runs at 1G speeds. The only features the UCSD MAC has is the ability to check and generate frame checksums and allow or disallow jumbo frames.

Licenses

To build a bistream with either of the TRIMAC cores included, the end-user must obtain a license for the Xilinx Tri-mode Ethernet MAC. Universities can usually obtain a free license through the Xilinx University Program. Please follow the procedure as described in Licensing.

Clone this wiki locally