CN102891685A - 基于fpga的并行循环冗余校验运算电路 - Google Patents
基于fpga的并行循环冗余校验运算电路 Download PDFInfo
- Publication number
- CN102891685A CN102891685A CN2012103477511A CN201210347751A CN102891685A CN 102891685 A CN102891685 A CN 102891685A CN 2012103477511 A CN2012103477511 A CN 2012103477511A CN 201210347751 A CN201210347751 A CN 201210347751A CN 102891685 A CN102891685 A CN 102891685A
- Authority
- CN
- China
- Prior art keywords
- matrix
- input
- output
- sequence
- polynomial
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
一种基于FPGA的并行循环冗余校验运算电路,涉及数据校验技术领域,所解决的是提高计算灵活性的技术问题。该电路包括多项式矩阵计算模块、单位矩阵输出模块、系统矩阵计算模块、并行CRC运算模块;将生成多项式输入多项式矩阵计算模块,通过多项式矩阵计算模块高效地计算出生成多项式矩阵的m次幂运算结果,利用系统矩阵计算模块中的二输入选择器件在线选择两种阶数的生成多项式阶数,利用系统矩阵计算模块输出的系统矩阵,使得并行CRC运算模块能在实现两种输入位宽的CRC运算。本发明提供的电路,改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵。
Description
技术领域
本发明涉及数据校验技术,特别是涉及一种基于FPGA的并行循环冗余校验运算电路的技术。
背景技术
工业仪控系统中的数据在通信线路上串行传送时,由于线路噪音等因素的影响,可能导致多位传输数据发生错误。在这种情况下,奇偶校验和汉明校验的作用就不大了,此时需要采用循环冗余检查(即CRC)运算对所传输的数据进行校验。CRC运算简单但具有很强的检错能力,能够检查3位以上的错误,而且易于用编码器及检测电路实现。从性能上和开销上考虑,均远远优于奇偶校验及汉明校验等方式。
现有的CRC运算电路构架分为两类,一类是串行CRC运算电路,另一类是并行CRC运算电路。由于串行CRC运算电路的数据处理能力较低,不能满足高速数据传输场合下的数据校验要求,因此在需要高速数据传输的场合,都采用并行CRC运算电路来实现CRC运算。
现有的并行CRC运算电路的缺陷在于:只能针对特定的生成多项式和数据位宽进行数据校验,在改变生成多项式时,都需要重新计算CRC运算所需的系统矩阵Fw,给CRC运算实时运行带来极大的困难,存在灵活性低的缺陷,不能满足构建CRC运算的IP核等场合的要求。
发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵,灵活性高的基于FPGA的并行循环冗余校验运算电路。
为了解决上述技术问题,本发明所提供的一种基于FPGA的并行循环冗余校验运算电路,其特征在于,该电路包括以下四个模块:
1)多项式矩阵计算模块
多项式矩阵计算模块是用于计算多项式m次幂矩阵的模块,m是一大于1的整数,多项式m次幂矩阵是由m2个阵元组成的m行m列的矩阵,多项式矩阵计算模块中设有与多项式m次幂矩阵中各阵元一一对应的m2个多项式计算单元,设多项式m次幂矩阵的起始行号为0行,起始列号为0列,该矩阵第i行第j列的阵元为fij,则多项式矩阵计算模块的结构为:
满足条件0≤i≤m-1且j=0的fij为多项式向量赋值阵元,该fij对应的多项式计算单元为多项式矩阵计算模块的第i行多项式向量输入端,记为qi,该多项式计算单元的输出端即为qi;
满足条件i=0且1≤j≤m-1的fij对应的多项式计算单元由一个二输入与门构成,该二输入与门的输出端即为本单元的输出端,该二输入与门的两个输入端分别接到qi及对应fm-1,j-1的多项式计算单元的输出端;
满足条件1≤i≤m-1且1≤j≤m-1的fij对应的多项式计算单元由一个二输入异或门和一个二输入与门构成,其中的二输入与门的两个输入端分别接到qi和对应fm-1,j-1的多项式计算单元的输出端,其中的二输入异或门的一个输入端接到对应fi-1,j-1的多项式计算单元的输出端,另一个输入端接到本单元的二输入与门的输出端,该二输入异或门的输出端构成本单元的输出端;
2)单位矩阵输出模块
单位矩阵输出模块是用于输出m行m列单位矩阵向量的模块,单位矩阵输出模块中设有与单位矩阵中的m2个阵元一一对应的m2个单位矩阵向量输出单元,每个单位矩阵向量输出单元均设有一向量输出端;
3)系统矩阵计算模块
系统矩阵计算模块是用于输出系统矩阵的模块,系统矩阵计算模块包括一个选择器件序列,一个多项式输入器件序列,一个输出器件序列,一个单位矩阵输入器件序列;
所述选择器件序列由m个二输入选择器件组成,所述多项式输入器件序列由m个多项式矩阵输入端口器件组成,所述输出器件序列由m个输出端口器件组成,所述单位矩阵输入器件序列由n个单位矩阵输入端口器件组成,且有1<n<m;
所述多项式矩阵输入端口器件、输出端口器件、单位矩阵输入端口器件各有一个输出端口、一个输入端口,且每个端口均有m个端脚;
所述二输入选择器件有一个选择信号输入端脚,及一个输出端口、两个输入端口,且二输入选择器件的每个端口均有m个端脚,二输入选择器件的两个输入端口分别为第一输入端口、第二输入端口;
设各器件序列的起始序号均为0,0≤i≤m-1,0≤j≤m-1,0≤s≤n-1,n≤t≤m-1,则有如下连接关系:
多项式矩阵计算模块中,多项式m次幂矩阵第j列各阵元对应的各多项式计算单元的输出端构成多项式矩阵计算模块的第j个输出端口;
单位矩阵输出模块中,单位矩阵第j列各阵元对应的各单位矩阵向量输出单元的向量输出端构成单位矩阵输出模块的第j个输出端口;
多项式输入器件序列中,第j个多项式矩阵输入端口器件的输入端口接到多项式矩阵计算模块的第j个输出端口,第j个多项式矩阵输入端口器件的输出端口接到选择器件序列中第j个二输入选择器件的第一输入端口;
单位矩阵输入器件序列中,第s个单位矩阵输入端口器件的输入端口接到单位矩阵输出模块的第s个输出端口,第s个单位矩阵输入端口器件的输出端口接到选择器件序列中第s个二输入选择器件的第二输入端口;
选择器件序列中,第t个二输入选择器件的第二输入端口接到多项式输入器件序列中第t-n个多项式矩阵输入端口器件的输出端口,第j个二输入选择器件的输出端口接到输出器件序列中第j个输出端口器件的输入端,各二输入选择器件的选择信号输入端脚相互串接构成系统矩阵计算模块的多项式选择端;
输出器件序列中,第j个输出端口器件的输出端口构成系统矩阵计算模块的第j个系统矩阵列输出端口,第j个系统矩阵列输出端口中的第i个端脚构成系统矩阵计算模块的第i行第j列系统矩阵元素输出端;
4)并行CRC运算模块
并行CRC运算模块包括一个寄存器序列,一个与门序列,两个异或门序列;
所述与门序列由m个与门子序列组成,所述与门子序列由m个二输入与门组成,与门子序列中每个二输入与门的两个输入端分别为第一输入端、第二输入端;
所述寄存器序列由m个寄存器组成,所述异或门序列由m个异或门组成;
所述两个异或门序列分别为第一异或门序列、第二异或门序列;
第一异或门序列中的每个异或门均有两个输入端,分别为第一输入端、第二输入端;
第二异或门序列中的每个异或门均有m个输入端;
设寄存器序列、异或门序列、与门序列,及与门序列中各个与门子序列的起始序号均为0,0≤i≤m-1,则有如下连接关系:
寄存器序列中,第i个寄存器的输出端构成并行CRC运算模块的校验码第i位输出端,第i个寄存器的输入端接到第二异或门序列中第i个异或门的输出端;
第一异或门序列中,第i个异或门的第一输入端接到寄存器序列中第i个寄存器的输出端,第i个异或门的第二输入端构成并行CRC运算模块的校验数据第i位输入端;
与门序列中,第i个与门子序列中各二输入与门的输出端分别接到第二异或门序列中第i个异或门的各个输入端,第i个与门子序列中第j个二输入与门的第一输入端接到系统矩阵计算模块的第i行第j列系统矩阵元素输出端,每个与门子序列中的第j个二输入与门的第二输入端均接到第一异或门序列中的第j个异或门的输出端。
本发明提供的基于FPGA的并行循环冗余校验运算电路,将生成多项式输入多项式矩阵计算模块,通过多项式矩阵计算模块高效地计算出生成多项式矩阵的m次幂运算结果,利用系统矩阵计算模块中的二输入选择器件能在线选择两种阶数的生成多项式阶数,利用系统矩阵计算模块输出的系统矩阵,使得并行CRC运算模块能在实现两种输入位宽的CRC运算,在改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵,具有灵活性高的特点。
附图说明
图1是本发明实施例的基于FPGA的并行循环冗余校验运算电路的结构框图;
图2是本发明实施例的基于FPGA的并行循环冗余校验运算电路中的多项式矩阵计算模块的电路结构示意图;
图3是本发明实施例的基于FPGA的并行循环冗余校验运算电路中的系统矩阵计算模块的电路结构示意图;
图4是本发明实施例的基于FPGA的并行循环冗余校验运算电路中的并行CRC运算模块的电路结构示意图。
具体实施方式
以下结合附图说明对本发明的实施例作进一步详细描述,但本实施例并不用于限制本发明,凡是采用本发明的相似结构及其相似变化,均应列入本发明的保护范围。
如图1-图4所示,本发明实施例所提供的一种基于FPGA的并行循环冗余校验运算电路,其特征在于,该电路包括以下四个模块:
1)多项式矩阵计算模块
如图2所示,多项式矩阵计算模块是用于计算多项式m次幂矩阵的模块,m是一大于1的整数,多项式m次幂矩阵是由m2个阵元组成的m行m列的矩阵,多项式矩阵计算模块中设有与多项式m次幂矩阵中各阵元一一对应的m2个多项式计算单元,设多项式m次幂矩阵的起始行号为0行,起始列号为0列,该矩阵第i行第j列的阵元为fij,则多项式矩阵计算模块的结构为:
满足条件0≤i≤m-1且j=0的fij为多项式向量赋值阵元,该fij对应的多项式计算单元为多项式矩阵计算模块的第i行多项式向量输入端,记为qi,该多项式计算单元的输出端即为qi;
满足条件i=0且1≤j≤m-1的fij对应的多项式计算单元由一个二输入与门A构成,该二输入与门的输出端即为本单元的输出端,该二输入与门的两个输入端分别接到qi及对应fm-1,j-1的多项式计算单元的输出端;
满足条件1≤i≤m-1且1≤j≤m-1的fij对应的多项式计算单元由一个二输入异或门X和一个二输入与门A构成,其中的二输入与门的两个输入端分别接到qi和对应fm-1,j-1的多项式计算单元的输出端,其中的二输入异或门的一个输入端接到对应fi-1,j-1的多项式计算单元的输出端,另一个输入端接到本单元的二输入与门的输出端,该二输入异或门的输出端构成本单元的输出端;
2)单位矩阵输出模块
单位矩阵输出模块为现有技术,是用于输出m行m列单位矩阵向量的模块,单位矩阵输出模块中设有与单位矩阵中的m2个阵元一一对应的m2个单位矩阵向量输出单元,每个单位矩阵向量输出单元均设有一向量输出端;
3)系统矩阵计算模块
如图3所示,系统矩阵计算模块是用于输出系统矩阵的模块,系统矩阵计算模块包括一个选择器件序列,一个多项式输入器件序列,一个输出器件序列,一个单位矩阵输入器件序列;
所述选择器件序列由m个二输入选择器件Z3组成,所述多项式输入器件序列由m个多项式矩阵输入端口器件Z1组成,所述输出器件序列由m个输出端口器件Z4组成,所述单位矩阵输入器件序列由n个单位矩阵输入端口器件Z2组成,且有1<n<m;
所述多项式矩阵输入端口器件、输出端口器件、单位矩阵输入端口器件各有一个输出端口、一个输入端口,且每个端口均有m个端脚;
所述二输入选择器件有一个选择信号输入端脚,及一个输出端口、两个输入端口,且二输入选择器件的每个端口均有m个端脚,二输入选择器件的两个输入端口分别为第一输入端口、第二输入端口;
设各器件序列的起始序号均为0,0≤i≤m-1,0≤j≤m-1,0≤s≤n-1,n≤t≤m-1,则有如下连接关系:
多项式矩阵计算模块中,多项式m次幂矩阵第j列各阵元对应的各多项式计算单元的输出端构成多项式矩阵计算模块的第j个输出端口;
单位矩阵输出模块中,单位矩阵第j列各阵元对应的各单位矩阵向量输出单元的向量输出端构成单位矩阵输出模块的第j个输出端口;
多项式输入器件序列中,第j个多项式矩阵输入端口器件的输入端口接到多项式矩阵计算模块的第j个输出端口,第j个多项式矩阵输入端口器件的输出端口接到选择器件序列中第j个二输入选择器件的第一输入端口;
单位矩阵输入器件序列中,第s个单位矩阵输入端口器件的输入端口接到单位矩阵输出模块的第s个输出端口,第s个单位矩阵输入端口器件的输出端口接到选择器件序列中第s个二输入选择器件的第二输入端口;
选择器件序列中,第t个二输入选择器件的第二输入端口接到多项式输入器件序列中第t-n个多项式矩阵输入端口器件的输出端口,第j个二输入选择器件的输出端口接到输出器件序列中第j个输出端口器件的输入端,各二输入选择器件的选择信号输入端脚相互串接构成系统矩阵计算模块的多项式选择端Sel;
输出器件序列中,第j个输出端口器件的输出端口构成系统矩阵计算模块的第j个系统矩阵列输出端口,第j个系统矩阵列输出端口中的第i个端脚构成系统矩阵计算模块的第i行第j列系统矩阵元素输出端;
4)并行CRC运算模块
如图4所示,并行CRC运算模块包括一个寄存器序列,一个与门序列,两个异或门序列;
所述与门序列由m个与门子序列组成,所述与门子序列由m个二输入与门A组成,与门子序列中每个二输入与门的两个输入端分别为第一输入端、第二输入端;
所述寄存器序列由m个寄存器Reg组成,所述异或门序列由m个异或门X组成;
所述两个异或门序列分别为第一异或门序列XG1、第二异或门序列XG2;
第一异或门序列中的每个异或门均有两个输入端,分别为第一输入端、第二输入端;
第二异或门序列中的每个异或门均有m个输入端;
设寄存器序列、异或门序列、与门序列,及与门序列中各个与门子序列的起始序号均为0,0≤i≤m-1,则有如下连接关系:
寄存器序列中,第i个寄存器的输出端构成并行CRC运算模块的校验码第i位输出端,第i个寄存器的输入端接到第二异或门序列中第i个异或门的输出端;
m个寄存器的输出端构成并行CRC运算模块的m个校验码位输出端y0,y1,…ym-1;
第一异或门序列中,第i个异或门的第一输入端接到寄存器序列中第i个寄存器的输出端,第i个异或门的第二输入端构成并行CRC运算模块的校验数据第i位输入端;
第一异或门序列中,m个异或门的第二输入端构成并行CRC运算模块的m个校验数据位输入端b0,b1,…bm-1;
与门序列中,第i个与门子序列中各二输入与门的输出端分别接到第二异或门序列中第i个异或门的各个输入端,第i个与门子序列中第j个二输入与门的第一输入端接到系统矩阵计算模块的第i行第j列系统矩阵元素输出端,每个与门子序列中的第j个二输入与门的第二输入端均接到第一异或门序列中的第j个异或门的输出端。
本发明实施例适用于生成多项式阶数为m及m-n的CRC(循环冗余)运算,能在线选择生成多项式阶数,其工作原理如下:
为便于描述,定义以下参数:
CRC运算的生成多项式为P,P的阶数为m,其系数向量为P=[pm-1,pm-2,...,p1,p0];
将要被CRC运算所处理的输入数据为D,D的长度为k,D=[dk-1,dk-2,…,d1,d0];
CRC运算并行处理的数据位宽为w,m和k都是w的整数倍数,且w≤m;
CRC运算所产生第v时刻的中间状态向量为Y(v),Y(v)的长度为m,即Y(v)=[ym-1(v),ym-2(v),…,y1(v),y0(v)],Y(v)对应于并行CRC运算模块中寄存器中的值,当时刻v=k/w-1时Y(v)即为CRC运算过程的结果向量;
Hm-1表示m-1维的单位矩阵,且等于以下矩阵值:
F为生成多项式矩阵,这是一个m×m维矩阵,且等于以下矩阵值:
Fw为系统矩阵,这是一个m×m维矩阵,对于输入数据位宽为w位的CRC运算,其系统矩阵Fw等于对生成多项式矩阵F进行w次幂运算,且等于以下矩阵值:
Fm为生成多项式矩阵F的m次幂矩阵,这是一个m×m维矩阵,且等于以下矩阵值:
1)多项式矩阵计算模块
多项式矩阵计算模块的矩阵公式为:
根据多项式矩阵计算模块的矩阵公式,每列阵元可以在前列阵元的基础上通过与门和异或门进行逻辑运算来获得,当生成多项式的多项式向量输入多项式矩阵计算模块后,就可逐列地计算产生多项式矩阵计算模块中其它列阵元的值,得到生成多项式矩阵F的m次幂矩阵Fm,其运算步骤如下:
a)将生成多项式P的多项式向量[pm-1,pm-2,…,p1,p0]输入多项式矩阵计算模块的各个多项式向量输入端,一一对应的赋值给多项式矩阵计算模块的0列阵元[fm-1,0,fm-2,0,…,f1,0,f0,0],获得多项式矩阵计算模块第0列阵元的值;
b)将多项式矩阵计算模块第0列阵元[fm-1,0,fm-2,0,…,f1,0,f0,0]的值逐一与fm-1,0的值送入二输入与门,对应的产生中间向量[em-1,1,em-2,1,.,e1,1,e0,1];
c)将e0,1的值赋值给f0,1,将[em-1,1,em-2,1,…,e1,1]与[fm-2,0,fm-3,0,…,f1,0,f0,0]的值一一对应地送入二输入异或门,并将运算结果对应地赋值给[fm-1,1,fm-2,1,…,f1,1],获得多项式矩阵计算模块第1列阵元的值;
d)多项式矩阵计算模块中第j列阵元的值(1≤j≤m-1),可通过如下运算获得:将[fm-1,j-1,fm-2,j-1,…,f1,j-1,f0,j-1]的值逐一分别与fm-1,j-1的值送入二输入与门,对应地产生中间向量[em-1,j,em-2,j,…,e1,j,e0,j],将e0,j赋值给f0,j,将[em-1,j,em-2,j,…,e1,j]分别与[fm-2,j-1,fm-3,j-1,…,f1,j-1,f0,j-1]一一对应地送入二输入异或门,并将运算结果对应地赋值给[fm-1,j,fm-2,j,…,f1,j],获得多项式矩阵计算模块第j列阵元的值,重复本步骤至j=m-1,即获得多项式矩阵计算模块中每一列阵元的值。
2)系统矩阵计算模块
系统矩阵计算模块以列为单位进行运算,对于输入数据位宽是w的CRC运算来说,其0至m-w-1列的值为m×m维单位矩阵的最左边的m-w列的值,即从w列至m-1列的值,其m-w列至m-1列的值分别为多项式矩阵计算模块0列至w-1列的值,获得多项式矩阵计算模块的m次幂运算结果后,结合m×m维单位矩阵的元素值,就可获得输入位宽不大于m的CRC运算的所有系统矩阵,其运算步骤如下:
a)多项式矩阵计算模块将多项式矩阵各列阵元的输出值分别输入系统矩阵计算模块中对应的多项式矩阵输入端口器件,从而将多项式矩阵计算模块运算得到的生成多项式矩阵F的m次幂矩阵Fm的0列至m-1列赋值给系统矩阵Fw;
b)单位矩阵输出模块生成m-1维的单位矩阵Hm-1,并将单位矩阵各列阵元的值分别输入系统矩阵计算模块中对应的单位矩阵输入端口器件;
c)系统矩阵计算模块中m个多项式矩阵输入端口器件将矩阵Fm的0列至m-1列赋值给各二输入选择器件第一输入端口;
n个单位矩阵输入端口器件,及多项式矩阵输入端口器件中的第0至第m-n-1个多项式矩阵输入端口器件,分别将单位矩阵Hm-1的0列至n-1列,及矩阵Fm的0列至m-n-1列,分别赋值给各二输入选择器件第二输入端口;
d)系统矩阵计算模块可在多项式选择端的输入值控制下实现输入位宽为m和m-2两种CRC运算所需的系统矩阵的计算功能,当多项式选择端的输入值为0时,各二输入选择器件的输出端口输出第一输入端口的值,此时系统矩阵计算模块中各输出端口器件输出并行CRC运算模块所需要的m维系统矩阵列元素值,实现输入位宽为m的CRC运算,并行CRC运算模块可并行接收m位的输入数据,当多项式选择端的输入值为1时,各二输入选择器件的输出端口输出第二输入端口的值,此时系统矩阵计算模块中各输出端口器件输出并行CRC运算模块所需要的m-n维系统矩阵列元素值,实现输入位宽为m-n的CRC运算,并行CRC运算模块可并行接收m-n位的输入数据;
e)将系统矩阵计算模块中各二输入选择器件的输出至各输出端口器件,通过各输出端口器件输出系统矩阵Fw的第0列至第m-1列,从而获得了系统矩阵Fw的第0列至第m-1列的值,当多项式选择端的输入值为0时,Fw的值等于Fm,当多项式选择端的输入值为1时,Fw的值等于Fm-2;
3)并行CRC运算模块
并行CRC运算模块的运算过程可用以下状态空间表达式对其进行描述:
式中,B=[dk-1,dk-2,…,dk-w|0,…,0],[dk-w-1,dk-w-1,…,dk-2*w|0,…,0],…,[dw-1,dw-2,…,d0|0,…,0];
将系统矩阵计算模块输出的系统矩阵列元素值,输入到并行CRC运算模块中各二输入与门,将待处理的k位数据分为k/w组后,逐组输入并行CRC运算模块的各个校验数据位输入端(即第一异或门序列中的各异或门的第二输入端),并行CRC运算模块逐步输出第v时刻的状态向量[ym-1(v),ym-2(v),…,y1(v),y0(v)]T,1≤v≤k/w-1,当v=k/w-1时,状态向量[ym-1(k/w-1),ym-2(k/w-1),…,y1(k/w-1),y0(k/w-1)]T即为最终的CRC码。
Claims (1)
1.一种基于FPGA的并行循环冗余校验运算电路,其特征在于,该电路包括以下四个模块:
1)多项式矩阵计算模块
多项式矩阵计算模块是用于计算多项式m次幂矩阵的模块,m是一大于1的整数,多项式m次幂矩阵是由m2个阵元组成的m行m列的矩阵,多项式矩阵计算模块中设有与多项式m次幂矩阵中各阵元一一对应的m2个多项式计算单元,设多项式m次幂矩阵的起始行号为0行,起始列号为0列,该矩阵第i行第j列的阵元为fij,则多项式矩阵计算模块的结构为:
满足条件0≤i≤m-1且j=0的fij为多项式向量赋值阵元,该fij对应的多项式计算单元为多项式矩阵计算模块的第i行多项式向量输入端,记为qi,该多项式计算单元的输出端即为qi;
满足条件i=0且1≤j≤m-1的fij对应的多项式计算单元由一个二输入与门构成,该二输入与门的输出端即为本单元的输出端,该二输入与门的两个输入端分别接到qi及对应fm-1,j-1的多项式计算单元的输出端;
满足条件1≤i≤m-1且1≤j≤m-1的fij对应的多项式计算单元由-个二输入异或门和一个二输入与门构成,其中的二输入与门的两个输入端分别接到qi和对应fm-1,j-1的多项式计算单元的输出端,其中的二输入异或门的一个输入端接到对应fi-1,j-1的多项式计算单元的输出端,另一个输入端接到本单元的二输入与门的输出端,该二输入异或门的输出端构成本单元的输出端;
2)单位矩阵输出模块
单位矩阵输出模块是用于输出m行m列单位矩阵向量的模块,单位矩阵输出模块中设有与单位矩阵中的m2个阵元一一对应的m2个单位矩阵向量输出单元,每个单位矩阵向量输出单元均设有一向量输出端;
3)系统矩阵计算模块
系统矩阵计算模块是用于输出系统矩阵的模块,系统矩阵计算模块包括一个选择器件序列,一个多项式输入器件序列,一个输出器件序列,一个单位矩阵输入器件序列;
所述选择器件序列由m个二输入选择器件组成,所述多项式输入器件序列由m个多项式矩阵输入端口器件组成,所述输出器件序列由m个输出端口器件组成,所述单位矩阵输入器件序列由n个单位矩阵输入端口器件组成,且有1<n<m;
所述多项式矩阵输入端口器件、输出端口器件、单位矩阵输入端口器件各有一个输出端口、一个输入端口,且每个端口均有m个端脚;
所述二输入选择器件有一个选择信号输入端脚,及一个输出端口、两个输入端口,且二输入选择器件的每个端口均有m个端脚,二输入选择器件的两个输入端口分别为第一输入端口、第二输入端口;
设各器件序列的起始序号均为0,0≤i≤m-1,0≤j≤m-1,0≤s≤n-1,n≤t≤m-1,则有如下连接关系:
多项式矩阵计算模块中,多项式m次幂矩阵第j列各阵元对应的各多项式计算单元的输出端构成多项式矩阵计算模块的第j个输出端口;
单位矩阵输出模块中,单位矩阵第j列各阵元对应的各单位矩阵向量输出单元的向量输出端构成单位矩阵输出模块的第j个输出端口;
多项式输入器件序列中,第j个多项式矩阵输入端口器件的输入端口接到多项式矩阵计算模块的第j个输出端口,第j个多项式矩阵输入端口器件的输出端口接到选择器件序列中第j个二输入选择器件的第一输入端口;
单位矩阵输入器件序列中,第s个单位矩阵输入端口器件的输入端口接到单位矩阵输出模块的第s个输出端口,第s个单位矩阵输入端口器件的输出端口接到选择器件序列中第s个二输入选择器件的第二输入端口;
选择器件序列中,第t个二输入选择器件的第二输入端口接到多项式输入器件序列中第t-n个多项式矩阵输入端口器件的输出端口,第j个二输入选择器件的输出端口接到输出器件序列中第j个输出端口器件的输入端,各二输入选择器件的选择信号输入端脚相互串接构成系统矩阵计算模块的多项式选择端;
输出器件序列中,第j个输出端口器件的输出端口构成系统矩阵计算模块的第j个系统矩阵列输出端口,第j个系统矩阵列输出端口中的第i个端脚构成系统矩阵计算模块的第i行第j列系统矩阵元素输出端;
4)并行CRC运算模块
并行CRC运算模块包括一个寄存器序列,一个与门序列,两个异或门序列;
所述与门序列由m个与门子序列组成,所述与门子序列由m个二输入与门组成,与门子序列中每个二输入与门的两个输入端分别为第一输入端、第二输入端;
所述寄存器序列由m个寄存器组成,所述异或门序列由m个异或门组成;
所述两个异或门序列分别为第一异或门序列、第二异或门序列;
第一异或门序列中的每个异或门均有两个输入端,分别为第一输入端、第二输入端;
第二异或门序列中的每个异或门均有m个输入端;
设寄存器序列、异或门序列、与门序列,及与门序列中各个与门子序列的起始序号均为0,0≤i≤m-1,则有如下连接关系:
寄存器序列中,第i个寄存器的输出端构成并行CRC运算模块的校验码第i位输出端,第i个寄存器的输入端接到第二异或门序列中第i个异或门的输出端;
第一异或门序列中,第i个异或门的第一输入端接到寄存器序列中第i个寄存器的输出端,第i个异或门的第二输入端构成并行CRC运算模块的校验数据第i位输入端;
与门序列中,第i个与门子序列中各二输入与门的输出端分别接到第二异或门序列中第i个异或门的各个输入端,第i个与门子序列中第j个二输入与门的第一输入端接到系统矩阵计算模块的第i行第j列系统矩阵元素输出端,每个与门子序列中的第j个二输入与门的第二输入端均接到第一异或门序列中的第j个异或门的输出端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210347751.1A CN102891685B (zh) | 2012-09-18 | 2012-09-18 | 基于fpga的并行循环冗余校验运算电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210347751.1A CN102891685B (zh) | 2012-09-18 | 2012-09-18 | 基于fpga的并行循环冗余校验运算电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102891685A true CN102891685A (zh) | 2013-01-23 |
CN102891685B CN102891685B (zh) | 2018-06-22 |
Family
ID=47535074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210347751.1A Active CN102891685B (zh) | 2012-09-18 | 2012-09-18 | 基于fpga的并行循环冗余校验运算电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102891685B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653390A (zh) * | 2014-11-10 | 2016-06-08 | 无锡华润矽科微电子有限公司 | 一种SoC系统的校验方法 |
CN107154836A (zh) * | 2017-06-28 | 2017-09-12 | 西安空间无线电技术研究所 | 一种基于fpga的并行循环冗余crc校验方法 |
CN107239362A (zh) * | 2017-02-20 | 2017-10-10 | 中国科学院微电子研究所 | 一种并行crc校验码的计算方法及系统 |
CN107656833A (zh) * | 2017-11-06 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种crc计算设备及计算方法 |
CN111082810A (zh) * | 2020-01-07 | 2020-04-28 | 西安电子科技大学 | 一种基于fpga低开销并行循环冗余校验方法及应用 |
CN112232523A (zh) * | 2020-12-08 | 2021-01-15 | 湖南航天捷诚电子装备有限责任公司 | 一种国产化人工智能计算设备 |
US11403166B2 (en) * | 2017-05-11 | 2022-08-02 | Gree Electric Appliances (Wuhan) Co., Ltd. | Cyclic redundancy check circuit and method and apparatus thereof, chip and electronic device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1324517A (zh) * | 1998-08-26 | 2001-11-28 | 艾利森电话股份有限公司 | 用于生成循环冗余校验代码的并行循环冗余校验生成电路 |
CN1383285A (zh) * | 2001-04-26 | 2002-12-04 | 深圳市中兴通讯股份有限公司 | 一种并行数据循环冗余校验方法 |
CN1762103A (zh) * | 2003-03-28 | 2006-04-19 | 国际商业机器公司 | 用于可变宽度并行循环冗余校验计算的迭代电路和方法 |
KR100645388B1 (ko) * | 2005-11-30 | 2006-11-14 | 한국전자통신연구원 | 임의의 크기의 병렬 처리가 가능한 병렬 crc 생성 장치및 방법 |
CN101461140A (zh) * | 2006-04-22 | 2009-06-17 | 英国贝尔法斯特女王大学 | 循环冗余校验码的可配置并行计算 |
CN101902228A (zh) * | 2009-05-25 | 2010-12-01 | 中兴通讯股份有限公司 | 快速循环冗余校验编码方法及装置 |
CN202906879U (zh) * | 2012-09-18 | 2013-04-24 | 国核自仪系统工程有限公司 | 基于fpga的并行循环冗余校验运算电路 |
-
2012
- 2012-09-18 CN CN201210347751.1A patent/CN102891685B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1324517A (zh) * | 1998-08-26 | 2001-11-28 | 艾利森电话股份有限公司 | 用于生成循环冗余校验代码的并行循环冗余校验生成电路 |
CN1383285A (zh) * | 2001-04-26 | 2002-12-04 | 深圳市中兴通讯股份有限公司 | 一种并行数据循环冗余校验方法 |
CN1762103A (zh) * | 2003-03-28 | 2006-04-19 | 国际商业机器公司 | 用于可变宽度并行循环冗余校验计算的迭代电路和方法 |
KR100645388B1 (ko) * | 2005-11-30 | 2006-11-14 | 한국전자통신연구원 | 임의의 크기의 병렬 처리가 가능한 병렬 crc 생성 장치및 방법 |
CN101461140A (zh) * | 2006-04-22 | 2009-06-17 | 英国贝尔法斯特女王大学 | 循环冗余校验码的可配置并行计算 |
CN101902228A (zh) * | 2009-05-25 | 2010-12-01 | 中兴通讯股份有限公司 | 快速循环冗余校验编码方法及装置 |
CN202906879U (zh) * | 2012-09-18 | 2013-04-24 | 国核自仪系统工程有限公司 | 基于fpga的并行循环冗余校验运算电路 |
Non-Patent Citations (2)
Title |
---|
张莹: "一种快速循环冗余校验电路的设计", 《南华大学学报(自然科学版)》 * |
毕占坤 等: "基于逻辑设计的高速CRC并行算法研究及其FPGA实现", 《仪器表学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653390A (zh) * | 2014-11-10 | 2016-06-08 | 无锡华润矽科微电子有限公司 | 一种SoC系统的校验方法 |
CN107239362A (zh) * | 2017-02-20 | 2017-10-10 | 中国科学院微电子研究所 | 一种并行crc校验码的计算方法及系统 |
CN107239362B (zh) * | 2017-02-20 | 2020-06-05 | 中国科学院微电子研究所 | 一种并行crc校验码的计算方法及系统 |
US11403166B2 (en) * | 2017-05-11 | 2022-08-02 | Gree Electric Appliances (Wuhan) Co., Ltd. | Cyclic redundancy check circuit and method and apparatus thereof, chip and electronic device |
CN107154836A (zh) * | 2017-06-28 | 2017-09-12 | 西安空间无线电技术研究所 | 一种基于fpga的并行循环冗余crc校验方法 |
CN107656833A (zh) * | 2017-11-06 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种crc计算设备及计算方法 |
CN111082810A (zh) * | 2020-01-07 | 2020-04-28 | 西安电子科技大学 | 一种基于fpga低开销并行循环冗余校验方法及应用 |
CN111082810B (zh) * | 2020-01-07 | 2023-03-31 | 西安电子科技大学 | 一种基于fpga低开销并行循环冗余校验方法及应用 |
CN112232523A (zh) * | 2020-12-08 | 2021-01-15 | 湖南航天捷诚电子装备有限责任公司 | 一种国产化人工智能计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102891685B (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102891685A (zh) | 基于fpga的并行循环冗余校验运算电路 | |
CN101527615A (zh) | 一种循环冗余校验crc码的实现方法和装置 | |
CN101227194B (zh) | 用于并行bch编码的电路、编码器及方法 | |
CN101273532B (zh) | 解码装置及接收装置 | |
US20060218470A1 (en) | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same | |
CN105322973B (zh) | 一种rs码编码器及编码方法 | |
CN201153259Y (zh) | 并行数据循环冗余校验装置及双向数据传输系统 | |
CN102521211B (zh) | 一种求解有限域上线性方程组的并行装置 | |
CN101854222B (zh) | 一种数据处理的方法、通信装置和系统 | |
Hariri et al. | Concurrent error detection in montgomery multiplication over binary extension fields | |
CN112468161B (zh) | 一种rs高速编码电路 | |
CN103199873A (zh) | 两级分块crc运算的快速配置方法 | |
CN202906879U (zh) | 基于fpga的并行循环冗余校验运算电路 | |
CN101556829B (zh) | 线性反馈移位寄存器模块及产生输出流的方法 | |
CN101783688A (zh) | 一种64位并行多模式crc码生成电路的设计方法 | |
CN101968732B (zh) | 检错比特并行脉动阵列移位多项式基乘法器及其构造方法 | |
CN105099467A (zh) | Qc-ldpc码的编码方法及编码装置 | |
Ding et al. | Limitations of the Macaulay matrix approach for using the HHL algorithm to solve multivariate polynomial systems | |
CN102891689B (zh) | 一种错误位置多项式求解方法及装置 | |
CN101847999A (zh) | 一种用循环冗余校验码进行并行校验的方法 | |
Arifin et al. | Design and implementation of high performance parallel crc architecture for advanced data communication | |
Semerenko | The theory of parallel CRC codes based on automata models | |
RU2541869C1 (ru) | Устройство декодирования кодов рида-соломона | |
Martin et al. | Pseudo-random sequences generated by cellular automata | |
US10623018B2 (en) | Method of arrangement of an algorithm in cyclic redundancy check |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 200241 No. 428 East Jiangchuan Road, Shanghai, Minhang District Patentee after: STATE NUCLEAR POWER AUTOMATION SYSTEM ENGINEERING Co.,Ltd. Address before: 200241. A2036, building B, building 555, Dongchuan Road, Minhang District, Shanghai Patentee before: STATE NUCLEAR POWER AUTOMATION SYSTEM ENGINEERING Co.,Ltd. |