




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、10G以太网系统中的并行CRC编解码器的设计清华大学电子工程系(100084 刘 昭 苏 厉 金德鹏 陈 虹 曾烈光通信系统不可避免地要受到各种干扰的影响,使接收端收到的信息与发送端发出的信息不一致,即接收端收到的信息产生了误码。为了降低数据通信线路传输的误码率,通常有改善数据通信线路传输质量和差错检测控制两种方法。差错检测控制的方法很多,本文讨论在10G以太网接人系统中并行实现CRC-32 编解码的方法、并行CRC算法的 Unfolding算法可以实现并行CRC的计算,但是并行电路所用的资源增加到了原来的J 倍。 8 位并行 CRC算法、并行CRC-16的编码逻辑、 USB技术中并行CRC算
2、法给出的并行算法都建立在公式递推的基础上。当并行深度较小时,递推算法比较适用。而当并行深度很大的情况下(10G 以太网接人系统使用64 比特并行数据通路 ,递推过程就显得过于烦琐而缺乏实用性。为此,本文提出了矩阵法、代入法和流水线法等三种算法,解决了深度并行情况下CRC算法的实现问题。利用本文提出的算法,可以得出64 比特并行CRC计算的逻辑表达式,并用于10G 以太网接入系统的设计。设M(x 为信息多项式,G(x为生成多项式。一般的CRC编码方法是:先将信息码多项式左移r 位,即 M 就是 CRC校验码。以二进制码0 x9595H 的 CRC-32编码为例: 将信息码左移32 比特变成0 x
3、959500000000H,记为 m。CRC-32G 的生成多项G(x=x32+x26+x23+x22+x16+x12+xll+x10+x8+x7+x5+x4+x2+x+1,转换成 16进制码为 g=0 x104C01DB7H。用 m除以 g( 模 2 除法 ,所得余数0 x3738F30BH 就是 0 x9595H 的 CRC-32 码。实现0 x9595H 的基本 CRC-32编码的 Matlab 程序如下:如果想用以上 CRC-32 程序计算其他长为L 的序列的基本CRC-32码,只需将数组 的上界和 for循环中 i 的初始值改为 32+L,并用该序列代替数组。开始的序列1001010
4、110010101即可。用数字电路实现的串行 CRC编码器如图 1 所示。图 1 中每个矩形表示D 触发器。 gi 的取值范围是 1 或者 0。取 1 时表示通路,取0 时表示断路。进行基本CRC-32 编码时,每个 D 触发器初始状态为0,从数据端串行输入二进制的信息码。信息码输入结束后,D触发器中锁存的数值就是信息码的基本 CRC-32编码。此电路适用于信息码长为任意值的情况。在某些信息系统中以基本CRC产生算法为基础附加了新的规定。例如IEEE802 3 协议规定,以太网的FES(帧校验序列 域以 CRC-32为基础,并且在编码时首先将信息码的最初4 个字节取反码,对目的地址、源地址、长
5、度类型域、数据域、 PAD域求出基本 CRC-32码之后再将结果取反,最后的结果才是FCS。同上述过程等价的另一种实现方法是将图1 中所有 D 触发器的初值置1,这样结果不必取反。为使电路设计者验证其 FCS编码正确, IEEE802 3 还给出了一个样本,即:将序列0 xBED723476B8FB3145EFB3559H重复 126 次,最后得到的FCS值应该为 0 x94D254ACH。10G 以太网是 IEEE8023ae 工作组提出的建议。它保持了以前以太网的帧结构,但是线速度达到了10Gbps的量级。为了降低10G以太网接入系统的功耗并达到芯片加工工艺的要求,必须采用并行数据通路。为
6、计算FCS需要研究并行 CRC算法。所设计的 10G以太网接入系统采用64 比特并行数据通路,因此本文主要讨论64 比特并行CRC-32的实现方法。本文共介绍三种实现方法,其中矩阵法和代入法是基于组合逻辑的直接实现1 / 5方法,第三种方法是基于流水线的实现方法。1 矩阵法记图 1 中的 32 个 D 触发器的输出从右至左依次为d31, d30, , d0。信息码元的输入端为i 。令D=d0d1d31T表示编码器当前所处的状态,I=i63i62i0 表示第1 至第 64 个时钟的信息码元输入,向量D=d0 d1, d31 T表示编码器的下一个状态,D(64表示 64 个时钟之后CRC编码器所处
7、的状态。则设计64 位并行 CRC逻辑编码器,就是找出函数关系D64)=f 式中的大规模矩阵乘法T64、 T63S 等。2 代入法矩阵法的优点在于其直观性。但是需要做大规模乘法运算。下面讨论的代入法能够得到与矩阵法相同的结果。同时可以避免大规模矩阵乘法运算。设8 比特并行 CRC-32 电路的初始状态是d31,d30, , d0,输入是 i7 ,i6 , , j0 ,输出是z31, Z30, , z0。利用前面所述的矩阵法,可以得出 8 比特并行 CRC-32编码器的组合逻辑表达式。如表1 所示。2 / 5下文用 + 表示按位模2 和运算, , 表示链接运算。从CRC的(1 式很容易得出以下算
8、法:算法 1:已知序列N的 CRC-32为 A31 : 0 ,序列 B(=b7 ,b6, , b0 的 CRC-32码为 Y31 :0 。序列 A31 : 24 的 CRC-32为 X31 : 0 ,则延拓序列 N ,B 的 CRC-32码为 Y31 : 24+X31 :24+A23 :16 ,Y23 :16+X23 :16+A15 :8+A7 :0 ,Y7 :0+X7 :0 。推论:已知序列N 的 CRC-32为 A31 :0 ,序列 A31 : 24 的 CRC-32为 X31 :0 ,则补 0 延拓序列N ,O的 CRC-32码为 X31 : 24+A23 :16+A15 : 8 ,X1
9、5 :8+A7 :0 ,X7: 0 。利用上述算法构造APPEND模块,其端口A 和 B分别表示前导序列的CRC和延拓的 8 比特序列,则其输出端口Z 为拓展之后序列的CRC。图 2 利用 APPEND模块构造了级联结构的64 比特并行CRC编码器。这种级联构造的编码器设计比较简单。其中间节点:3 / 5显然 (3 还可以进一步化简。冗余的逻辑使得这种级联结构占用芯片面积大,且只能用于低速场合。对 (3 进一步化简,可以得到Z2 的最简异或表达式。同理可以得到Z3 Z8 的表达式。 Zl ,Z2, , Z8 分别对应 8 比特、 16 比特、 、64 比特的并行 CRC运算表达式。具体表达式限
10、于篇幅不在这里给出。Z8 中最长的异或运算表达式有52 项参加运算,如果使用4- 异或门则只需要用三级,即能在一般CMOS工艺的一级传输延迟时间之内完成。当用于以太网接入系统时,因为以太网帧不一定结束在64 比特边界,因此编码器应该有同时计算8、16、 24、 、 64 比特并行编码的能力。具体电路如图3 。因为一般情况下大量用到64 比特并行编码,因此平时使能信号mux使其他 7 个编码模块不工作以降低功耗。在帧尾部根据具体情况使用这7 个模块进行剩余字节的编码。流水线法矩阵法和代入法本质上都是设计直接并行编码电路的方法,二者的最终效果是一样的。直接并行实现的 CRC编码电路控制逻辑比较简单
11、,但是需要进行复杂的组合逻辑运算。为了在更高频率下进行并行 CRC编码,可以进一步用流水线的方法简化编码逻辑,所付出的代价是整个帧的处理延迟了 8 个时钟周期。图4 给出了 CRC编码的流水线实现。将并行输入的64 比特分成7 个字节,分别用 D0、D1、 、 D7 表示。 P 模块(P0P7计算形如 Di ,O,O, O, O,O,O,O, Di 的序列的CRC,其中 Di,是 Di 位置上的上一次输入。 Di的 CRC码由端口 R31 :0 输入, Di 由端口4 / 5D7 :0 输入,结果由Z31 :0 端口输出。C模块 (C1C7的输入是 D0 ,O,O,O, O, O,O,O,D0
12、 和D1, O, O,O,O,O, O, O,D1的CRC(分别由端口R1 和 R2 输入 ,输出是 D0,D1,O, O,O,O, O, O,D0,D1 CRC。求 P 的逻辑表达式时,重复应用算法1 的推论,可以求出 Di ,O, O,O, O, O, O,Di 的 CRC码,再应用算法 1,就可以求出 Di , O,O, O, O,O,O,O, Di 的 CRC码。直接应用算法1 可以求出C模块的逻辑表达式。 P 模块和 C 模块进行异或运算的长度远小于直接并行CRC电路中的 ENC8模块,因此更有利于在高速电路中应用。4 10G 以太网接入系统中的CRC编解码器设计10G以太网接人系统
13、所需接口速率高达10Gbps 以上。从降低系统功耗和芯片制造成本的角度考虑希望接口能工作在 200MHz以下。采用并行化设计虽然可以降低系统时钟频率,但也从以下两方面增加了设计难度。首先,数据通路的并行程度越高,对它的控制就越复杂。系统采用8 字节并行数据通路,则发送的以太网帧可能在8 个并行字节中的任意一个位置上结束,控制逻辑的设计就必须考虑所有这些可能性并逐一做出相应的处理。其次,系统中的CRC编码器、扰码器等的设计须采用并行算法。为了满足IEEE8023 协议对以太网帧 CRC编码的要求,实际的编解码器模块还需要能对输入输出信号进行任意字节数的求反运算。考虑到10G接入系统的复杂性,该模
14、块功能应该高度集成化,以便用宏信号端口对其进行操作。在对收到的以太网帧进行校验时,没必要先计算不包括FCS域的序列的CRC编码 ( 结果取反 再与 FCS域做对比。在编码正确且没有误码的情况下,对整个以太网帧( 包括 FCS域进行结果不取反的CRC编码的结果应该为序列0 xC704DD7BH。采用这种判别方法,无需在帧的结束前停止计算CRC编码,因而可以大大简化电路设计。5 CRC编码器的实现本文提出的各种算法的硬件实现已经通过了FPGA验证,并被应用到具体芯片。使用Xilinx公司的 Virtex2系列 FPGA中的 XC2V1000分别仿真了采用上述代入法和流水线法设计的CRC编码器和解码器,验证了设计方法的正确性。在综合考虑逻辑复杂度、所占用的芯片面积和工艺要求后,最终在所设计的10G以太网接入芯片中,采
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省通化市梅河口市博文学校2025年高三最后一模化学试题含解析
- 福建省龙岩市武平一中、长汀一中、漳平一中等六校2025年高考化学二模试卷含解析
- 2025年硬质材料加工机床及其零件项目合作计划书
- 山东省烟台市招远市第二中学2024-2025学年高一下学期第一次月考(期中模拟)历史试题(含答案)
- 2025年固有荧光早期癌症诊断仪合作协议书
- 2025年GSM蜂窝移动通信系统项目建议书
- 陕西省煤炭建设公司第一中学2025届高考压轴卷化学试卷含解析
- 2025届广东省重点中学高三最后一卷化学试卷含解析
- 医学检验技能操作
- 2025年工厂化育苗精量播种生产设备合作协议书
- 《ONLY服装品牌调研》课件
- 银行安全知识培训课件
- 基本药物制度政策培训课件
- 创新创业基础知到智慧树章节测试课后答案2024年秋哈尔滨理工大学
- 施工现场安全防护培训
- 2024-2030年中国航空材料产业未来发展趋势及前景调研分析报告
- 2022综合安防平台(服务器)DS-VE22S-B系列配置指南
- 知名连锁汉堡店食安QSC稽核表
- 数字货币调研报告范文
- 渤海大学学位英语考试真题
- 川教版2024-2025学年六年级下册信息技术全册教案
评论
0/150
提交评论