一种基于fpga的万兆以太网数据帧的填充校验方法

文档序号:7896255阅读:838来源:国知局
专利名称:一种基于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层数据流可以线速10G/b发送并及时添加基于CRC-32 的FCS校验信息。
一种基于FPGA的万兆以太网数据帧的填充校验方法,包含以下步骤A、状态机启动由上游发送请求进行触发,数据被向前推进,进入第一次格式处 理;B、对有效数据进行bytes计算,大于或等于最小帧进入步骤D操作,否则,执行步 骤C;C、根据所需发送的有效数据流的帧长度补齐到最小帧长度;D、应用并行64位CRC-32电路和串行8位CRC-32电路对填充后的有效数据流或 原始数据流进行流水校验,8位CRC-32电路流水校验64位CRC-32电路和非完整周期的有 效数据流,校验结果进行简单编码后形成FCS,填充到有效数据流结尾,将数据流推进到下 游模块发送;E、在等待ire个周期后,重新进入空闲状态,重复这一过程。本发明的一种优选技术方案在于所述C步骤数据填充时采用7路并行流水数据、 采用一个64位CRC-32电路和一个8位CRC-32电路。本发明的再一种优选技术方案在于数据发送时采用乒乓模式校验MAC层发送方 的8条lane的有效数据流。借助于本发明的技术方案,能够生成并发送符合万兆以太网MAC层的数据帧,并 无延时的将校验后的数据帧推进到下一总线或缓冲区。


图1为MAC层填充及校验的状态机转换过程;图2为帧长小于7周期对帧进行填充方案;图3为帧长等于8周期对帧进行填充方案;图4为本发明的校验部分的时序流程图。
具体实施例方式下面结合附图和具体实施方式
对本发明的方法进行说明。链路上由上游驱动数据,中游数据分析,再将数据流推进到下游。在图1中,状态 机的启动由上游发送请求进行触发,进入到第一次的数据处理即前导码的填充。通过此状 态后,就开始按照以太网的帧格式要求,把数据帧以一个整体进行填充、校验打包发送出 去,在等待ire个周期后,重新进入空闲状态。等待状态即主数据流流水级的充满时间,通 过增加这个状态,即可实现后续数据的持续发送。首先对通信端口中各个模块的功能做详 细说明。标准万兆以太网中,每一帧的帧长必须是大于等于64bytes,其中包括4bytes的 FCS校验填充物;帧的定界由前导码标识010101···0101011共8个bytes ;填充电路采用计 数器管理方式,pad_cnt[3:0]计数从帧前导码开始,若接收周期小于等于7个周期,即图2 方式,等于8个周期的需填充的情况只有三种,即图3所示,将无效位置加入PADDING bytes 形成填充物,内容随意,以上两种填充情况的第8周期最后即4bytes为FCS。填充后的数据 流用7个64位寄存器对MAC帧8条lane的数据进行7次寄存复制,64位CRC-32电路对 除最后一周期的8个lane数据进行校验,校验对象是没有复制的原始数据,即图4的TDX_4fifo [63 0]寄存器;最后一周的8个lane数据可能有8中有效数据的情况,8个lane完全 有效则继续采用64位CRC-32电路对其进行校验;而其余其中情况1-7个lane数据有效 则采用8位CRC-32电路串行校验,每个周期出一个临时校验值,最多7个周期校验完毕,校 验对象是复制的第7份64位的寄存器值,这里还需要一个移位寄存器,将有效lane的数据 没周期移入8位CRC-32电路;在8位CRC-32电路对第N帧校验的过程中,64位CRC-32电 路也可以同时进行校验工作,对N+1帧除最后一周期的8个lane数据进行校验,以此进行 乒乓操作达到线速校验相邻两帧的目的;最后一个64位CRC32和一个8位CRC32电路联合 校验的4B数据添加到MAC结尾形成FCS。
权利要求
1.一种基于FPGA的万兆以太网数据帧的填充校验方法,其特征在于包含以下步骤A、状态机启动由上游发送请求进行触发,数据被向前推进,进入第一次格式处理;B、对有效数据进行bytes计算,大于或等于最小帧进入步骤D操作,否则,执行步骤C;C、根据所需发送的有效数据流的帧长度补齐到最小帧长度;D、应用并行64位CRC-32电路和串行8位CRC-32电路对填充后的有效数据流或原始 数据流进行流水校验,8位CRC-32电路流水校验64位CRC-32电路和非完整周期的有效数 据流,校验结果进行简单编码后形成FCS,填充到有效数据流结尾,将数据流推进到下游模 块发送;ε、在等待ire个周期后,重新进入空闲状态,重复这一过程。
2.如权利要求1所述一种基于FPGA的万兆以太网数据帧的填充校验方法,其特征在 于所述C步骤数据填充时采用7路并行流水数据、采用一个64位CRC-32电路和一个8位 CRC-32 电路。
3.如权利要求1所述一种基于FPGA的万兆以太网数据帧的填充校验方法,其特征在 于数据发送时采用乒乓模式校验MAC层发送方的8条lane的有效数据流。
全文摘要
本发明提供了一种基于FPGA的万兆以太网数据帧的填充校验方法。最小帧不足时填充,应用并行64位CRC-32电路和串行8位CRC-32电路对填充后的有效数据流或原始数据流进行流水校验,8位CRC-32电路流水校验64位CRC-32电路和非完整周期的有效数据流,校验结果(4Bytes)进行简单编码后形成FCS,填充到有效数据流结尾,将数据流推进到下游模块发送。助于本发明的技术方案,能够生成并发送符合万兆以太网MAC层的数据帧,并无延时的将校验后的数据帧推进到下一总线或缓冲区。
文档编号H04L1/00GK102055555SQ20101059807
公开日2011年5月11日 申请日期2010年12月17日 优先权日2010年12月17日
发明者张磊, 张英文, 李静, 白宗元, 纪奎 申请人:天津曙光计算机产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1