参考资料:pg068:10G Ethernet PCS/PMA v6.0
开发平台:vivado2020.2
开发板卡:axck060(黑金板卡)
FPGA芯片:xcku060ffva_1156_2_i
修改日志:
2024/11/30:仿真调通,添加仿真波形
0,基础知识:
了解XGMII,XAUI
XGMII:
XGMII接口共74根连线,单端信号,采用HSTL/SSTL_2逻辑,端口电压1.5V/2.5V,由于SSTL_2的端口电压高,功耗大,现在已很少使用。HSTL即High Speed Transceiver Logic,高速发送逻辑的意思。SSTL,即Stub Series Terminated Logic,短路终止逻辑,主要用于高速内存接口,SSTL目前存在两种标准,SSTL_3是3.3V标准;SSTL_2是2.5V标准。
主要包括三个部分。一是从MAC层到物理层的发送数据接口,二是从MAC层到物理层的接收数据接口,三是MAC层和物理层之间数据管理的MDIO/MDC接口
74根线(参考千兆以太网的rxc,rxd[7:0],):RXD:32,RXC:4,RXLR:1;TXD:32,TXC:4,TXLR:1

XAUI:10 Gigabit attachment unit interface 10G附属单元接口
由于受电气特性的影响,XGMII接口的PCB走线最大传输距离仅有7cm,并且XGMII接口的连线数量太多,给实际应用带来不便,因此,在实际应用中,XGMII接口通常被XAUI接口代替,XAUI即10 Gigabit attachment unit interface,10G附属单元接口,XAUI在XGMII的基础上实现了XGMII接口的物理距离扩展,将PCB走线的传输距离增加到50cm,使背板走线成为可能。
源端XGMII把收发32位宽度数据流分为4个独立的lane通道,每个lane通道对应一个字节,经XGXS(XGMII Extender Sublayer)完成8B/10B编码后,将4个lane分别对应XAUI的4个独立通道,XAUI端口速率为:2.5Gbps * 1.25 * 4=12.5Gbps。
在发送端的XGXS模块中,将TXD[31:0]/ RXD[31:0],TXC[3:0]/ RXC[3:0], TXC/ RXC转换成串行数据从TX Lane[3:0]/ RX Lane[3:0]中发出去,在接收端的XGXS模块中,串行数据被转换成并行,并且进行时钟恢复和补偿,完成时钟去抖,经过5B/4B解码后,重新聚合成XGMII。
XAUI接口采用差分线,收发各四对,CML逻辑,AC耦合方式,耦合电容在10nF~100nF之间。
XAUI接口可以直接接光模块,如XENPAK/X2等。也可以转换成一路10G信号XFI,接XFP/SFP+等。
1,手册阅读
我们使用的是PCS/PMA部分,基于Ultrascale系列。pg068包含7系列与Ultrascale。所以有些信号在不同的系列有不同的选择。比如user_clk,7系列中是core_clk,Ultrascale中是txuserclk_2。根据自己的需求进行区分。

1.1 框架
xilinx提供两种:10GBASE-R(免费不要钱),10GBASE-KR(需要购买,背板)。我们选择使用10GBASE-R来实现10G以太网的PCS/PMA。

- XGMII: 链接10千兆以太网MAC层(user_rtl)与PCS/PMA层(ip);
- Transmit path,:包含 scrambler, 64b/66b encoder and Gearbox;(10G以太网是基于64/66编码来进行的);
- Receive path: 包含 block synchronization, descrambler, decoder and BER (Bit Error Rate) monito ;(64//66对齐功能)
10G Ethernet PCS/PMA (ip)与user_logic(MAC)相连接,我们的目的是做MAC层。PCS/PMA交给IP核。

1.2 port_interface
1.2.1 xgmii port
XGMII接口是FPGA内部的,不是与外部的PHY相连接(不用考虑走线之类的)。这个接口回用于IP核与用户编写的MAC层之间的连接。

rxd:64bit,参考时钟为156.25Mhz

rxd32bit,参考时钟为312.5Mhz

在FPGA中,要考虑时序问题,xilinx推荐的方式是大位宽,低时钟。所以使用rxd:64bit。
1.2.2 optical module
另外,该IP还提供了光模块接口。(不用自己编写o_sfp_disable了(。-ω-))

在官方example的t

3394

被折叠的 条评论
为什么被折叠?



