CN101783688A - 一种64位并行多模式crc码生成电路的设计方法 - Google Patents

一种64位并行多模式crc码生成电路的设计方法 Download PDF

Info

Publication number
CN101783688A
CN101783688A CN201010118426A CN201010118426A CN101783688A CN 101783688 A CN101783688 A CN 101783688A CN 201010118426 A CN201010118426 A CN 201010118426A CN 201010118426 A CN201010118426 A CN 201010118426A CN 101783688 A CN101783688 A CN 101783688A
Authority
CN
China
Prior art keywords
crc
matrix
signal
pattern
router
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010118426A
Other languages
English (en)
Other versions
CN101783688B (zh
Inventor
何书专
林军
李丽
潘红兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SUZHOU HOMY MICROELECTRONICS TECHNOLOGY Co Ltd
Original Assignee
SUZHOU HOMY MICROELECTRONICS TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SUZHOU HOMY MICROELECTRONICS TECHNOLOGY Co Ltd filed Critical SUZHOU HOMY MICROELECTRONICS TECHNOLOGY Co Ltd
Priority to CN 201010118426 priority Critical patent/CN101783688B/zh
Publication of CN101783688A publication Critical patent/CN101783688A/zh
Application granted granted Critical
Publication of CN101783688B publication Critical patent/CN101783688B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种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等多种应用。

Description

一种64位并行多模式CRC码生成电路的设计方法
技术领域
本发明涉及电子信息技术和集成电路设计技术领域,具体地说是涉及一种64位并行且兼容CRC-32,CRC-16以及CRC-CCITT 3种标准的循环冗余校验(CRC)码的生成电路的设计方法。
背景技术
在各类数字通信系统以及计算机存储和运算系统中,纠错码能显著降低误码率,提高通信质量,并延长计算机无故障运行时间。循环冗余校验CRC(Cyclic Redundancy Check)码是以其高效率,高性能及低复杂度在上述领域获得了广泛的应用。具有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 CRC calculationmethod and system”只适用于CRC-32模式。由于硬件代价较大,难于实现,公开文献中尚未有关兼容多协议的CRC码生成电路的报道。
发明内容
本发明的目的是:提出一种64位并行多模式CRC码生成电路的设计方法,以较低的硬件成本满足一些数字系统对可配置并行CRC的编码器的需要。
本发明的目的是这样实现的:基于一种并行CRC编码器的算法,提出一种统计的算法,利用这个算法可以最大限度的减小硬件实现的成本。提出一种快速矩阵计算电路,同时充分考虑CRC-32,CRC-16以及CRC-CCITT等CRC计算模式的可复用性,最大限度的复用计算电路。提出一种动态连接技术,该技术可实现各种CRC检验模式之间的快速切换。
采用本发明的方法设计的CRC编码电路具有较好的灵活性和较低的成本,传统的方法是将多块电路放在一起,不具有灵活性,同时成本比较高。
为达到上述发明目的,本发明的技术方案是:一种64位并行多模式CRC码生成电路的设计方法,按如下过程进行:
1)将64位待输入数据并行输入信号路由器Router1,信号路由器Router1根据不同的校验模式确定各个矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2的输入信号;
2)矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2完成Wk×m′矩阵与64位的信号列矢量的快速相乘,且该电路兼容CRC-32,CRC-16及CRC-CCITT 3种模式下的矩阵相乘操作,矩阵运算单元PEi处理Wk×m′的第i行与信号列矢量的相乘操作;
3)矩阵相乘的结果输入信号路由器Router2,根据具体的校验模式由FS1阵列进行排序筛选,将32位或16位结果输出至下一级电路;
4)根据不同校验模式下矩阵FS的具体形式,反馈逻辑单元FE将输出寄存器阵列DFlip-Flop结果反馈,并信号路由器Router2输出结果逐位异或,得到待计算数据的CRC码。
通过全面统计模拟,针对CRC-32,CRC-16及CRC-CCITT3种不同的CRC模式分别选取恰当的k维矢量b,使得Fs矩阵与Wk×m′矩阵中“1”的数目最少,过程如下所述:
1)选取b中“1”的数目;
2)改变b中“1”的分布模式;
3)检验b是否满足使S矩阵可逆;
4)考察矩阵Fs及Wk×M′中“1”的数目,确定b值是否符合系统要求,若不符合,返回步骤1);
5)由确定的b求得S=[b FMb F2Mb …F(k-1)Mb],X′(n)=S-1X(n),Fs=S-1FMS,Wk×M′=S-1Wk×m
所述矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2完成Wk×m′矩阵与64位的输入矢量U(n-1)的快速相乘,且该电路兼容在CRC-32,CRC-16及CRC-CCITT3种模式下的矩阵相乘操作,按如下过程进行:
1)以权利要求2所确定的CRC-32校验模式的Wk×m′为基准,设计32个矩阵运算单元PE1,PE2,…,PE31,PE32,单元PEi处理Wk×m′的第i行与输入矢量U(n-1)的相乘操作;
2)统计矩阵Wk×m′第i行“1”的数目Ti,该结果为单元PEi的输入信号的个数,在GF(2)域上,这些信号的相加与其异或等价;
3)修改上述矩阵运算单元,并增加附加逻辑单元E1,E2,使其能兼容CRC-16,CRC-CCITT模式;
4)为每个矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2加入5级pipeline,进一步提高吞吐率。
在CRC-32,CRC-16及CRC-CCITT3种不同的CRC模式下,通过建立信号变换表由信号路由器Router1为矩阵运算单元PE1,PE2,…,PE31,PE32提供不同的输入信号:
1)信号路由器Router1将为矩阵运算单元PE1,PE2,…,PE31,PE32)提供三种信号:公共信号PS,CRC-32模式的补充信号C32S,CRC-16模式的补充信号C16S,CRC-CCITT模式的补充信号CTTS;
2)信号路由器Router1由34个部分组成:SR1,SR2,…,SR32,SRE1,SRE2,通过3种快速多选结构FS1,FS2,FS3分别为矩阵运算单元PE1,PE2,…,PE31,PE32以及附加逻辑单元E1,E2提供输入信号。
信号路由器Router2使用三个FS1阵列对矩阵运算单元PE1,PE2,…,PE31,PE32以及附加逻辑单元E1,E2输出信号进行排序筛选,分别产生CRC-16的结果信号,CRC-CCITT的结果信号以及CRC-32的结果信号。
反馈逻辑单元FE采用数据线再复用方式,在不同的CRC模式下反馈相应的信号,根据权利要求2所确定的不同CRC模式下的反馈矩阵Fs,反馈逻辑单元FE采用32位寄存器来存放CRC-32校验结果,而复用低16位来存放CRC-16与CRC-CCITT的校验结果,Di为32位寄存器组的第i位输出,OUTi为反馈逻辑单元FE第i位输出,除去在CRC-32,CRC-16以及CRC-CCITT3种模式下OUT1分别与D64,D16以及D16相连外,任何模式下OUTi-1均与Di相连。
本发明的特点如下:
本发明的创造性在于发现了并行CRC算法矩阵运算单元的可复用性,通过一种有效的算法寻找出硬件消耗较小的运算单元。通过提出一种动态连接技术,以较小的硬件代价实现各种模式之间的快速切换。
各种高速数字通信系统,视频处理系统,高速网络协议处理器的设计者都可以使用本发明的方法来设计他们的CRC编码电路。使用者还可以根据本发明,设计出兼容其他模式的编码电路。BCH编码的设计者也可使用本发明所提出的方法来设计高速可配置的BCH编码电路。未来通信系统强调多种信道,多种协议的兼容性,采用本发明设计的CRC编码电路能很好的满足这一要求。
本发明具有数据吞吐量高,硬件复杂度低,易于实现等显著特点,广泛适用于10Gbps-100Gbps的UWB,MPEG,Ethernet,ATM等多种应用。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明PEi模块的结构图。
图2为FS1的结构图。
图3为FS2的结构图。
图4为FS3的结构图。
图5为SRi的结构图。
图6为信号路由器Router2的结构图。
图7为各种模式下的反馈逻辑结构图。
图8为FE模块结构图。
具体实施方式
1)设待计算数据并行度为m,CRC校验码长度为k,生成多项式系数矢量表示为
                    g=[g0 g1…gk-2 gk-1]T
