基于10G Ethernet subsystem 的简易万兆光纤通信
前言
1.采用器件
HUAWEI的02310SNN光模块、xlinx vc709开发板
2.参考的手册
《10 Gigabit Ethernet Subsystem v3.1 Product Guide Vivado Design Suite PG157 February 4, 2021》
《VC709 Evaluation Board for the Virtex-7 FPGA User Guide》
3.10G Ethernet subsystem ip核
本次实验不涉及以太网的封装,只是简单的为数据生成模块产生的数据添加mac头,以axi_stream的时序给到10G Ethernet subsystem ip的用户接口,实现两个光模块之间10.3125Gbit/s数据流的对传。
IP核配置选择 64bit 模式和10GBASER模式, 10GBASER是一种使用 64B/66B 编码(不是在千兆以太网中所用的 8B /10B)的串行接口,数据流为10.3125Gbit/s。其参考时钟为10.3125Gbit/s/66=156.25MHz
实现简易的光纤通信就取消了 AXI4-LITE 的配置状态接口, 基本 mac 功能可以在接口变量控制更方便。
DRP时钟100MHz
最后勾选上shared logic in example design,用上example里面的gt common的qpll来驱动同一个quad(bank)里面的4个sfp
详细的GT高速收发器知识可以先看看网上的介绍,然后直接参考官方手册,网上推荐的介绍:
VIVADO IP核:GT高速收发器(概述和IP example)https://zhuanlan.zhihu.com/p/559776073
详细的设计方案
1.总体架构
如图所示,这是整体的设计框图。tx_test_data模块产生自定义的裸数据,送到MAC_10gEngine_p2sfp2里面的MAC_TX进行组帧,添加mac头,并将组好帧的数据以axi_stream的时序给到MAC_10gEngine_p2sfp2里面的10G Ethernet Subsystem用户接口,并转串发送出去
MAC_10gEngine_p3sfp1的10G Ethernet Subsystem收到来自MAC_10gEngine_p2sfp2发送过来的串行数据,串转并,以axi_stream时序,将数据给到MAC_10gEngine_p3sfp1的MAC_RX模块,MAC_RX首先将收到数据的mac头提取出来,和自身的mac地址比对,看是否相同,如相同,则将数据解析出来,送到上层
顶层架构如下:
Entity: top_pass_onlymac_10g
- File: top_pass_onlymac_10g.v
Diagram
Generics
Generic name | Type | Value | Description |
---|---|---|---|
P_SOURCE_MAC_SFP2 | 48’h00_11_22_33_44_55 | ||
P_TARTGET_MAC_SFP2 | 48’h00_55_00_55_00_55 | ||
P_SOURCE_MAC_SFP1 | 48’h00_55_00_55_00_55 | ||
P_TARTGET_MAC_SFP1 | 48’h00_11_22_33_44_55 |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
sys_clk_p | input | ||
sys_clk_n | input | ||
key_reset_p | input | ||
txn_sfp2 | output | ||
txp_sfp2 | output | ||
rxn_sfp2 | input | ||
rxp_sfp2 | input | ||
txn_sfp1 | output |