一种64位并行多模式CRC码生成电路的设计方法技术

技术编号:3936855 阅读:634 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种64位并行多协议CRC码生成电路的设计方法,通过考察所兼容的校验模式,使用器件复用技术,降低器件的消耗;该电路在不增加硬件复杂度的前提下兼容CRC-32,CRC-16,及CRC-CCITT三种主流CRC模式,本发明专利技术通过全面统计模拟,针对3种CRC模式分别选取最优的Wk×m′矩阵与Fs矩阵,降低硬件复杂度,矩阵运算单元与附加逻辑单元实现k×64矩阵Wk×m′与64×1向量的快速相乘,信号路由器通过“动态连接技术”极大的减少延时并将器件消耗减至最小,反馈逻辑单元采用数据线再复用方式以较低的硬件代价快速有效的完成反馈操作;本发明专利技术具有数据吞吐量高,硬件复杂度低,易于实现等显著特点,广泛适用于10Gbps-100Gbps的UWB,MPEG,Ethernet,ATM等多种应用。

【技术实现步骤摘要】

本专利技术涉及电子信息技术和集成电路设计
,具体地说是涉及一种64位并行且兼容CRC-32,CRC-16以及CRC-CCITT 3种标准的循环冗余校验(CRC)码的生成电路的设计方法。
技术介绍
在各类数字通信系统以及计算机存储和运算系统中,纠错码能显著降低误码率,提高通信质量,并延长计算机无故障运行时间。循环冗余校验CRC(Cyclic RedundancyCheck)码是以其高效率,高性能及低复杂度在上述领域获得了广泛的应用。具有16或32位冗余比特的CRC编码为多个国际通信标准所采纳。常见的CRC编码的ITU-IEEE国际规范有CRC-32, CRC-16以及CRC-CCITT等。 CRC码校验将待处理序列作为二进制多项式u(x)的系数。该多项式除以生成多项式g(x)后,所求得的余数r(x)作为CRC码附加于原序列后一起发送。接收端用接收序列对应的多项式v(x),若余数为r(x),则传输无误;否则由发送端重新传送(ARQ),直到无误为止。 随着10G Ethernet等高速通信系统及存储系统的飞速发展,并行CRC码生成电路得到了广泛的应用。现代数字通信要求通信设备能够兼容多种信道条件,这就要求通信系统能够兼容多种协议标准。现有关于并行CRC码生成电路的文献均为研究特定位数的CRC码的计算原理与实现。例如,Kovsky T. J. Tsai与Joe Chang提出的"Parallelized CRCcalculationmethod and system"只适用于CRC-32模式。由于硬件代价较大,难于实现,公开文献中尚未有关兼容多协议的CRC码生成电路的报道。
技术实现思路
本专利技术的目的是提出一种64位并行多模式CRC码生成电路的设计方法,以较低的硬件成本满足一些数字系统对可配置并行CRC的编码器的需要。 本专利技术的目的是这样实现的基于一种并行CRC编码器的算法,提出一种统计的算法,利用这个算法可以最大限度的减小硬件实现的成本。提出一种快速矩阵计算电路,同时充分考虑CRC-32, CRC-16以及CRC-CCITT等CRC计算模式的可复用性,最大限度的复用计算电路。提出一种动态连接技术,该技术可实现各种CRC检验模式之间的快速切换。 采用本专利技术的方法设计的CRC编码电路具有较好的灵活性和较低的成本,传统的方法是将多块电路放在一起,不具有灵活性,同时成本比较高。 为达到上述专利技术目的,本专利技术的技术方案是一种64位并行多模式CRC码生成电路的设计方法,按如下过程进行 1)将64位待输入数据并行输入信号路由器Routes,信号路由器Route巧根据不同的校验模式确定各个矩阵运算单元PE" PE2,, PE31, PE32及附加逻辑单元En E2的输入信号; 2)矩阵运算单元PEpPE2,…,PE^,PE^及附加逻辑单元EpE2完成Wkxm'矩阵与64位的信号列矢量的快速相乘,且该电路兼容CRC-32, CRC-16及CRC-CCITT 3种模式下的矩阵相乘操作,矩阵运算单元PEi处理Wk^'的第i行与信号列矢量的相乘操作; 3)矩阵相乘的结果输入信号路由器Routeiv根据具体的校验模式由FS1阵列进行排序筛选,将32位或16位结果输出至下一级电路; 4)根据不同校验模式下矩阵Fs的具体形式,反馈逻辑单元FE将输出寄存器阵列DFlip-Flop结果反馈,并信号路由器Routes输出结果逐位异或,得到待计算数据的CRC码。通过全面统计模拟,针对CRC-32, CRC-16及CRC-CCITT3种不同的CRC模式分别选取恰当的k维矢量b,使得Fs矩阵与WkXm'矩阵中"1"的数目最少,过程如下所述 1)选取b中"l"的数目; 2)改变b中"1"的分布模式; 3)检验b是否满足使S矩阵可逆; 4)考察矩阵Fs及WkxM'中"l"的数目,确定b值是否符合系统要求,若不符合,返回步骤1); 5)由确定的b求得S = , X' (n) = S—1(n) , Fs = S—^S,"kXM 0 "kXm0 所述矩阵运算单元PEpPE2,…,PE^,PE^及附加逻辑单元EpE2完成Wkxm'矩阵与64位的输入矢量U (n-1)的快速相乘,且该电路兼容在CRC-32, CRC-16及CRC-CCITT3种模式下的矩阵相乘操作,按如下过程进行 1)以权利要求2所确定的CRC-32校验模式的WkXm'为基准,设计32个矩阵运算单元PEpPE2,…,PE『PE^,单元PEi处理Wkxm'的第i行与输入矢量U(n-l)的相乘操作; 2)统计矩阵WkXm'第i行"l"的数目Ti,该结果为单元PEi的输入信号的个数,在GF(2)域上,这些信号的相加与其异或等价; 3)修改上述矩阵运算单元,并增加附加逻辑单元E" E^使其能兼容CRC-16,CRC-CCITT模式; 4)为每个矩阵运算单元PEp PE2,, PE31, PE32及附加逻辑单元En E2加入5级pipeline,进一步提高吞吐率。在CRC-32, CRC-16及CRC-CCITT3种不同的CRC模式下,通过建立信号变换表由信号路由器Routes为矩阵运算单元PEn PE2,, PE31, PE32提供不同的输入信号 1)信号路由器Routes将为矩阵运算单元PE^PE^…,PE^,PE32)提供三种信号公共信号PS, CRC-32模式的补充信号C32S, CRC-16模式的补充信号C16S, CRC-CCITT模式的补充信号CTTS ; 2)信号路由器Router!由34个部分组成:SR丄,SR2, ..., SR32, SRE" SRE^通过3种快速多选结构FSn FS2, FS3分别为矩阵运算单元PE15 PE2,, PE31, PE32以及附加逻辑单元EpE,提供输入信号。 信号路由器Router2使用三个FS:阵列对矩阵运算单元PE15 PE2,, PE31, PE32以及附加逻辑单元E"E2输出信号进行排序筛选,分别产生CRC-16的结果信号,CRC-CCITT的结果信号以及CRC-32的结果信号。 反馈逻辑单元FE采用数据线再复用方式,在不同的CRC模式下反馈相应的信号, 根据权利要求2所确定的不同CRC模式下的反馈矩阵Fs,反馈逻辑单元FE采用32位寄存 器来存放CRC-32校验结果,而复用低16位来存放CRC-16与CRC-CCITT的校验结果,Di为 32位寄存器组的第i位输出,0UTi为反馈逻辑单元FE第i位输出,除去在CRC-32, CRC-16 以及CRC-CCITT3种模式下0U1\分别与D64, D16以及D16相连外,任何模式下OUT卜工均与Di相 连。 本专利技术的特点如下 本专利技术的创造性在于发现了并行CRC算法矩阵运算单元的可复用性,通过一种有 效的算法寻找出硬件消耗较小的运算单元。通过提出一种动态连接技术,以较小的硬件代 价实现各种模式之间的快速切换。 各种高速数字通信系统,视频处理系统,高速网络协议处理器的设计者都可以使 用本专利技术的方法来设计他们的CRC编码电路。使用者还可以根据本专利技术,设计出兼容其他 模式的编码电路。BCH编码的设计者也可使用本专利技术所提出的方法来设计高速可配置的 BCH编码电路。未来通信系统强调多种信本文档来自技高网
...