n时刻的m维输入矢量
        U(n)=[u0(n),u1(n),…,um-2(n),um-1(n)]T
n时刻的k维输出矢量
        X(n)=[x0(n),x1(n),…xk-2(n),xk-1(n)]T
k×k矩阵F代表生成多项式,表示为
Figure GSA00000049797000041
则m位并行CRC校验码生成电路在n时刻的输出可用矩阵表示为
        X(n)=FmX(n-1)+[g Fg F2g…Fm-1g]U(n-1);
简写为
            X(n)=FMX(n-1)+Wk×mU(n-1);
2)为提高吞吐率,降低硬件复杂度与功耗,将上式改写为
        X′(n)=FSX′(n-1)+Wk×m′U(n-1),
其中X′(n)=S-1X(n),FS=S-1FMS,Wk×M′=S-1Wk×m,而k×m维矩阵S满足如下关系S=[b FMb F2Mb…F(k-1)Mb]且必须可逆;
3)通过全面统计模拟,选取恰当的k维矢量b,确定矩阵X′(n-1)及Wk×m′,使CRC校验码生成电路复杂度最低,按如下步骤进行:
i.选取b中“1”的数目,
ii.改变b中“1”的分布模式,
iii.检验b是否满足使S矩阵可逆,
iv.考察矩阵X′(n-1)及Wk×m′中“1”的数目,确定b值是否符合系统要求,若不符合,返回步骤i;
4)确定不同CRC校验模式下k维矢量b的取值:
i.CRC-32模式
b=[1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]T
ii.CRC-16模式
b=[1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1]T
iii.CRC-CCITT模式
b=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]T
并由b求得S=[b FMb F2Mb…F(k-1)Mb],X′(n)=S-1X(n),Fs=S-1FMS,Wk×m′=S-1Wk×m
5)确定不同CRC校验模式下Fs与Wk×M′的取值:
i.CRC-32模式
Figure GSA00000049797000051
其中W32×64′=S-1W32×64=[T1:T2],T1与T2均为32×32矩阵,满足:
Figure GSA00000049797000061
ii.CRC-16模式
W16×64′=S-1W16×64=[T1:T2],T1与T2均为16×32矩阵,满足:
Figure GSA00000049797000071
iii.CRC-CCITT模式
W16×64′=S-1W16×64=[T1:T2],T1与T2均为16×32矩阵,满足:
Figure GSA00000049797000073
Figure GSA00000049797000081
6)设计快速矩阵运算单元PE和E1,E2
i.以CRC-32的W′k×m为基准,设计32个PE单元(PE1,PE2,…,PE31,PE32)。PEi处理矩阵W′k×m的第i行与信号矢量的相乘操作。
ii.统计各模式下W′k×m矩阵每行“1”的数目T,T表示该行输入的信号个数。表1,表2,表3为每种模式相应的统计结果。
iii.由已设计好的CRC-32模式的PE单元设计其他两种模式的PE单元。
iv.CRC-16模式下,由表2考察每行对应的T的数目Ti,若表1中存在某行j的数目Tj与其相等,则该模式的PEi模块选用CRC-32模式的PEj模块。若不存在Tj,则在表1中寻找与Ti最接近的数值Tk,同时修改CRC-32模式下PEk,使其能处理的输入信号的个数为Ti与Tk中较大者。如果Ti与表1中所有T数值都相差很大,则使用单独的模块处理该行。
v.CRC-CCITT模式与CRC-16模式的方法相同。表4给出了具体的对应列表。这里的PEi表示基于CRC-32模式下经过修改过的PE模块,这些模块在不同的模式下处理不同的输入。
vi.设计模块PE:若PE模块有N个输入,则该模块是
Figure GSA00000049797000082
级的XOR树。若某级有X个输入,则该级共需XOR门Ngate=(X-(Xmod2))/2门,输出信号的个数Y=Ngate+1,如图1所示。E1与E2模块的设计与PE模块类似。需要指出,某些PE模块可能有两个输出。这是为了充分复用器件,以最大程度减小器件消耗。如表5,后缀“32”,“CC”,“16”表示在对应模式下,该信号输出正确的结果。
vii.为各PE模块添加相同级数的流水线。
表1 CRC-32模式下W′k×m的统计结果
  行数   1   2   3   4   5   6   7   8
  T   31   30   38   34   31   22   29   27
  行数   9   10   11   12   13   14   15   16
  T   26   23   31   24   27   38   28   30
  行数   17   18   19   20   21   22   23   24
  T   34   28   32   27   36   31   27   28
  行数   25   26   27   28   29   30   31   32
  T   30   30   36   28   22   34   21   36
表2 CRC-16模式下W′k×m的统计结果
  行数   1   2   3   4   5   6   7   8
  T   28   31   40   29   31   25   32   16
  行数   9   10   11   12   13   14   15   16
  T   33   32   27   13   37   22   14   30
表3 CRC-CCITT模式下W′k×m的统计结果
  行数   1   2   3   4   5   6   7   8
  T   30   32   24   28   32   37   30   34
  行数   1   2   3   4   5   6   7   8
  行数   9   10   11   12   13   14   15   16
  T   34   25   37   30   18   30   34   31
表4 CRC-16/CCITT复用器件对应表
表5 PE模块输出端口的详细说明
Figure GSA00000049797000102
Figure GSA00000049797000111
7)设计信号路由器Router1
i.每个PE模块在不同CRC校验模式下输入信号是不同的,Router1为每个PE模块提供相应校验模式下的输入信号。每个PE模块的输入信号分为:各种模式下的公共输入信号PS,CRC-32模式的补充信号C32S,CRC-16模式的补充信号C16S以及CRC-CCITT模式的补充信号CTTS。
ii.对输入信号U(n)进行编号:U(n)=[u0(n),u1(n),…,um-2(n),um-1(n)]T的第一个信号u0(n)编号为1,u1(n)编号为2。依此类推,um-1(n)编号为64。
iii.考察各模式下的W′k×m矩阵,确定PEi在不同模式下的输入信号集合。首先确定PEi在各模式下对应的W′k×m矩阵的行序号iCRC-32,iCRC-16及iCRC-CT。在CRC-32模式,CRC-16模式以及CRC-CCITT模式下,PEi分别完成输入信号与W′k×m矩阵的第iCRC-32行,第iCRC-16行及第iCRC-CT行的相乘操作。确定序号集合 Φ i = { j | w i CRC - 32 , j = 1 or w i CRC - 16 , j = 1 or w i CRC - CT , j = 1 } , 由Φi可以确定PEi在各种模式下的公共输入信号PS,CRC-32模式的补充信号C32S,CRC-16模式的补充信号C16S以及CRC-CCITT模式的补充信号CTTS。
iv.Router1由34个部分组成:SR1,SR2,…,SR32,SRE1及SRE2。它们分别为模块PE1,PE2,…,PE32,E1及E2提供输入信号。Router1有3种基本单元:FS1,FS2及FS3。上述基本单元采用动态连接技术,从输入信号中选取需要的信号传递给下级电路,与传统多路选择器相比具有传输延迟小,硬件消耗少的优点。FS1,FS2及FS3分别实现对单个,两个及三个输入信号的选择。FS1,FS2及FS3的电路图如图2,图3与图4所示。
v.对PEi模块而言,公共信号PS直接连接到PEi上。若公共信号数目为P,则这些信号占据PEi的Input1,Input2,…,InputP-1,InputP输入端口。令ΦCRC-32,ΦCRC-16及ΦCRC-CT分别表示CRC-32模式,CRC-16模式及CRC-CCITT模式下的补充信号集合。而N32,N16及NCT分别表示对应集合的元素个数。若上述三数均不为0,不失一般性,设最小值为N16。从集合ΦCRC-32,ΦCRC-16及ΦCRC-CT中选出N16个信号,作为N16个FS3模块的输入信号,分别连接至FS3<0>,FS3<1>,FS3<2>端口。
剩余的信号数目分别为N32-N16,0及NCT-N16。ΦCRC-16的信号已经全部连接至SRi的输入端。不失一般性,设剩余的两个非零值中较小者为NCT-N16,则SRi模块还需NCT-N16个FS2模块。从N32-N16与NCT-N16中分别选取NCT-N16个信号分别连接至FS2<0>与FS2<1>上。现集合ΦCRC-16,ΦCRC-CT的信号已全部连至SRi输入端。剩余N32-NCT个信号分别连接至N32-NCT个FS1模块的输入端。
若N32,N16及NCT三数中有一个为0,则SRi模块不需FS3模块。若上述三数有两个为0,则SRi模块不需FS3和FS2模块。SRi的结构图如图5所示。其中M,N及P的值可以为零。
SRE1,SRE2模块的设计方法与SRi模块类似。表6和表7给出SR1,SR2,…,SR32,SRE1及SRE2模块的输入信号列表。表8给出SR1,SR2,…,SR32,控制信号列表。SRE1及SRE2模块的控制信号产生的方法与SRi模块相同。
8)设计信号路由器Router2
i.由于采用了功能复用技术,某PE模块可能有多个输出端口,同时某个端口在不同模式下具有不同的输出。表5给出PE模块输出端口的详细说明。表中CRC的后缀“32”,“CC”,“16”表示在对应模式下,该信号输出正确的结果。需指出,由于采用了功能复用技术,在CRC-16模式及CRC-CCITT模式下,需对输出先排序再输入至下级电路。如图6所示,Router2使用三个FS1阵列,分别用于产生CRC-16模式,CRC-CCITT模式及CRC-32模式的结果信号。
ii.在CRC-16模式及CRC-CCITT模式下,图7中高16位数据无效。在CRC-16模式下,需16个FS1模块:FS1[1],FS1[2],…,FS1[15],FS1[16]。16个FS1模块的输入信号由表4与表5决定,FS1[i]的输入信号的查找过程如下:首先检查表4中CRC-16模式下第i行所对应的PEi(E1或E2)模块,该模块为FS1[i]提供输入;然后检查该模块的输出列表,后缀包含“16”的信号即为FS1[i]的输入。CRC-CCITT模式下的输入信号获取与CRC-16模式类似。CRC-32模式下不需查表,FS1[i]直接连接对应的PEi(E1或E2)模块的输出列表中包含后缀“32”的信号。CRC_32,CRC_16,CRC_CC表示对应模式下的选通信号。
9)设计反馈逻辑单元FE
i.反馈逻辑单元FE在不同的CRC校验模式下反馈相应的信号。根据三种校验模式下反馈矩阵Fs的具体形式,本发明采用32位寄存器组存放CRC-32的校验结果。并利用上述寄存器的低16位来存放CRC-16与CRC-CCITT的校验结果。
图7为三种校验模式下的反馈逻辑。Di表示32位寄存器组的第i位输出,OUTi表示反馈逻辑的第i个输出。特别的,CRC-32模式,CRC-16模式及CRC-CCITT模式下OUT1分别与D32,D16及D16相连。
除图7所定义的连接之外,任何模式下OUTi-1与Di直接相连。同时需对反馈逻辑的输出进行选择。
图8为FE模块的结构图。
ii.附表(6)Router1子模块输入信号列表(FS1和FS2)
Figure GSA00000049797000141
附表(6)续
Figure GSA00000049797000151
附表(7)Router1子模块输入信号列表(FS3和直接相连部分)
Figure GSA00000049797000161
附表(7)续
Figure GSA00000049797000171
附表(8)各种模式下SR控制信号
Figure GSA00000049797000181
附表(8)续
Figure GSA00000049797000191
附表(8)续
Figure GSA00000049797000201
说明:在每个SR模块内部,所有的FS1使用同样的控制信号,所有的FS2使用同样的控制信号,所有的FS3使用同样的控制信号。
上述实施例不以任何方式限制本发明,凡是采用等同替换或等效变换的方式获得的技术方案均落在本发明的保护范围内。

