基于FPGA的并行循环冗余校验运算电路制造技术

技术编号:8648067 阅读:181 留言:0更新日期:2013-04-28 04:39
一种基于FPGA的并行循环冗余校验运算电路,涉及数据校验技术领域,所解决的是提高计算灵活性的技术问题。该电路包括多项式矩阵计算模块、单位矩阵输出模块、系统矩阵计算模块、并行CRC运算模块;将生成多项式输入多项式矩阵计算模块,通过多项式矩阵计算模块高效地计算出生成多项式矩阵的m次幂运算结果,利用系统矩阵计算模块中的二输入选择器件在线选择两种阶数的生成多项式阶数,利用系统矩阵计算模块输出的系统矩阵,使得并行CRC运算模块能在实现两种输入位宽的CRC运算。本实用新型专利技术提供的电路,改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本技术涉及数据校验技术,特别是涉及一种基于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是本技术实施例的基于FPG本文档来自技高网...

【技术保护点】
一种基于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...

【技术特征摘要】
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列各...

【专利技术属性】
技术研发人员:张坚何健
申请(专利权)人:国核自仪系统工程有限公司
类型:实用新型
国别省市:

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

1