一种基于FPGA的QR31码译码方法技术

技术编号:21166378 阅读:24 留言:0更新日期:2019-05-22 09:29
本发明专利技术公开了基于FPGA的QR31码译码方法,包括以下步骤:S10,数据选择模块将接收码字转换成三种不同码字;S20,分别送入三条流水线中进行并行译码;S30,数据选择模块根据译码情况最后输出译码结果;所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。本发明专利技术通过将整个译码过程分解为独立的三路译码过程,实现高速的并行译码。

A QR31 Decoding Method Based on FPGA

The invention discloses a QR31 decoding method based on FPGA, which includes the following steps: S10, data selection module converts the received codeword into three different codewords; S20, respectively, is fed into three pipelines for parallel decoding; S30, data selection module finally outputs the decoding result according to the decoding situation; in the S20, three parallel pipelines contain two steps, each of which is packaged. There are two units: a checker checking unit and an error correction unit, in which the checker checking unit is used to generate a series of different checkers and check whether these checkers satisfy the decoding conditions; the error correction unit receives the instruction sequence from the checker checking unit to decide whether to trigger the decoding. The invention realizes high-speed parallel decoding by decomposing the whole decoding process into independent three-way decoding process.

【技术实现步骤摘要】
一种基于FPGA的QR31码译码方法
本专利技术属于信道纠错码领域,涉及一种基于FPGA的QR码译码方法。
技术介绍
近年来,物联网和车联网等技术逐步兴起,这些技术的应用场景中,无线信道中的指令数据包长度较短,可靠性要求很高,因此迫切需要一种适用于短帧长通信业务的纠错编码。QR码(QuadraticResiduecode,平方剩余码)作为一种高效的短码纠错码,因其最小汉明距离很大,有很强的纠错能力,因而在短帧通讯领域中被采用。在实际应用中,往往利用QR码的循环特性,采用cpu译码方法,由于软件的顺序执行特点,在速度上有一定的限制。
技术实现思路
本专利技术针对现有技术的不足,提出一种基于FPGA的QR31码译码方法,通过将整个译码过程分解为独立的三路译码过程,实现高速的并行译码。所谓QR31码,即指码长为31位,数据长为16位,最小汉明距离为7的QR码,在一些文献中也记为(31,16,7)QR码。为实现上述目的,本专利技术的技术方案为一种基于FPGA的QR码译码方法,包括以下步骤:S10,数据选择模块将接收码字转换成三种不同码字;S20,分别送入三条流水线中进行并行译码;S30,数据选择模块根据译码情况最后输出译码结果;所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。优选地,在所述S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。优选地,在所述S20中,三条并行流水线均包括以下两个步骤,S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;S22,产生16种校验子,纠正信息位中有1位错误的情况。优选地,所述校验子检查单元包括,校验子计算模块,重量计算模块,指示序列生成模块。优选地,所述校验子计算模块,用于生成一系列校验子,对于S21,该单元产生校验子对于S22,该单元产生种校验子组合s∧sm,i,i=0,1,…,15,其中,p是r中的校验位部分,rm,i是信息位的第i位,sm,i是信息位中只有一个错误的错误图样对应的校验子,∧代表异或运算。优选地,所述重量计算模块,用于对前级生成的各种校验子进行重量计算,进而确定各种校验子是否满足译码条件,为生成指示序列做准备,对于S21,译码条件为s的重量w(s)≤3,对于S22,译码条件为w(s∧sm,i)≤2。优选地,所述指示序列生成模块,根据重量计算结果生成一个指示序列,用以驱动纠错单元,其每位指示相应的校验子重量是否满足解码条件,满足置1,不满足置0。优选地,所述纠错单元包括:触发模块和译码模块。优选地,所述触发模块,同时接收来自校验子检查单元的指示序列和来自前级的译码结果信号,根据其逻辑关系给触发信号赋值,用于触发译码电路。优选地,所述译码模块,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。本专利技术的有益效果如下:将原本只能顺序执行的三种码字情况拆分成三种不同的情况,同时送入三路流水线中,实现了并行译码。基于流水线的设计,可以有效提高系统运行频率,大大提高译码速度。附图说明图1为本专利技术实施例的基于FPGA的QR码译码方法的步骤流程图;图2为本专利技术一个实施例的硬件顶层结构;图3为本专利技术一个实施例的S21校验子检查单元硬件结构;图4为本专利技术一个实施例的S21纠错单元硬件结构;图5为本专利技术一个实施例的S22校验子检查单元硬件结构;图6为本专利技术一个实施例的S22纠错检查单元硬件结构;图7为本专利技术一个实施例的流水线2中S22纠错检查单元硬件结构。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。相反,本专利技术涵盖任何由权利要求定义的在本专利技术的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本专利技术有更好的了解,在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本专利技术。参见图1,为本专利技术实施例的步骤流程图,本专利技术的技术方案为基于FPGA的QR码译码方法,包括以下步骤:S10,数据选择模块将接收码字转换成三种不同码字;S20,分别送入三条流水线中进行并行译码;S30,数据选择模块根据译码情况最后输出译码结果;S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。具体实施例中,在S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。S20中,三条并行流水线均包括以下两个步骤,S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;S22,产生16种校验子,纠正信息位中有1位错误的情况。校验子检查单元包括,校验子计算模块S201,重量计算模块S202,指示序列生成模块S203。校验子检查单元用于生成一系列校验子,对于S21,该单元产生校验子对于S22,该单元产生种校验子组合s∧sm,i,i=0,1,…,15,其中,p是r中的校验位部分,rm,i是信息位的第i位,sm,i是信息位中只有一个错误的错误图样对应的校验子,∧代表异或运算。重量计算模块S202,用于对前级生成的各种校验子进行重量计算,进而确定各种校验子是否满足译码条件,为生成指示序列做准备,对于S21,译码条件为s的重量w(s)≤3,对于S22,译码条件为w(s∧sm,i)≤2。指示序列生成模块S203,根据重量计算结果生成一个指示序列,用以驱动纠错单元,其每位指示相应的校验子重量是否满足解码条件,满足置1,不满足置0。纠错单元包括:触发模块S301和译码模块S302。触发模块S301,同时接收来自校验子检查单元的指示序列和来自前级的译码结果信号,根据其逻辑关系给触发信号赋值,用于触发译码电路。译码模块S302,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。其顶层模块架构如图2所示,该架构包括:码字转换模块S101将接收到的31位长的码字转换成三种不同码字。一般的,码字转换模块将接收码字分别转换为原码字r,原码字r循环左移15位产生的码字cr,原码字第15位(最低位为第0位)取反得到的码字nr,分别送入流水线1S102,流水线2S103,流水线3S104中。码字选择模块S105将三条流水线中译码完成指示信号switch置1的那条流水线作为译码输出:对于流水线1S102、流水线3S104截取其输出的高16位作为译码结果,对于流水线2S103,将其输出循环左移16位后再截取其高16位作为译码输出结果。下面具体介绍各流水线模块的组成。各条流水线都包括两个步骤,S21本文档来自技高网...

【技术保护点】
1.一种基于FPGA的QR31码译码方法,其特征在于,包括以下步骤:S10,数据选择模块将接收码字转换成三种不同码字;S20,分别送入三条流水线中进行并行译码;S30,数据选择模块根据译码情况最后输出译码结果;所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。

【技术特征摘要】
1.一种基于FPGA的QR31码译码方法,其特征在于,包括以下步骤:S10,数据选择模块将接收码字转换成三种不同码字;S20,分别送入三条流水线中进行并行译码;S30,数据选择模块根据译码情况最后输出译码结果;所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。2.根据权利要求1所述的方法,其特征在于,在所述S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。3.根据权利要求1所述的方法,其特征在于,在所述S20中,三条并行流水线均包括以下两个步骤,S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;S22,产生16种校验子,纠正信息位中有1位错误的情况。4.根据权利要求1所述的方法,其特征在于,所述校验子检查单元包括,校验子计算模块,重量计算模块,指示序列生成模块。5.根据权利要求4所述的方法,其特征在于,所述校验子计算模块,用于生成一系列校验子,对于S21,该单元产生校验子...

【专利技术属性】
技术研发人员:黄继业刘鹏谢尚港张新球周涛
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:浙江,33

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

1