Claims (6)

1.一种64位并行多模式CRC码生成电路的设计方法,按如下过程进行:
1)将64位待输入数据并行输入信号路由器Router1,信号路由器Router1根据不同的校验模式确定各个矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2的输入信号;
2)矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2完成Wk×m′矩阵与64位的信号列矢量的快速相乘,且该电路兼容CRC-32,CRC-16及CRC-CCITT 3种模式下的矩阵相乘操作,矩阵运算单元PEi处理Wk×m′的第i行与信号列矢量的相乘操作;
3)矩阵相乘的结果输入信号路由器Router2,根据具体的校验模式由FS1阵列进行排序筛选,将32位或16位结果输出至下一级电路;
4)根据不同校验模式下矩阵FS的具体形式,反馈逻辑单元FE将输出寄存器阵列DFlip-Flop结果反馈,并与信号路由器Router2输出结果逐位异或,得到待计算数据的CRC码。
2.根据权利要求1所述的一种64位并行多模式CRC码生成电路的设计方法,其特征是通过全面统计模拟,针对CRC-32,CRC-16及CRC-CCITT3种不同的CRC模式分别选取恰当的k维矢量b,使得FS矩阵与Wk×m′矩阵中“1”的数目最少,过程如下所述:
1)选取b中“1”的数目;
2)改变b中“1”的分布模式;
3)检验b是否满足使S矩阵可逆;
4)考察矩阵FS及Wk×m′中“1”的数目,确定b值是否符合系统要求,若不符合,返回步骤1);
5)由确定的b求得S=[b FMb F2Mb…F(k-1)Mb],X′(n)=S-1X(n),FS=S-1FMS,Wk×M′=S-1Wk×m
3.根据权利要求2所述的一种64位并行多模式CRC码生成电路的设计方法,其特征是矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2完成Wk×m′矩阵与64位的输入矢量U(n-1)的快速相乘,且该电路兼容在CRC-32,CRC-16及CRC-CCITT3种模式下的矩阵相乘操作,按如下过程进行:
1)以权利要求2所确定的CRC-32校验模式的Wk×m′为基准,设计32个矩阵运算单元PE1,PE2,…,PE31,PE32,单元PEi处理Wk×m′的第i行与输入矢量U(n-1)的相乘操作;
2)统计矩阵Wk×m′第i行“1”的数目Ti,该结果为单元PEi的输入信号的个数,在GF(2)域上,这些信号的相加与其异或等价;
3)修改上述矩阵运算单元,并增加附加逻辑单元E1,E2,使其能兼容CRC-16,CRC-CCITT模式;
4)为每个矩阵运算单元PE1,PE2,…,PE31,PE32及附加逻辑单元E1,E2加入5级pipeline,进一步提高吞吐率。
4.根据权利要求2所述的一种64位并行多模式CRC码生成电路的设计方法,其特征是反馈逻辑单元FE采用数据线再复用方式,在不同的CRC模式下反馈相应的信号,根据权利要求2所确定的不同CRC模式下的反馈矩阵FS,反馈逻辑单元FE采用32位寄存器来存放CRC-32校验结果,而复用低16位来存放CRC-16与CRC-CCITT的校验结果,Di为32位寄存器组的第i位输出,OUTi为反馈逻辑单元FE第i位输出,除去在CRC-32,CRC-16以及CRC-CCITT 3种模式下OUT1分别与D64,D16以及D16相连外,任何模式下OUTi-1均与Di相连。
5.根据权利要求1所述的一种64位并行多模式CRC码生成电路的设计方法,其特征是在CRC-32,CRC-16及CRC-CCITT3种不同的CRC模式下,通过建立信号变换表由信号路由器Router1为矩阵运算单元PE1,PE2,…,PE31,PE32提供不同的输入信号:
1)信号路由器Router1将为矩阵运算单元PE1,PE2,…,PE31,PE32)提供三种信号:公共信号PS,CRC-32模式的补充信号C32S,CRC-16模式的补充信号C16S,CRC-CCITT模式的补充信号CTTS;
2)信号路由器Router1由34个部分组成:SR1,SR2,…,SR32,SRE1,SRE2,通过3种快速多选结构FS1,FS2,FS3分别为矩阵运算单元PE1,PE2,…,PE31,PE32以及附加逻辑单元E1,E2提供输入信号。
6.根据权利要求1所述的一种64位并行多模式CRC码生成电路的设计方法,其特征是信号路由器Router2使用三个FS1阵列对矩阵运算单元PE1,PE2,…,PE31,PE32以及附加逻辑单元E1,E2输出信号进行排序筛选,分别产生CRC-16的结果信号,CRC-CCITT的结果信号以及CRC-32的结果信号。
CN 201010118426 2010-03-05 2010-03-05 一种64位并行多模式crc码生成电路的设计方法 Expired - Fee Related CN101783688B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010118426 CN101783688B (zh) 2010-03-05 2010-03-05 一种64位并行多模式crc码生成电路的设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010118426 CN101783688B (zh) 2010-03-05 2010-03-05 一种64位并行多模式crc码生成电路的设计方法

