发明名称 一种64位并行多模式CRC码生成电路的设计方法
摘要 本发明公开了一种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等多种应用。
申请公布号 CN101783688B 申请公布日期 2013.08.14
申请号 CN201010118426.9 申请日期 2010.03.05
申请人 苏州和迈微电子技术有限公司 发明人 何书专;林军;李丽;潘红兵
分类号 H03M13/15(2006.01)I 主分类号 H03M13/15(2006.01)I
代理机构 江苏圣典律师事务所 32237 代理人 程化铭
主权项 1.一种64位并行多模式CRC码生成电路的设计方法,按如下过程进行: 1)将64位待输入数据并行输入信号路由器Router<sub>1</sub>,信号路由器Router<sub>1</sub>根据不同的校验模式确定各个矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>及附加逻辑单元E<sub>1</sub>,E<sub>2</sub>的输入信号; 在CRC-32,CRC-16及CRC-CCITT3种不同的CRC模式下,通过建立信号变换表由信号路由器Router<sub>1</sub>为矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>提供不同的输入信号: i)信号路由器Router<sub>1</sub>将为矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>提供四种信号:公共信号PS,CRC-32模式的补充信号C32S,CRC-16模式的补充信号C16S,CRC-CCITT模式的补充信号CTTS; ii)信号路由器Router<sub>1</sub>由34个部分组成:SR<sub>1</sub>,SR<sub>2</sub>,…,SR<sub>32</sub>,SRE<sub>1</sub>,SRE<sub>2</sub>,通过3种快速多选结构FS<sub>1</sub>,FS<sub>2</sub>,FS<sub>3</sub>分别为矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>以及附加逻辑单元E<sub>1</sub>,E<sub>2</sub>提供输入信号,所述FS<sub>1</sub>,FS<sub>2</sub>,FS<sub>3</sub>分别实现对单个,两个及三个输入信号的选择; 2)矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>及附加逻辑单元E<sub>1</sub>,E<sub>2</sub>完成CRC-32,CRC-16,CRC-CCITT模式下固定系数矩阵W'<sub>k×m</sub>与64位的信号列矢量的快速相乘,且矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>,附加逻辑单元E<sub>1</sub>及E<sub>2</sub>兼容CRC-32,CRC-16及CRC-CCITT3种模式下的矩阵相乘操作,矩阵运算单元PE<sub>i</sub>处理W′<sub>k×m</sub>的第i行与信号列矢量的相乘操作; 3)矩阵相乘的结果输入信号路由器Router<sub>2</sub>,根据具体的校验模式由三个模块阵列进行排序筛选,所述模块阵列为所述FS<sub>1</sub>的阵列,将32位或16位结果输出至下一级电路; 4)根据不同校验模式下反馈矩阵F<sub>s</sub>的具体形式,反馈逻辑单元FE将输出寄存器阵列DFlip-Flop结果反馈,并与信号路由器Router<sub>2</sub>输出结果逐位异或,得到待计算数据的CRC码; 通过全面统计模拟,针对CRC-32,CRC-16及CRC-CCITT3种不同的CRC模式分别选取恰当的k维矢量b,使得X′(n-1)矩阵与W′<sub>k×m</sub>矩阵中“1”的数目最少,过程如下所述: 1)选取b中“1”的数目; 2)改变b中“1”的分布模式; 3)检验b是否满足使S矩阵可逆; 4)考察矩阵X′(n-1)及W′<sub>k×m</sub>中“1”的数目,确定b值是否符合系统要求,若不符合,返回步骤1); 5)由确定的b求得S=[b F<sup>M</sup>b F<sup>2M</sup>b … F<sup>(k-1)M</sup>b],X′(n)=S<sup>-1</sup>X(n),F<sub>s</sub>=S<sup>-1</sup>F<sup>M</sup>S,W′<sub>k×M</sub>=S<sup>-1</sup>W<sub>k×m</sub>; 其中,待计算数据并行度为m,CRC校验码长度为k,生成多项式系数矢量表示为 g=[g<sub>0</sub> g<sub>1</sub> … g<sub>k-2</sub> g<sub>k-1</sub>]<sup>T</sup>, n时刻的m维输入矢量 U(n)=[u<sub>0</sub>(n),u<sub>1</sub>(n),…,u<sub>m-2</sub>(n),u<sub>m-1</sub>(n)]<sup>T</sup>, k×k矩阵F代表生成多项式,表示为 <img file="FDA00003187600200021.GIF" wi="528" he="388" />则m位并行CRC校验码生成电路在n时刻的输出可用矩阵表示为 X(n)=F<sup>m</sup>X(n-1)+[g Fg F<sup>2</sup>g … F<sup>m-1</sup>g]U(n-1); 简写为X(n)=F<sup>M</sup>X(n-1)+W<sub>k×m</sub>U(n-1); 所述矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>及附加逻辑单元E<sub>1</sub>,E<sub>2</sub>完成W′<sub>k×m</sub>矩阵与64位的输入矢量U(n-1)的快速相乘,且矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>,附加逻辑单元E<sub>1</sub>及E<sub>2</sub>兼容在CRC-32,CRC-16及CRC-CCITT3种模式下的矩阵相乘操作,按如下过程进行: 1)以所述全面统计模拟使得X′(n-1)矩阵与W′<sub>k×m</sub>矩阵中“1”的数目最少所确定的CRC-32校验模式的W′<sub>k×m</sub>为基准,设计32个矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>,矩阵运算单元PE<sub>i</sub>处理W′<sub>k×m</sub>的第i行与输入矢量U(n-1)的相乘操作; 2)统计矩阵W′<sub>k×m</sub>第i行“1”的数目T<sub>i</sub>,该数目T<sub>i</sub>为矩阵运算单元PE<sub>i</sub>的输入信号的个数,在GF(2)域上,这些信号的相加与其异或等价; 3)修改上述矩阵运算单元,并增加附加逻辑单元E<sub>1</sub>,E<sub>2</sub>,使矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>,附加逻辑单元E<sub>1</sub>及E<sub>2</sub>能兼容CRC-16,CRC-CCITT模式; 4)为每个矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>及附加逻辑单元E<sub>1</sub>,E<sub>2</sub>加入5级pipeline,进一步提高吞吐率; 信号路由器Router<sub>2</sub>使用所述三个模块阵列对矩阵运算单元PE<sub>1</sub>,PE<sub>2</sub>,…,PE<sub>31</sub>,PE<sub>32</sub>以及附加逻辑单元E<sub>1</sub>,E<sub>2</sub>输出信号进行排序筛选,分别产生CRC-16的结果信号,CRC-CCITT的结果信号以及CRC-32的结果信号; 所述反馈逻辑单元FE采用数据线再复用方式,在不同的CRC模式下反馈相应的信号,根据不同CRC模式下的反馈矩阵F<sub>s</sub>,反馈逻辑单元FE采用32位寄存器来存放CRC-32校验结果,而复用低16位来存放CRC-16与CRC-CCITT的校验结果,D<sub>i</sub>为32位寄存器组的第i位输出,OUT<sub>i</sub>为反馈逻辑单元FE第i位输出,除去在CRC-32,CRC-16以及CRC-CCITT3种模式下OUT<sub>1</sub>分别与D<sub>32</sub>,D<sub>16</sub>以及D<sub>16</sub>相连外,任何模式下OUT<sub>i-1</sub>均与D<sub>i</sub>相连。 
地址 215500 江苏省常熟市东南开发区金都路8号
您可能感兴趣的专利