一种基于fpga的万兆以太网数据接收校验方法

文档序号:7896253阅读:636来源:国知局
专利名称:一种基于fpga的万兆以太网数据接收校验方法
技术领域
本发明涉及万兆以太网高速数据通信协议的数据检测领域,具体涉及一种基于 FPGA的万兆以太网数据接收校验方法。
背景技术
在高速数据通讯系统中,由于数据流(包括有效负载和控制流)在线路上传输时 会因温度、射线等外界的干扰,在接收方收到的数据流与发送方发出的数据流出现不一致 的现象。为保证接收方能识别出错误的数据流并通知发送方线路上出现误码,则需要对通 信过程进行差错控制。目前在线路上使用的差错控制方法有ARQ(自动请求重传方式)、 FEC (前向纠错方式)和HEC (混合纠错)。较多使用的是ARQ方式,此模式的差错控制只需 要检错功能。CRC循环冗余校验码(Cyclic Redundancy Check)是数据通信领域中最常用的一 种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。由于其误码监测能力 强,抗干扰能力优异,被广泛的用于线路的差错控制。生成CRC码的基本原理任意一个由二进制位串组成的代码都可以和一个系数仅 为‘0,和‘1,取值的多项式一一对应。例如代码1010111对应的多项式为x6+x4+x2+x+l, 而多项式为x5+x3+x2+x+l对应的代码101111。CRC码集选择的原则若设码字长度为N,信息字段为K位,校验字段为R位(N = K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g (χ),使得V (χ) = A (χ) g (χ) = xRm (χ)+r (χ);其中m(x)为K-I次信息多项式,r(x)为R-I次校验多项式,g(x)称为生成多项式g (x) = g°+glxl+g2x2+. · · +g(H)x(H) +gExE发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。下面列出了一些标准的CRC和其多项式CRC-4 :Χ4+Χ+1CRC-12 :χ12+χη+χ3+χ+1CRC-16 :χ16+χ15+χ2+1CRC-ITU :χ16+χ12+χ5+1CRC-32 :x32+x26+x23+. . . +x2+x+lCRC-32c :x32+x28+x27+. . . +x8+x6+l为了达到MAC层数据线速lOG/b接收、及时进行基于CRC32的校验目的。

发明内容
本发明目的是克服MAC层线速10(ib/S接收上游数据流并进行线速10(ib/S数据检测。一种基于FPGA的万兆以太网数据接收校验方法,包含以下步骤A、上游数据总线或缓冲区数据推进触发状态机启动,进入监测SFD状态;B、检测有效数据流的SFD的前导码,若起始位置在Lane3,则对齐至Lane7 ;若起始 位置在lane7,则直接执行下一步;C、采用 “CRC Magic Number,,与 “Magic Number Add Zero,,协同并行校验算法,2 路并行流水数据、仅一个64位CRC32电路,校验MAC层接收端8条lane的有效数据,校验 后得出帧正确与否的结论;D、数据接收到最后一周期后,若没有上传,之前接受的数据都认为是有效。本发明的一种技术方案在于对齐过程需要进行一周期的流水延迟。本发明的另一技术方案在于所述CRC Magic Number是指是把帧尾的FCS连同 有效数据一起校验得出的一组数字,所述有效数据指的是8个IaneS中可能有效的lane数 量,其校验结果都为上述所列出的值。本发明的再一技术方案在于所述Magic Number Add kro是指接收状态机在接 收时采集到XGMII总线中某个lane为结束标记时,除结束标记在第8个lane情况外,其余 7种情况分别把相应无效lane的数据都置为“0”送入64位CRC32模块进行校验,校验结果 与相应的固定值比较,如匹配则说明此帧在链路传输中没有发生错误。借助于本发明的技术方案,能够生成并线速进行10G/b接收、实时进行基于CRC32 的校验目的,符合万兆以太网MAC层的数据帧,并无延时的将校验后的数据帧推进到下一 总线或缓冲区。


图1为MAC层监测SFD、校验及去PADDING的状态机转换过程;图2为SFD出现在IaneO的时序图;图3为SFD出现在lane4的时序图;图4为magic number扩展后的特殊值;图5为利用magic number进行64位CRC-32校验的时序图;图6本本发明电路时序图。
具体实施例方式下面结合附图和具体实施方式
对本发明的方法进行说明。链路上由上游驱动数据,中游数据分析,再将数据流推进到下游。在图1中,状态 机的启动由上游发送请求进行触发,进入到监测SFD的状态。若找到SFD,则认为有效帧已 经开始或在下周期开始,这里取决于SFD出现的位置,即图2、3的两种模式;对齐后接收有 效数据流并对有效数据流进行CRC-32校验,校验后剔除无效部分进入重新监测SFD的状 态。帧的对齐需要对其中一种情况进行一周期的流水延迟,状态机看到的是寄存后的 所有数据流,图2、3即为两种情况。以往MAC层接收端进行8条数据lane的校验要同时利用含8,16,M,32,40,48,56,64位的0^32电路,校验速度随快,但校验面积是一个8xN(l =<N<=8)位校验电路 的8倍之多。本发明采用称为“CRC Magic Number”的方法,其过程是把帧尾的FCS连同有效数 据一起校验得出的一组数字0xC704DD7B,这里的有效数据指的是8个IaneS中可能有效的 lane数量,不管几个lane数据有效,其校验结果都为上述所列出的值。所以,我们可以利用 这一特性,把无效数据lane添加全“0”,其结果必定是某一确定的值,这样,就可以只用一 个64位的CRC32电路就可以及时对8个lane的有效数据进行校验。方法如下接收状态机在接收时采集到XGMII总线中某个lane为结束标记时,除 结束标记在第8个lane情况外,其余7种情况分别把相应无效lane的数据都置为“0”(包 括结束标记的lane)送入64位CRC32模块进行校验,即图6所示,校验结果与相应的固定值 比较,如匹配则说明此帧在链路传输中没有发生错误,把这种方法称为“Magic Number Add kro”,这里的固定值如图5所示。
权利要求
1.一种基于FPGA的万兆以太网数据接收校验方法,其特征在于包含以下步骤A、上游数据总线或缓冲区数据推进触发状态机启动,进入监测SFD状态;B、检测有效数据流的SFD的前导码,若起始位置在Lane3,则对齐至Lane7;若起始位置 在lane7,则直接执行下一步;C、采用“CRC Magic Number” 与 “Magic Number Add Zero” 协同并行校验算法,2 路并 行流水数据、仅一个64位CRC32电路,校验MAC层接收端8条lane的有效数据,校验后得 出帧正确与否的结论;D、数据接收到最后一周期后,若没有上传,之前接受的数据都认为是有效。
2.如权利要求1所述一种基于FPGA的万兆以太网数据接收校验方法,其特征在于对 齐过程需要进行一周期的流水延迟。
3.如权利要求1所述一种基于FPGA的万兆以太网数据接收校验方法,其特征在于所 述CRC Magic Number是指是把帧尾的FCS连同有效数据一起校验得出的一组数字,所述有 效数据指的是8个IaneS中可能有效的lane数量,其校验结果都为上述所列出的值。
4.如权利要求1所述一种基于FPGA的万兆以太网数据接收校验方法,其特征在于所 述Magic Number Add Zero是指接收状态机在接收时采集到XGMII总线中某个lane为结 束标记时,除结束标记在第8个lane情况外,其余7种情况分别把相应无效lane的数据都 置为“0”送入64位CRC32模块进行校验,校验结果与相应的固定值比较,如匹配则说明此 帧在链路传输中没有发生错误。
全文摘要
本发明提供了一种基于FPGA的万兆以太网数据接收校验方法。校验检测采用“CRC Magic Number”与“Magic Number Add Zero”协同并行操作,2路并行流水数据、仅一个64位CRC-32电路,校验MAC层接收端8条lane的有效数据。检测后对FCS填充物进行剔除操作。借助于本发明的技术方案,能够生成并线速进行10G/b接收、实时进行基于CRC32的校验目的,符合万兆以太网MAC层的数据帧,并无延时的将校验后的数据帧推进到下一总线或缓冲区。
文档编号H04L1/00GK102088334SQ201010598038
公开日2011年6月8日 申请日期2010年12月17日 优先权日2010年12月17日
发明者张磊, 张英文, 李静, 白宗元, 纪奎 申请人:天津曙光计算机产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1