Publications (2)

Publication Number Publication Date
CN101783688A true CN101783688A (zh) 2010-07-21
CN101783688B CN101783688B (zh) 2013-08-14

Family

ID=42523522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010118426 Expired - Fee Related CN101783688B (zh) 2010-03-05 2010-03-05 一种64位并行多模式crc码生成电路的设计方法

Country Status (1)

Country Link
CN (1) CN101783688B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012109872A1 (zh) * 2011-08-02 2012-08-23 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端
CN105099466A (zh) * 2015-08-17 2015-11-25 中国航天科技集团公司第九研究院第七七一研究所 一种用于128位并行数据的crc校验矩阵生成方法
CN105389229A (zh) * 2015-10-29 2016-03-09 中国科学院微电子研究所 适用于64位总线位宽的crc校验电路及校验方法
CN105653390A (zh) * 2014-11-10 2016-06-08 无锡华润矽科微电子有限公司 一种SoC系统的校验方法
CN107667475A (zh) * 2015-05-20 2018-02-06 雅科贝思私人有限公司 一种用于循环冗余校验的排列演算方法
CN113839965A (zh) * 2021-11-26 2021-12-24 杰创智能科技股份有限公司 基于crc校验码的多协议协处理器及其处理方法
CN114443347A (zh) * 2021-12-23 2022-05-06 湖南毂梁微电子有限公司 一种可配置crc码计算方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW238441B (en) * 1993-12-15 1995-01-11 Ind Tech Res Inst Cyclic redundancy encoder/decoder
CN1324517A (zh) * 1998-08-26 2001-11-28 艾利森电话股份有限公司 用于生成循环冗余校验代码的并行循环冗余校验生成电路
US20070266301A1 (en) * 2006-05-10 2007-11-15 Bawankule Rajesh E Techniques for generating cyclic redundancy check (crc) values

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW238441B (en) * 1993-12-15 1995-01-11 Ind Tech Res Inst Cyclic redundancy encoder/decoder
CN1324517A (zh) * 1998-08-26 2001-11-28 艾利森电话股份有限公司 用于生成循环冗余校验代码的并行循环冗余校验生成电路
US20070266301A1 (en) * 2006-05-10 2007-11-15 Bawankule Rajesh E Techniques for generating cyclic redundancy check (crc) values

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012109872A1 (zh) * 2011-08-02 2012-08-23 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端
CN105653390A (zh) * 2014-11-10 2016-06-08 无锡华润矽科微电子有限公司 一种SoC系统的校验方法
CN107667475A (zh) * 2015-05-20 2018-02-06 雅科贝思私人有限公司 一种用于循环冗余校验的排列演算方法
CN105099466A (zh) * 2015-08-17 2015-11-25 中国航天科技集团公司第九研究院第七七一研究所 一种用于128位并行数据的crc校验矩阵生成方法
CN105099466B (zh) * 2015-08-17 2018-04-17 中国航天科技集团公司第九研究院第七七一研究所 一种用于128位并行数据的crc校验矩阵生成方法
CN105389229A (zh) * 2015-10-29 2016-03-09 中国科学院微电子研究所 适用于64位总线位宽的crc校验电路及校验方法
CN105389229B (zh) * 2015-10-29 2018-09-25 中国科学院微电子研究所 适用于64位总线位宽的crc校验电路及校验方法
CN113839965A (zh) * 2021-11-26 2021-12-24 杰创智能科技股份有限公司 基于crc校验码的多协议协处理器及其处理方法
CN113839965B (zh) * 2021-11-26 2022-02-01 杰创智能科技股份有限公司 基于crc校验码的多协议协处理器及其处理方法
CN114443347A (zh) * 2021-12-23 2022-05-06 湖南毂梁微电子有限公司 一种可配置crc码计算方法

