基于fpga的并行循环冗余校验运算电路的制作方法

文档序号:7529434阅读:219来源:国知局
专利名称:基于fpga的并行循环冗余校验运算电路的制作方法
技术领域
本实用新型涉及数据校验技术,特别是涉及一种基于FPGA的并行循环冗余校验运算电路的技术。
背景技术
工业仪控系统中的数据在通信线路上串行传送时,由于线路噪音等因素的影响,可能导致多位传输数据发生错误。在这种情况下,奇偶校验和汉明校验的作用就不大了,此时需要采用循环冗余检查(即CRC)运算对所传输的数据进行校验。CRC运算简单但具有很强的检错能力,能够检查3位以上的错误,而且易于用编码器及检测电路实现。从性能上和开销上考虑,均远远优于奇偶校验及汉明校验等方式。现有的CRC运算电路构架分为两类,一类是串行CRC运算电路,另一类是并行CRC运算电路。由于串行CRC运算电路的数据处理能力较低,不能满足高速数据传输场合下的数据校验要求,因此在需要高速数据传输的场合,都采用并行CRC运算电路来实现CRC运

ο现有的并行CRC运算电路的缺陷在于只能针对特定的生成多项式和数据位宽进行数据校验,在改变生成多项式时,都需要重新计算CRC运算所需的系统矩阵P,给CRC运算实时运行带来极大的困难,存在灵活性低的缺陷,不能满足构建CRC运算的IP核等场合的要求
实用新型内容
针对上述现有技术中存在的缺陷,本实用新型所要解决的技术问题是提供一种改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵,灵活性高的基于FPGA的并行循环冗余校验运算电路。为了解决上述技术问题,本实用新型所提供的一种基于FPGA的并行循环冗余校验运算电路,其特征在于,该电路包括以下四个模块I)多项式矩阵计算模块多项式矩阵计算模块是用于计算多项式m次幂矩阵的模块,m是一大于I的整数,多项式m次幂矩阵是由m2个阵元组成的m行m列的矩阵,多项式矩阵计算模块中设有与多项式m次幂矩阵中各阵元一一对应的m2个多项式计算单元,设多项式m次幂矩阵的起始行号为O行,起始列号为O列,该矩阵第i行第j列的阵元为则多项式矩阵计算模块的结构为满足条件O彡i彡m-Ι且j=0的fu为多项式向量赋值阵元,该fu对应的多项式计算单元为多项式矩阵计算模块的第i行多项式向量输入端,记为qi;该多项式计算单元的输出端即为qi ;满足条件i=0且I彡j彡m-Ι的匕对应的多项式计算单元由一个二输入与门构成,该二输入与门的输出端即为本单元的输出端,该二输入与门的两个输入端分别接到Qi及对应的多项式计算单元的输出端;满足条件I彡i彡m-ι且I彡j彡m-ι的fu对应的多项式计算单元由一个二输入异或门和一个二输入与门构成,其中的二输入与门的两个输入端分别接到Qi和对应的多项式计算单元的输出端,其中的二输入异或门的一个输入端接到对应f1-m的多项式计算单元的输出端,另一个输入端接到本单元的二输入与门的输出端,该二输入异或门的输出端构成本单元的输出端;2)单位矩阵输出模块单位矩阵输出模块是用于输出m行m列单位矩阵向量的模块,单位矩阵输出模块中设有与单位矩阵中的Hl2个阵元一一对应的Hl2个单位矩阵向量输出单元,每个单位矩阵向量输出单元均设有一向量输出端;3)系统矩阵计算模块系统矩阵计算模块是用于输出系统矩阵的模块,系统矩阵计算模块包括一个选择器件序列,一个多项式输入器件序列,一个输出器件序列,一个单位矩阵输入器件序列;所述选择器件序列由m个二输入选择器件组成,所述多项式输入器件序列由m个多项式矩阵输入端口器件组成,所述输出器件序列由m个输出端口器件组成,所述单位矩阵输入器件序列由η个单位矩阵输入端口器件组成,且有l〈n〈m ;所述多项式矩阵输入端口器件、输出端口器件、单位矩阵输入端口器件各有一个输出端口、一个输入端口,且每个端口均有m个端脚;所述二输入选择器件有一个选择信号输入端脚,及一个输出端口、两个输入端口,且二输入选择器件的每个端口均有m个端脚,二输入选择器件的两个输入端口分别为第一输入端口、第二输入端口 ;
设各器件序列的起始序号均为0,0 ( i ( m-1,0 ( j ( m-1,0 ( s ( n_l,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-ι,则有如下连接关系寄存器序列中,第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的并行循环冗余校验运算电路,其特征在于,该电路包括以下四个模块I)多项式矩阵计算模块如图2所示,多项式矩阵计算模块是用于计算多项式m次幂矩阵的模块,m是一大于I的整数,多项式m次幂矩阵是由m2个阵元组成的m行m列的矩阵,多项式矩阵计算模块中设有与多项式m次幂矩阵中各阵元一一对应的m2个多项式计算单元,设多项式m次幂矩阵的起始行号为O行,起始列号为O列,该矩阵第i行第j列的阵元为fu,则多项式矩阵计算模块的结构为满足条件O彡i彡m-Ι且j=0的fu为多项式向量赋值阵元,该fu对应的多项式计算单元为多项式矩阵计算模块的第i行多项式向量输入端,记为qi;该多项式计算单元的输出端即为qi ;满足条件i=0且I彡j彡m-Ι的匕对应的多项式计算单元由一个二输入与门A构成,该二输入与门的输出端即为本单元的输出端,该二输入与门的两个输入端分别接到Qi及对应fm-1,j-1的多项式计算单元的输出端;满足条件I彡i彡m-Ι且I彡j彡m-Ι的对应的多项式计算单元由一个二输入异或门X和一个二输入与门A构成,其中的二输入与门的两个输入端分别接到Qi和对应
的多项式计算单元的输出端,其中的二输入异或门的一个输入端接到对应Am的多项式计算单元的输出 端,另一个输入端接到本单元的二输入与门的输出端,该二输入异或门的输出端构成本单元的输出端;2)单位矩阵输出模块单位矩阵输出模块为现有技术,是用于输出m行m列单位矩阵向量的模块,单位矩阵输出模块中设有与单位矩阵中的Hl2个阵元一一对应的Hl2个单位矩阵向量输出单元,每个单位矩阵向量输出单元均设有一向量输出端;3)系统矩阵计算模块如图3所示,系统矩阵计算模块是用于输出系统矩阵的模块,系统矩阵计算模块包括一个选择器件序列,一个多项式输入器件序列,一个输出器件序列,一个单位矩阵输入器件序列;所述选择器件序列由m个二输入选择器件Z3组成,所述多项式输入器件序列由m个多项式矩阵输入端口器件Zl组成,所述输出器件序列由m个输出端口器件TA组成,所述单位矩阵输入器件序列由η个单位矩阵输入端口器件Ζ2组成,且有l〈n〈m ;所述多项式矩阵输入端口器件、输出端口器件、单位矩阵输入端口器件各有一个输出端口、一个输入端口,且每个端口均有m个端脚;所述二输入选择器件有一个选择信号输入端脚,及一个输出端口、两个输入端口,且二输入选择器件的每个端口均有m个端脚,二输入选择器件的两个输入端口分别为第一输入端口、第二输入端口 ;设各器件序列的起始序号均为0,0 ( i ( m-1,0 ( j ( m-1,0 ( s ( n_l,n彡t彡m-1,则有如下连接关系[0057]多项式矩阵计算模块中,多项式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-ι,则有如下连接关系寄存器序列中,第i个寄存器的输出端构成并行CRC运算模块的校验码第i位输出端,第i个寄存器的输入端接到第二异或门序列中第i个异或门的输出端;m个寄存器的输出端构成并行CRC运算模块的m个校验码位输出端Y0, J1,…Ynrl ;第一异或门序列中,第i个异或门的第一输入端接到寄存器序列中第i个寄存器的输出端,第i个异或门的第二输入端构成并行CRC运算模块的校验数据第i位输入端;第一异或门序列中,m个异或门的第二输入端构成并行CRC运算模块的m个校验数据位输入端bQ,Id1,;与门序列中,第i个与门子序列中各二输入与门的输出端分别接到第二异或门序列中第i个异或门的各个输入端,第i个与门子序列中第j个二输入与门的第一输入端接到系统矩阵计算模块的第i行第j列系统矩阵元素输出端,每个与门子序列中的第j个二输入与门的第二输入端均接到第一异或门序列中的第j个异或门的输出端。本实用新型实施例适用于生成多项式阶数为m及m-n的CRC (循环冗余)运算,能在线选择生成多项式阶数,其工作原理如下为便于描述,定义以下参数CRC运算的生成多项式为Ρ,Ρ的阶数为m,其系数向量为ΡΚρ^,ρ^. . . ,p^pj ;将要被CRC运算所处理的输入数据为D,D的长度为k,D= [d^, dk_2,. . . , Cl1, d0];CRC运算并行处理的数据位宽为w,m和k都是w的整数倍数,且w彡m ;CRC运算所产生第V时刻的中间状态向量为Y(V),Y(V)的长度为m,即Y(V) = Iiynrl (V), ym_2 (v), ···, Y1 (v), y0(v) ], Y(v)对应于并行CRC运算模块中寄存器中的值,当时刻v=k/w-l时Y(V)即为CRC运算过程的结果向量;Hnrl表示m-Ι维的单位矩阵,且等于以下矩阵值
权利要求1. 一种基于FPGA的并行循环冗余校验运算电路,其特征在于,该电路包括以下四个模块 (1)多项式矩阵计算模块 多项式矩阵计算模块是用于计算多项式m次幂矩阵的模块,m是一大于I的整数,多项式m次幂矩阵是由m2个阵元组成的m行m列的矩阵,多项式矩阵计算模块中设有与多项式m次幂矩阵中各阵元一一对应的m2个多项式计算单元,设多项式m次幂矩阵的起始行号为O行,起始列号为O列,该矩阵第i行第j列的阵元为fu,则多项式矩阵计算模块的结构为 满足条件O彡i彡m-Ι且j=0的匕为多项式向量赋值阵元,该对应的多项式计算单元为多项式矩阵计算模块的第i行多项式向量输入端,记为qi;该多项式计算单元的输出端即为Qi ; 满足条件i=0且I彡j ^ m-1的fu对应的多项式计算单元由一个二输入与门构成,该二输入与门的输出端即为本单元的输出端,该二输入与门的两个输入端分别接到Qi及对应的多项式计算单元的输出端; 满足条件I彡i彡m-Ι且I彡j彡m-Ι的对应的多项式计算单元由一个二输入异或门和一个二输入与门构成,其中的二输入与门的两个输入端分别接到Qi和对应fm-m的多项式计算单元的输出端,其中的二输入异或门的一个输入端接到对应Am的多项式计算单元的输出端,另一个输入端接到本单元的二输入与门的输出端,该二输入异或门的输出端构成本单元的输出端; (2)单位矩阵输出模块 单位矩阵输出模块是用于输出m行m列单位矩阵向量的模块,单位矩阵输出模块中设有与单位矩阵中的m2个阵元一一对应的m2个单位矩阵向量输出单元,每个单位矩阵向量输出单元均设有一向量输出端; (3)系统矩阵计算模块 系统矩阵计算模块是用于输出系统矩阵的模块,系统矩阵计算模块包括一个选择器件序列,一个多项式输入器件序列,一个输出器件序列,一个单位矩阵输入器件序列; 所述选择器件序列由m个二输入选择器件组成,所述多项式输入器件序列由m个多项式矩阵输入端口器件组成,所述输出器件序列由m个输出端口器件组成,所述单位矩阵输入器件序列由η个单位矩阵输入端口器件组成,且有l〈n〈m ; 所述多项式矩阵输入端口器件、输出端口器件、单位矩阵输入端口器件各有一个输出端口、一个输入端口,且每个端口均有m个端脚; 所述二输入选择器件有一个选择信号输入端脚,及一个输出端口、两个输入端口,且二输入选择器件的每个端口均有m个端脚,二输入选择器件的两个输入端口分别为第一输入端口、第二输入端口 ; 设各器件序列的起始序号均为0,0< i < m-1,0 ^ j ^ m-1,0 ^ s ^ n-l,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-Ι,则有如下连接关系 寄存器序列中,第i个寄存器的输出端构成并行CRC运算模块的校验码第i位输出端,第i个寄存器的输入端接到第二异或门序列中第i个异或门的输出端; 第一异或门序列中,第i个异或门的第一输入端接到寄存器序列中第i个寄存器的输出端,第i个异或门的第二输入端构成并行CRC运算模块的校验数据第i位输入端; 与门序列中,第i个与门子序列中各二输入与门的输出端分别接到第二异或门序列中第i个异或门的各个输入端,第i个与门子序列中第j个二输入与门的第一输入端接到系统矩阵计算模块的第i行第j列系统矩阵元素输出端,每个与门子序列中的第j个二输入与门的第二输入端均接到第一异或门序列中的第j个异或门的输出端。
专利摘要一种基于FPGA的并行循环冗余校验运算电路,涉及数据校验技术领域,所解决的是提高计算灵活性的技术问题。该电路包括多项式矩阵计算模块、单位矩阵输出模块、系统矩阵计算模块、并行CRC运算模块;将生成多项式输入多项式矩阵计算模块,通过多项式矩阵计算模块高效地计算出生成多项式矩阵的m次幂运算结果,利用系统矩阵计算模块中的二输入选择器件在线选择两种阶数的生成多项式阶数,利用系统矩阵计算模块输出的系统矩阵,使得并行CRC运算模块能在实现两种输入位宽的CRC运算。本实用新型提供的电路,改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵。
文档编号H03M13/09GK202906879SQ20122047977
公开日2013年4月24日 申请日期2012年9月18日 优先权日2012年9月18日
发明者张坚, 何健 申请人:国核自仪系统工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1