从高速PCB设计仿真来看10GE光模块的协议

高速先生成员--周伟

上期的文章聊聊1.6T光模块的仿真中做了本期的预告,本期文章开始我们主要聊一下光模块相关的协议,以及怎么从协议里找到我们关心的具体指标。闲话少说,直接上干货。

323-01.png

我们在光模块分类这篇文章中提到了有很多种光模块,因此也对应了很多种不同的协议,但为了不让大家太迷惑,我们特意收缩下范围,计划主要集中讲我们常用的几个协议,所以目前来看我们主要有10Gbps、25/28Gbps、56G-PAM4和112G-PAM对应的协议。接下来我们就针对性的来说说这几种信号的协议吧。

针对10Gbps的光口,我们主要的信号就是SFP+、XFP等,参考的协议主要有SFF8431、10GBase-R和Fiber Channel(10GFC)等,不管是哪个协议基本上都是定义了系统的要求,也就是Host和Module一起。一般10GE光口我们参考SFF8431的协议会比较多,下面就以这个协议来举例说明。在这个协议里面,我们基本没有看到直接有对模块本身的插损要求,只有分段回损要求,另外10G光口的测试上也是结合MCB和HCB来一起看的,大致如下图所示。

323-02.png

基本上按照3种不同的段来进行分段指标要求,一个是Host+HCB的指标,此时是看B和C点的指标要求,其中B点为Host经过HCB输出的端口,这个点对应光模块的B’,也就是从MCB进入模块的端口;C点为进入HCB到Host主板这个点的端口,同时也对应光模块测试点的C’,从光模块的输出到MCB的端口;还有就是A、D两个测试端口,主要是用来测试ASIC/SerDes主芯片的,当然也包含了一部分测试夹具的线路,这个主要是针对芯片本身的要求,我们在板级就不怎么关注。几种不同的测试环境示意图如下所示。

323-03.png

搞清楚了大致的框架,接下来我们来看看电气的一些要求和指标。

对于10GE光口的插损要求,协议上的定义比较模糊(相对于25Gbps光口来说),尤其是对于光模块的要求没有特别定义,只定义了回损要求,整个通道的传输损耗指标是9dB,包含主板Host,连接器和HCB的损耗,也就是从主芯片到B和C端口的损耗要求最大是9dB@5.5GHz。如下表格所示。

323-04.png

我们通常就用下面这个插损Mask来定义Host端的损耗要求,7GHz的时候最大损耗为8dB;

323-05.png

323-06.png

323-07.png

针对Host板的要求比较多,比如走线长度和对应的插损,回损等都有,如下是对应的走线长度要求,这个表格大家应该见得比较多,可以作为线长的参考,也就是普通FR4带状线走6inch线长,微带线走8inch线长就是出自这里(这只是一个参考线长)。

323-08.png

接下来就是B、C、B’和C’端口处的分段指标要求了,这几个端口的指标主要是回损和眼图的要求,而没有插损的指标要求,这个也是我们进行测试的一个参考,其中包含了MCB和HCB在内。

323-09.png

Host输出到HCB的端口B处的无源指标,主要是回损和模态的要求。

323-10.png

323-11.png

Host输出到HCB的端口B处的有源指标,主要是有源眼图和Jitter的要求。

323-12.png

从HCB的端口C处输入到Host接收的无源指标,主要是回损和模态的要求,回损和端口B的指标一致(C”是主板上离连接器约1inch走线长度处)。

323-13.png

323-14.png

主板上离连接器约1inch走线长度处C”测试点的有源指标,这个也等同于模块经MCB输出的眼图指标,这个指标其实在Host端不好测试,需要用到误码仪等。

以上就是Host部分的仿真和测试要求,接下来我们看看Module部分的要求。

323-15.png

从光模块Module输入B’处到Module接收的无源指标,主要是回损和模态的要求,相对于Host主板B端口,可以看到和Host主板端B口的要求还不一样。

323-16.png

  

从光模块Module输入B’处到Module接收的有源指标,主要是眼图和Jitter的要求,相对于Host主机B端口输出过来的数据,可以看到和Host端B口的要求差不多。

323-17.png

Module输出到MCB的端口C’处的无源指标,主要是差分和共模回损的要求。从回损来看,B’口和C’口的要求是一样的,但两者的模态要求有差异;

323-18.png

 备注:以上图片均摘自SFF8431协议。

Module输出到MCB的端口C’处的有源指标,主要是眼图和Jitter的要求,可知相对于Host主板的输出要求,Module的输出眼图要求小很多。

另外协议里面也有单独对芯片的测试板要求,以及HCB和MCB夹具板的要求,这个不是今天的重点,在此略过。总体来说10GE的协议比起后面的25Gbps以上的协议看起来更复杂,而且没有对应模块本身的插损要求。

本期问题:我们看到SFF8431协议里面都有SCD11这个指标,这个指标到底和什么有关,为什么要求管控这个指标?谢谢!

### FPGA 实现万兆以太网接口 对于FPGA实现10G以太网接口的设计,通常涉及多个模块协同工作来处理高速数据传输。这类设计不仅依赖于硬件描述语言(HDL),如Verilog或VHDL编写逻辑电路,还需要特定IP核的支持以及遵循相应的协议标准。 #### 使用Xilinx Vivado创建10GE IP Core实例 在现代FPGA开发环境中,制造商提供了预构建的知识产权(IP)核心用于简化复杂功能的集成。例如,在Xilinx平台下可以利用其提供的`XAUI`或者`Ten Gigabit Ethernet MAC` IP core快速搭建起基础框架[^1]。 ```verilog // Xilinx 10GbE MAC instantiation template snippet module top ( input wire clk_156m25, output wire [7:0] tx_data, input wire [7:0] rx_data, ... ); ten_gig_eth_mac your_instance_name ( .gtx_clk(clk_156m25), // IN .tx_axis_tdata(tx_data), // OUT .rx_axis_tdata(rx_data), // IN ... // other ports omitted for brevity ); endmodule ``` 此代码片段展示了如何通过调用Xilinx官方提供的MAC层IP完成基本连接配置。实际项目中还需考虑PHY物理层适配、MDIO管理接口设置等问题。 #### Altera/Intel Stratix系列中的10Gbps收发器应用案例 针对Altera(已被英特尔收购)的产品线,则有专门面向Stratix V/SOC等高端型号优化过的硬核(Hard IP),可以直接应用于PCIe Gen3 x8链路或是SFP+/QSFP+光模块互联场景之中。 ```vhdl -- VHDL example for Intel's Hard IP Transceiver Wrapper entity declaration library altera; use altera.altera_xcvr_functions.all; entity hssi_tx is port( refclk : in std_logic; -- Reference Clock Input reset_n : in std_logic; -- Reset Signal (active low) data_in : in std_logic_vector(63 downto 0); -- Data stream into transceiver ... ); end entity hssi_tx; ``` 上述VHDL代码定义了一个基于Intel HSSI技术的数据发送端实体声明部分,具体参数可根据需求调整并配合相应PLL锁相环组件一起使用以满足不同应用场景下的时钟同步要求。 #### 测试与验证方法论 当完成了初步编码之后,应当借助仿真工具进行全面的功能测试,并结合板级调试手段确保整个系统的稳定性和可靠性。这期间可能涉及到PCB布局布线指导原则的应用、信号完整性分析(SI)、电源噪声抑制措施等方面的工作[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值