【技术保护点】
一种64位并行多模式CRC码生成电路的设计方法,按如下过程进行:1)将64位待输入数据并行输入信号路由器Router↓[1],信号路由器Router↓[1]根据不同的校验模式确定各个矩阵运算单元PE↓[1],PE↓[2],…,PE↓[31],PE↓[32]及附加逻辑单元E↓[1],E↓[2]的输入信号;2)矩阵运算单元PE↓[1],PE↓[2],…,PE↓[31],PE↓[32]及附加逻辑单元E↓[1],E↓[2]完成W↓[k×m]′矩阵与64位的信号列矢量的快速相乘,且该电路兼容CRC-32,CRC-16及CRC-CCITT3种模式下的矩阵相乘操作,矩阵运算单元PE↓[i]处理W↓[k×m]′的第i行与信号列矢量的相乘操作;3)矩阵相乘的结果输入信号路由器Router↓[2],根据具体的校验模式由FS1阵列进行排序筛选,将32位或16位结果输出至下一级电路;4)根据不同校验模式下矩阵F↓[S]的具体形式,反馈逻辑单元FE将输出寄存器阵列DFlip-Flop结果反馈,并与信号路由器Router↓[2]输出结果逐位异或,得到待计算数据的CRC码。

【技术特征摘要】

【专利技术属性】
技术研发人员:何书专林军李丽潘红兵
申请(专利权)人:苏州和迈微电子技术有限公司
类型:发明
国别省市:32[中国|江苏]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1