Also Published As

Publication number Publication date
CN101783688B (zh) 2013-08-14

Similar Documents

Publication Publication Date Title
CN101783688B (zh) 一种64位并行多模式crc码生成电路的设计方法
CN109740739A (zh) 神经网络计算装置、神经网络计算方法及相关产品
US20100030831A1 (en) Multi-fpga tree-based fft processor
CN201153259Y (zh) 并行数据循环冗余校验装置及双向数据传输系统
CN109740754A (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN105264778B (zh) 一种crc计算方法及装置
CN102891685B (zh) 基于fpga的并行循环冗余校验运算电路
CN110413254A (zh) 数据处理器、方法、芯片及电子设备
US7886210B2 (en) Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
CN101336416B (zh) 奇偶生成电路、奇偶生成电路用构成电路、信息处理装置以及编码器
CN103199873A (zh) 两级分块crc运算的快速配置方法
CN110515589A (zh) 乘法器、数据处理方法、芯片及电子设备
US20050268209A1 (en) Cyclic redundancy check generation circuit
CN109086879B (zh) 一种基于fpga的稠密连接神经网络的实现方法
CN101556829B (zh) 线性反馈移位寄存器模块及产生输出流的方法
CN102355232A (zh) 基于fpga的高速fir数字滤波器
Green Reed-Muller canonical forms with mixed polarity and their manipulations
CN101350626A (zh) 一种Turbo码编码装置及方法
CN109672524A (zh) 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
CN112732224B (zh) 一种面向卷积神经网络的可重构近似张量乘加单元及方法
CN110825346A (zh) 一种低逻辑复杂度的无符号近似乘法器
CN105049057B (zh) 一种面向128位并行输入的crc‑32校验电路
CN110705196A (zh) 一种基于随机计算的无误差加法器
CN110598175B (zh) 一种基于图计算加速器的稀疏矩阵列向量比较装置
CN114860651B (zh) 一种基于分散聚合流水线实现mds阵列码的ip核系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130814