发明名称 基于FPGA的并行循环冗余校验运算电路
摘要 一种基于FPGA的并行循环冗余校验运算电路,涉及数据校验技术领域,所解决的是提高计算灵活性的技术问题。该电路包括多项式矩阵计算模块、单位矩阵输出模块、系统矩阵计算模块、并行CRC运算模块;将生成多项式输入多项式矩阵计算模块,通过多项式矩阵计算模块高效地计算出生成多项式矩阵的m次幂运算结果,利用系统矩阵计算模块中的二输入选择器件在线选择两种阶数的生成多项式阶数,利用系统矩阵计算模块输出的系统矩阵,使得并行CRC运算模块能在实现两种输入位宽的CRC运算。本实用新型提供的电路,改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵。
申请公布号 CN202906879U 申请公布日期 2013.04.24
申请号 CN201220479771.X 申请日期 2012.09.18
申请人 国核自仪系统工程有限公司 发明人 张坚;何健
分类号 H03M13/09(2006.01)I 主分类号 H03M13/09(2006.01)I
代理机构 上海申汇专利代理有限公司 31001 代理人 俞宗耀;朱逸
主权项 一种基于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个异或门的输出端。
地址 200241 上海市闵行区东川路555号乙楼A2036室