当前位置:   article > 正文

基于FPGA的万兆以太网MAC_fpga万兆以太网

fpga万兆以太网

        工程中数据量越来越大,千兆以太网已不能满足需求,所以开发万兆网口需提上日程。基于FPGA的万兆网口代码=SFP(光模块) + PCS + PMA + MAC + UDP协议栈。xilinx提供了PCS+PMA,(MAC层也有IP核,但需要购买license)。本文只介绍MAC相关知识点。       

一、MAC层帧格式

(1)Preamble

        前导码,7字节的0x55。

(2)Start of Frame Delimiter(SFD)

        帧分界符,1字节的0xD5

(3)Destination/Source Address

        MAC源/目的地址,6字节。

(4)Length/Type

        如果Length/Type=0x8100/0x88A8表示该帧是VLAN;Length/Type=0x8808表示该帧是流控帧(PAUSE,MAC层控制帧)。

(5)Pad

        pad field长度是0~46B,作用是确保帧长度最少为64B(不包含Preamble和SFD)

(6)FCS

        帧校验码。对destination address,source address,length/type,data,pad,进行CRC32校验。

二、Interframe Gap(帧间隔)

        在进行连续帧发送时,发送完一帧数据后,需要等待一段时间,才能发送下一帧数据,其中等待一段时间称为帧间隔。

        两帧之间的最小时间间隔,最小值为9.6ns对10Gb/s。

DA-Destination address;SA-Source address;L/T-Length/type field;FCS-Frame check sequence(CRC)

三、XGMII_TC/XGMII_RC和XGMII_TDATA/XGMII_RDATA关系

pg068-ten-gig-eth-pcs-pma.pdf • 查看器 • AMD 自适应计算文档门户 (xilinx.com)icon-default.png?t=N7T8https://docs.xilinx.com/v/u/en-US/pg068-ten-gig-eth-pcs-pma

Lanes for 64-bit XGMII Interface
LaneXGMII_TDATA/XGMII_RDATAXGMII_TC/XGMII_RC
0[7:0][0]
1[15:8][1]
2[23:16][2]
3[31:24][3]
4[39:32][4]
5[47:40][5]
6[55:48][6]
7[63:56][7]

XGMII_TC/RC与XGMII_TDATA/XGMII_RDATA之间关系,如下表:

    

  四、64bit 10G Ethement MAC接口信号

        MAC顶层模块接口信号模仿xilinx官方提供的10G Ethemet MAC(15.1)接口,且接口信号时序大家可差看官方提供的pdf资料。

Site Search (amd.com)icon-default.png?t=N7T8https://www.amd.com/en/search/site-search.html#q=pg072

MAC顶层模块接口信号
信号名I/O信号位宽信号功能描述
PHY Interfacexgmii_rxdI64Received data from PHY
xgmii_rxcI8Received control from PHY
xgmii_txdO64Transmit data to PHY
xgmii_txcO8Transmit control to PHY
AXI4-Stream Transmit Interfacetx_axis_tdataI64AXI4-Stream data
tx_axis_tkeepI8AXI4-Stream data control
tx_axis_tvalidI1AXI4-Stream data valid
tx_axis_treadyO1AXI4-Stream acknowledge signal, indicate the start of a data transfer
tx_axis_tlastI1Indicating End of Ethernet Packet
tx_axis_tuserI1 or n/
tx_axis_aresetnI1AXI4-Stream active-low reset for transmit path
tx_ifg_delayI8Configures Interframe Gap adjustment between packets
AXI4-Stream Receive Interfacerx_axis_tdataO64AXI4-Stream data
rx_axis_tkeepO8AXI4-Stream data control
rx_axis_tvalidO1AXI4-Stream data valid
rx_axis_tuserO1/
rx_axis_tlastO1Indicating the end of a packet
rx_axis_aresetnI1AXI4-Stream active-low reset for receive path

          

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/575844
推荐阅读
相关标签
  

闽ICP备14008679号