CN111082810B - 一种基于fpga低开销并行循环冗余校验方法及应用 - Google Patents

一种基于fpga低开销并行循环冗余校验方法及应用 Download PDF

Info

Publication number
CN111082810B
CN111082810B CN202010012206.1A CN202010012206A CN111082810B CN 111082810 B CN111082810 B CN 111082810B CN 202010012206 A CN202010012206 A CN 202010012206A CN 111082810 B CN111082810 B CN 111082810B
Authority
CN
China
Prior art keywords
variable
fpga
size
matrix
cyclic redundancy
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.)
Active
Application number
CN202010012206.1A
Other languages
English (en)
Other versions
CN111082810A (zh
Inventor
潘伟涛
刘欢
邱智亮
董勐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202010012206.1A priority Critical patent/CN111082810B/zh
Publication of CN111082810A publication Critical patent/CN111082810A/zh
Application granted granted Critical
Publication of CN111082810B publication Critical patent/CN111082810B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明属于网络通信技术领域,公开了一种基于FPGA低开销并行循环冗余校验方法及应用,确定并行化参数,选择分组步进值s时,确定FPGA的型号,使分组步进值s等于FPGA的LUT的输入引脚数;计算大小为l×m的第一中间结果矩阵MD_1;计算QBn的计算结果,即大小为l×1的第二中间结果向量MD_2;计算大小为l×1的输出结果向量COUT。本发明选择分组步进值s时,首先确定FPGA的型号,然后使分组步进值s等于该款FPGA的LUT的输入引脚数,使LUT的利用率达到了100%,克服了现有技术中LUT资源利用率低的问题,使得本发明具有了LUT资源开销低的优点。

Description

一种基于FPGA低开销并行循环冗余校验方法及应用
技术领域
本发明属于网络通信技术领域,尤其涉及一种基于FPGA低开销并行循环冗余校验方法及应用。
背景技术
目前,最接近的现有技术:循环冗余校验码是一种被广泛应用的检错码,被用于以太网、PCIe等传输协议中。传统的循环冗余校验码基于串行电路实现,无法满足现代通信系统对高吞吐量的要求,因此吞吐量更高的并行循环冗余校验码得到了广泛的应用。FPGA由于其本身的并行特性,成为实现并行循环冗余校验码的理想选择,而现有的基于FPGA的并行循环冗余校验码实现方案,并不考虑FPGA底层电路特性,尤其是LUT(Look Up Table,查找表)的输入引脚数这一重要特性没有被关注。因此,现有的基于FPGA的并行循环冗余校验码实现方案面临着LUT资源开销过大的问题。
国核自仪系统工程有限公司在其申请的专利文献“基于FPGA的并行循环冗余校验运算电路”(公开号CN102891685,申请号CN2012103477511)中公开了一种基于FPGA的并行循环冗余校验运算电路。该发明提供的电路,改变生成多项式时,不需要重新计算CRC运算所需的系统矩阵。该方法的不足之处是:其一,多项式矩阵计算模块、系统矩阵计算模与单位矩阵输出模块均会造成额外的LUT资源开销;其二,该电路并未考虑FPGA底层电路特性,无法充分利用LUT资源,导致不必要的LUT资源浪费。导致这些问题的原因在于,算法的设计者未考虑FPGA底层电路特性,导致LUT资源利用率较低,如果可以解决这些问题,可以显著提高FPGA资源利用率。
综上所述,现有技术存在的问题是:
(1)现有基于FPGA的并行循环冗余校验运算存在多项式矩阵计算模块、系统矩阵计算模与单位矩阵输出模块均造成额外的LUT资源开销。
(2)现有基于FPGA的并行循环冗余校验运算存在未考虑FPGA底层电路特性,无法充分利用LUT资源,导致LUT资源浪费。
解决上述技术问题的难度:解决该问题需要系统设计者对算法和FPGA底层结构都有较为深入的了解,并将二者结合起来。
解决上述技术问题的意义:解决该问题可以降低并行循环冗余校验算法的实现开销,显著提高FPGA资源的利用率,可以广泛应用于400G以太网MAC核、基于SmartNIC的循环冗余校验算法卸载等场景中。
发明内容
针对现有技术存在的问题,本发明提供了一种基于FPGA低开销并行循环冗余校验方法及应用。
本发明是这样实现的,一种基于FPGA低开销并行循环冗余校验方法,所述基于FPGA低开销并行循环冗余校验方法包括以下步骤:
第一步,确定并行化参数,选择分组步进值s时,确定FPGA的型号,使分组步进值s等于FPGA的LUT的输入引脚数;
第二步,计算大小为l×m的第一中间结果矩阵MD_1;
第三步,计算QBn的计算结果,即大小为l×1的第二中间结果向量MD_2;
第四步,计算大小为l×1的输出结果向量COUT。
进一步,所述第一步还包括:
(1)确定循环冗余校验生成多项式参数向量,将该向量记做:
G(x)=[gl,gl-1,...,g0];
其中g的取值为0或1;
(2)确定串行相邻状态校验矩阵T与串行伴随矩阵S,其中T的大小为l×l,S的大小为l×1,且:
Figure BDA0002357549310000031
S=[gl-1,gl-2,...,g0]T
(3)确定FPGA内部总线位宽,将其记为n;
(4)计算并行相邻状态校验矩阵P与并行伴随矩阵Q,P的大小为l×l,Q的大小为l×n,且:
P=Tn
Q=[Tn-1S,Tn-2S...,TS,S];
(5)确定分组步进值s。
进一步,所述第二步还包括:
(1)将大小为l×m的变量矩阵初始化为零矩阵,将常量m初始化为
Figure BDA0002357549310000032
将常量st初始化为/>
Figure BDA0002357549310000033
将大小为(st+1)×l×m的变量矩阵MD_temp初始化为零矩阵,将变量i,j,k的初始值设置为0;
(2)若(j×s+k)<n,计算
Figure BDA0002357549310000034
将结果赋给MD_temp[0][i][j];若(j×s+k)=n,MD_temp[i][j]保持不变;
(3)若k<s,将变量k加1,转到(2);若k=s,将变量k设置为0,转到(4);
(4)若j<m,将变量j加1,转到(2);若变量j=m,将变量j设置为0,转到(5);
(5)若i<l,将变量i加1,转到(2);若变量i=l,将变量i设置为0,转到(6);
(6)将变量矩阵MD_temp[0]赋给第一中间结果矩阵MD_1。
进一步,所述第三步还包括:
(1)将大小为l×1的向量MD_2初始化为0向量,将大小为l×1的向量MD_2_temp初始化为0向量,将变量u1初始化为0,将变量u2初始化为m,将大小为l×m的变量矩阵MD_temp[0]初始化为零矩阵,将变量stage初始化为0;
(2)若(j×s+k)<u1,计算
Figure BDA0002357549310000041
将结果赋给MD_temp[stage+1][i][j];若(j×s+k)=u1,MD_temp[stage+1][i][j]保持不变;
(3)若k<s,将变量k加1,转到(2);若k=s,将变量k设置为0,转到(4);
(4)若j<u2,将变量j加1,转到(2);若变量j=u2,将变量j设置为0,转到(5);
(5)若i<l,将变量i加1,转到(2);若变量i=l,将变量i设置为0,转到(5);
(6)若stage<st,将变量stage加1,将变量u2赋给变量u1,计算
Figure BDA0002357549310000042
将结果赋给变量u2,转到(2);若stage=st,将变量stage设置为0,转到(7);
(7)将变量MD_temp[st][i][0]赋给变量MD_2_temp[i],转到步骤(8);
(8)若i<l,将变量i加1,转到(7);若变量i=l,将变量i设置为0,转到(9);
(9)将变量MD_2_temp赋给第二中间结果向量MD_2;
进一步,所述第四步还包括:
(1)将大小为l×1的变量C_reg初始化为[1,1,...,1]T
(2)计算P·C_reg,将结果赋给C_reg;
(3)计算
Figure BDA0002357549310000043
将结果赋给C_reg;
(4)将变量C_reg赋给输出结果向量COUT。
进一步,所述基于FPGA低开销并行循环冗余校验方法分组步进值的确定:确定FPGA型号;确定FPGA的查找表输入引脚数,该引脚数即分组步进值s。
本发明的另一目的在于提供一种所述基于FPGA低开销并行循环冗余校验方法在网络通信中的应用。
本发明的另一目的在于提供一种所述基于FPGA低开销并行循环冗余校验方法在以太网传输协议中的应用。
本发明的另一目的在于提供一种所述基于FPGA低开销并行循环冗余校验方法在PCIe传输协议传输协议中的应用。
本发明的另一目的在于提供一种所述基于FPGA低开销并行循环冗余校验方法在5G通信中的应用。
综上所述,本发明的优点及积极效果为:本发明选择分组步进值s时,首先确定FPGA的型号,然后使分组步进值s等于该款FPGA的LUT的输入引脚数,使LUT的利用率达到了100%,克服了现有技术中LUT资源利用率低的问题,使得本发明具有了LUT资源开销低的优点。
附图说明
图1是本发明实施例提供的基于FPGA低开销并行循环冗余校验方法的流程图。
图2是本发明实施例提供的基于FPGA低开销并行循环冗余校验方法的实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于FPGA低开销并行循环冗余校验方法及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于FPGA低开销并行循环冗余校验方法包括以下步骤:
S101:选择分组步进值s时,确定FPGA的型号,使分组步进值s等于FPGA的LUT的输入引脚数;
S102:计算大小为l×m的第一中间结果矩阵MD_1;
S103:计算QBn的计算结果,即大小为l×1的第二中间结果向量MD_2;
S104:计算大小为l×1的输出结果向量COUT。
本发明实施例提供的基于FPGA低开销并行循环冗余校验方法具体包括以下步骤:
第一步,确定并行化参数:
(a)确定循环冗余校验生成多项式参数向量,将该向量记做:
G(x)=[gl,gl-1,...,g0];
其中g的取值为0或1;
(b)确定串行相邻状态校验矩阵T与串行伴随矩阵S,其中T的大小为l×l,S的大小为l×1,且:
Figure BDA0002357549310000061
S=[gl-1,gl-2,...,g0]T
(c)确定FPGA内部总线位宽,将其记为n;
(d)计算并行相邻状态校验矩阵P与并行伴随矩阵Q,P的大小为l×l,Q的大小为l×n,且:
P=Tn
Q=[Tn-1S,Tn-2S...,TS,S];
(e)确定分组步进值s;
第二步,计算大小为l×m的第一中间结果矩阵MD_1:
(a)将大小为l×m的变量矩阵初始化为零矩阵,将常量m初始化为
Figure BDA0002357549310000071
将常量st初始化为/>
Figure BDA0002357549310000072
将大小为(st+1)×l×m的变量矩阵MD_temp初始化为零矩阵,将变量i,j,k的初始值设置为0;/>
(b)若(j×s+k)<n,计算
Figure BDA0002357549310000073
将结果赋给MD_temp[0][i][j];若(j×s+k)=n,MD_temp[i][j]保持不变;
(c)若k<s,将变量k加1,转到步骤(b);若k=s,将变量k设置为0,转到步骤(d);
(d)若j<m,将变量j加1,转到步骤(b);若变量j=m,将变量j设置为0,转到步骤(e);
(e)若i<l,将变量i加1,转到步骤(b);若变量i=l,将变量i设置为0,转到步骤(f);
(f)将变量矩阵MD_temp[0]赋给第一中间结果矩阵MD_1;
第三步,计算QBn的计算结果,即大小为l×1的第二中间结果向量MD_2:
(a)将大小为l×1的向量MD_2初始化为0向量,将大小为l×1的向量MD_2_temp初始化为0向量,将变量u1初始化为0,将变量u2初始化为m,将大小为l×m的变量矩阵MD_temp[0]初始化为零矩阵,将变量stage初始化为0;
(b)若(j×s+k)<u1,计算
Figure BDA0002357549310000074
将结果赋给MD_temp[stage+1][i][j];若(j×s+k)=u1,MD_temp[stage+1][i][j]保持不变;
(c)若k<s,将变量k加1,转到步骤(b);若k=s,将变量k设置为0,转到步骤(d);
(d)若j<u2,将变量j加1,转到步骤(b);若变量j=u2,将变量j设置为0,转到步骤(e);
(e)若i<l,将变量i加1,转到步骤(b);若变量i=l,将变量i设置为0,转到步骤(f);
(f)若stage<st,将变量stage加1,将变量u2赋给变量u1,计算
Figure BDA0002357549310000081
将结果赋给变量u2,转到步骤(b);若stage=st,将变量stage设置为0,转到步骤(g);
(g)将变量MD_temp[st][i][0]赋给变量MD_2_temp[i],转到步骤(h);
(h)若i<l,将变量i加1,转到步骤(g);若变量i=l,将变量i设置为0,转到步骤(i);
(i)将变量MD_2_temp赋给第二中间结果向量MD_2;
第四步,计算大小为l×1的输出结果向量COUT:
(a)将大小为l×1的变量C_reg初始化为[1,1,...,1]T
(b)计算P·C_reg,将结果赋给C_reg;
(c)计算
Figure BDA0002357549310000082
将结果赋给C_reg;
(d)将变量C_reg赋给输出结果向量COUT。
在本发明的优选实施例中,确定分组步进值的步骤如下:
步骤一,确定FPGA型号;
步骤二,确定FPGA的LUT(Look Up Table,查找表)输入引脚数,该引脚数即分组步进值s。
下面结合附图对本发明的技术方案作进一步的描述。
如图2所示,本发明实施例提供的基于FPGA低开销并行循环冗余校验方法包括以下步骤:
步骤一,确定并行化参数(以CRC-32为例)。
第一步,确定CRC-32生成多项式参数向量,将该向量记做:
G(x)=[1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1];
第二步,确定串行相邻状态校验矩阵T与串行伴随矩阵S,其中T的大小为l×l=32×32,S的大小为l×1=32×1,且:
Figure BDA0002357549310000091
/>
S=[0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1]T
第三步,确定FPGA内部总线位宽,将其记为n,这里取32。
第四步,计算并行相邻状态校验矩阵P与并行伴随矩阵Q,P的大小为l×l=32×32,Q的大小为l×n=32×32,且:
Figure BDA0002357549310000101
/>
Figure BDA0002357549310000111
第五步,确定分布步进值s。
所述确定分布步进值s的步骤如下:
(1)确定FPGA型号,假定FPGA型号为Virtex-4 XC4VLX15;
(2)确定FPGA的LUT(Look Up Table,查找表)输入引脚数,该型号FPGA的LUT输入引脚数为4,因此s=4。
步骤二,计算大小为32×m的第一中间结果矩阵MD_1。
第一步,将大小为32×m的变量矩阵初始化为零矩阵,将常量m初始化为
Figure BDA0002357549310000121
将常量st初始化为/>
Figure BDA0002357549310000122
将大小为(st+1)×l×m=4×32×8的变量矩阵MD_temp初始化为零矩阵,将变量i,j,k的初始值设置为0。
第二步,若(j×s+k)<32,计算
Figure BDA0002357549310000123
将结果赋给MD_temp[0][i][j];若(j×s+k)=32,MD_temp[i][j]保持不变。
第三步,若k<4,将变量k加1,转到第二步;若k=4,将变量k设置为0,转到第四步。
第四步,若j<8,将变量j加1,转到第二步;若变量j=8,将变量j设置为0,转到第五步。
第五步,若i<32,将变量i加1,转到第二步;若变量i=32,将变量i设置为0,转到第六步。
第六步,将变量矩阵MD_temp[0]赋给第一中间结果矩阵MD_1。
步骤三,计算QBn的计算结果,即大小为l×1=32×1的第二中间结果向量MD_2。
第一步,将大小为l×1=32×1的向量MD_2初始化为0向量,将大小为l×1=32×1的向量MD_2_temp初始化为0向量,将变量u1初始化为0,将变量u2初始化为m=8,将大小为l×m=32×8的变量矩阵MD_temp[0]初始化为零矩阵,将变量stage初始化为0。
第二步,若(j×s+k)<u1,计算
Figure BDA0002357549310000124
将结果赋给MD_temp[stage+1][i][j];若(j×s+k)=u1,MD_temp[stage+1][i][j]保持不变。
第三步,若k<4,将变量k加1,转到第二步;若k=4,将变量k设置为0,转到第四步。
第四步,若j<u2,将变量j加1,转到第二步;若变量j=u2,将变量j设置为0,转到第五步。
第五步,若i<32,将变量i加1,转到第二步;若变量i=32,将变量i设置为0,转到第六步。
第六步,若stage<3,将变量stage加1,将变量u2赋给变量u1,计算
Figure BDA0002357549310000131
将结果赋给变量u2,转到第二步;若stage=3,将变量stage设置为0,转到第七步。
第七步,将变量MD_temp[3][i][0]赋给变量MD_2_temp[i],转到第八步。
第八步,若i<32,将变量i加1,转到第七步;若变量i=32,将变量i设置为0,转到第九步。
第九步,将变量MD_2_temp赋给第二中间结果向量MD_2。
步骤四,计算大小为32×1的输出结果向量COUT。
第一步,将大小为32×1的变量C_reg初始化为[1,1,...,1]T
第二步,计算P·C_reg,将结果赋给C_reg。
第三步,计算
Figure BDA0002357549310000132
将结果赋给C_reg。
第四步,将变量C_reg赋给输出结果向量COUT。
下面结合实验对本发明的技术效果作详细的描述。
为了验证本发明的预测效果,选取两个当前最先进的基于FPGA的并行循环冗余校验算法实现,如文献[1]和文献[2]所示,选取相同的位宽与FPGA芯片型号,LUT开销结果如表1所示。
表1FPGA LUT实现开销对比
Figure BDA0002357549310000133
Figure BDA0002357549310000141
[1]L.Kekely,J.Cabal,and J.Koˇrenek,“Effective FPGA Architecture forGeneral CRC,”in International Conference on Architecture ofComputingSystems.Springer,2019,pp.211–223.
[2]A.Akagic and H.Amano,“High-speed fully-adaptable CRC accelera-tors,”IEICE Trans.Inf.&Syst.,vol.96,no.6,pp.1299–1308,2013.
表1是本发明的算法与业界现有算法的FPGA LUT开销对比,可以发现,本发明的算法明显降低了实现开销。
结果显示,提出的算法显著减小了并行循环冗余校验算法的FPGA实现开销,与文献[1]相比,在各个位宽下,开销平均减小了29.2%,与文献[2]相比,开销平均减小了60.5%。本发明的算法能够得到较好的实现效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于FPGA低开销并行循环冗余校验方法,其特征在于,所述基于FPGA低开销并行循环冗余校验方法包括以下步骤:
第一步,确定并行化参数,选择分组步进值s时,确定FPGA的型号,使分组步进值s等于FPGA的LUT的输入引脚数;
第二步,计算大小为l×m的第一中间结果矩阵MD_1;
第三步,计算QBn的计算结果,即大小为l×1的第二中间结果向量MD_2;
第四步,计算大小为l×1的输出结果向量COUT;
所述第二步还包括:
(1)将大小为l×m的变量矩阵初始化为零矩阵,将常量m初始化为
Figure FDA0004066384580000011
将常量st初始化为/>
Figure FDA0004066384580000012
将大小为(st+1)×l×m的变量矩阵MD_temp初始化为零矩阵,将变量i,j,k的初始值设置为0;
(2)若(j×s+k)<n,计算
Figure FDA0004066384580000013
将结果赋给MD_temp[0][i][j];若(j×s+k)=n,MD_temp[i][j]保持不变;
(3)若k<s,将变量k加1,转到(2);若k=s,将变量k设置为0,转到(4);
(4)若j<m,将变量j加1,转到(2);若变量j=m,将变量j设置为0,转到(5);
(5)若i<l,将变量i加1,转到(2);若变量i=l,将变量i设置为0,转到(6);
(6)将变量矩阵MD_temp[0]赋给第一中间结果矩阵MD_1;
所述第三步还包括:
(1)将大小为l×1的向量MD_2初始化为0向量,将大小为l×1的向量MD_2_temp初始化为0向量,将变量u1初始化为0,将变量u2初始化为m,将大小为l×m的变量矩阵MD_temp[0]初始化为零矩阵,将变量stage初始化为0;
(2)若(j×s+k)<u1,计算
Figure FDA0004066384580000021
将结果赋给MD_temp[stage+1][i][j];若(j×s+k)=u1,MD_temp[stage+1][i][j]保持不变;
(3)若k<s,将变量k加1,转到(2);若k=s,将变量k设置为0,转到(4);
(4)若j<u2,将变量j加1,转到(2);若变量j=u2,将变量j设置为0,转到(5);
(5)若i<l,将变量i加1,转到(2);若变量i=l,将变量i设置为0,转到(5);
(6)若stage<st,将变量stage加1,将变量u2赋给变量u1,计算
Figure FDA0004066384580000022
将结果赋给变量u2,转到(2);若stage=st,将变量stage设置为0,转到(7);
(7)将变量MD_temp[st][i][0]赋给变量MD_2_temp[i],转到步骤(8);
(8)若i<l,将变量i加1,转到(7);若变量i=l,将变量i设置为0,转到(9);
(9)将变量MD_2_temp赋给第二中间结果向量MD_2;
所述第四步还包括:
(1)将大小为l×1的变量C_reg初始化为[1,1,...,1]T
(2)计算P·C_reg,将结果赋给C_reg;
(3)计算
Figure FDA0004066384580000023
将结果赋给C_reg;/>
(4)将变量C_reg赋给输出结果向量COUT。
2.如权利要求1所述的基于FPGA低开销并行循环冗余校验方法,其特征在于,所述第一步还包括:
(1)确定循环冗余校验生成多项式参数向量,将该向量记做:
G(x)=[gl,gl-1,...,g0];
其中g的取值为0或1;
(2)确定串行相邻状态校验矩阵T与串行伴随矩阵S,其中T的大小为l×l,S的大小为l×1,且:
Figure FDA0004066384580000031
S=[gl-1,gl-2,...,g0]T
(3)确定FPGA内部总线位宽,将其记为n;
(4)计算并行相邻状态校验矩阵P与并行伴随矩阵Q,P的大小为l×l,Q的大小为l×n,且:
P=Tn
Q=[Tn-1S,Tn-2S...,TS,S];
(5)确定分组步进值s。
3.如权利要求1所述的基于FPGA低开销并行循环冗余校验方法,其特征在于,所述基于FPGA低开销并行循环冗余校验方法分组步进值的确定:确定FPGA型号;确定FPGA的查找表输入引脚数,该引脚数即分组步进值s。
4.一种如权利要求1~3任意一项所述基于FPGA低开销并行循环冗余校验方法在网络通信中的应用。
5.一种如权利要求1~3任意一项所述基于FPGA低开销并行循环冗余校验方法在以太网传输协议中的应用。
6.一种如权利要求1~3任意一项所述基于FPGA低开销并行循环冗余校验方法在PCIe传输协议中的应用。
7.一种如权利要求1~3任意一项所述基于FPGA低开销并行循环冗余校验方法在5G通信中的应用。
CN202010012206.1A 2020-01-07 2020-01-07 一种基于fpga低开销并行循环冗余校验方法及应用 Active CN111082810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010012206.1A CN111082810B (zh) 2020-01-07 2020-01-07 一种基于fpga低开销并行循环冗余校验方法及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010012206.1A CN111082810B (zh) 2020-01-07 2020-01-07 一种基于fpga低开销并行循环冗余校验方法及应用

Publications (2)

Publication Number Publication Date
CN111082810A CN111082810A (zh) 2020-04-28
CN111082810B true CN111082810B (zh) 2023-03-31

Family

ID=70322288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010012206.1A Active CN111082810B (zh) 2020-01-07 2020-01-07 一种基于fpga低开销并行循环冗余校验方法及应用

Country Status (1)

Country Link
CN (1) CN111082810B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1087534A1 (en) * 1999-09-27 2001-03-28 Texas Instruments Incorporated Method and apparatus for calculation of cyclic redundancy check
CN102891685A (zh) * 2012-09-18 2013-01-23 国核自仪系统工程有限公司 基于fpga的并行循环冗余校验运算电路
CN105103454A (zh) * 2013-03-15 2015-11-25 吉林克斯公司 模块化且可扩展的循环冗余校验计算电路
CN107154836A (zh) * 2017-06-28 2017-09-12 西安空间无线电技术研究所 一种基于fpga的并行循环冗余crc校验方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060168495A1 (en) * 2005-01-25 2006-07-27 Analog Devices, Inc. Computation of cyclic redundancy check
US9935653B2 (en) * 2015-12-28 2018-04-03 Intel Corporation Enhanced cyclical redundancy check circuit based on galois-field arithmetic

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1087534A1 (en) * 1999-09-27 2001-03-28 Texas Instruments Incorporated Method and apparatus for calculation of cyclic redundancy check
CN102891685A (zh) * 2012-09-18 2013-01-23 国核自仪系统工程有限公司 基于fpga的并行循环冗余校验运算电路
CN105103454A (zh) * 2013-03-15 2015-11-25 吉林克斯公司 模块化且可扩展的循环冗余校验计算电路
CN107154836A (zh) * 2017-06-28 2017-09-12 西安空间无线电技术研究所 一种基于fpga的并行循环冗余crc校验方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种基于矩阵的并行CRC校验算法;赵坤鹏等;《电子设计工程》;20170205(第03期);全文 *
基于逻辑设计的高速CRC并行算法研究及其FPGA实现;毕占坤等;《仪器仪表学报》;20071215(第12期);全文 *

Also Published As

Publication number Publication date
CN111082810A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
US8037399B2 (en) Techniques for segmented CRC design in high speed networks
CN107154836B (zh) 一种基于fpga的并行循环冗余crc校验方法
WO2010115371A1 (zh) 一种循环冗余校验crc码的实现方法和装置
JPH0856165A (ja) 誤り検査符号及び訂正符号の計算方法および装置
JPH0834432B2 (ja) 符号化装置及び符号化方法
CN107239362B (zh) 一种并行crc校验码的计算方法及系统
CN109951190B (zh) 一种自适应Polar码SCL译码方法及译码装置
CN110784232A (zh) 一种空间耦合ldpc码滑窗译码方法
CN102761394A (zh) 数据的处理方法及装置
CN111082810B (zh) 一种基于fpga低开销并行循环冗余校验方法及应用
Boiko et al. Design and evaluation of the efficiency of channel coding LDPC codes for 5G information technology
CN103124181A (zh) 一种基于余弦相似度的Turbo码译码迭代停止方法
Mao et al. High performance reconciliation for practical quantum key distribution systems
US7546512B2 (en) Techniques to perform error detection
CN115632662B (zh) 一种rs译码中的伴随式计算方法、装置、设备及介质
CN102832954A (zh) 一种基于软信息平均最小值的Turbo码译码迭代停止方法
CN102857242B (zh) 咬尾卷积码译码方法与装置
CN102545910B (zh) 一种jpeg霍夫曼解码电路及其解码方法
CN116015556A (zh) 通用报文特征数据变更和校正码计算使校验和不变的方法
CN114679239A (zh) 一种高速网络中crc分段计算方法及装置
CN103260154A (zh) 一种基于128-eia3的完整性保护增强方法
CN110752893B (zh) 一种用于极化码的置信传播的近似译码方法及装置
CN107888201B (zh) 一种全并行高吞吐量ldpc译码方法
CN108540258B (zh) 一种循环冗余码校验方法及装置
CN115622887B (zh) 基于加权效用函数的LoRa网络参数分配方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant