CN103684655A - 译码校验装置和方法、译码装置和方法以及接收端 - Google Patents
译码校验装置和方法、译码装置和方法以及接收端 Download PDFInfo
- Publication number
- CN103684655A CN103684655A CN201210319840.5A CN201210319840A CN103684655A CN 103684655 A CN103684655 A CN 103684655A CN 201210319840 A CN201210319840 A CN 201210319840A CN 103684655 A CN103684655 A CN 103684655A
- Authority
- CN
- China
- Prior art keywords
- decoding
- unit
- output
- verification
- component
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012795 verification Methods 0.000 claims abstract description 74
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 16
- 230000011218 segmentation Effects 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 14
- 241001269238 Data Species 0.000 claims description 13
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2739—Permutation polynomial interleaver, e.g. quadratic permutation polynomial [QPP] interleaver and quadratic congruence interleaver
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3972—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/6525—3GPP LTE including E-UTRA
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种译码校验装置和方法、译码装置和方法以及接收端。所述译码校验装置包括:运算单元,用于对每一时钟周期译码器输出的数据执行校验运算处理,以获得运算结果,所述执行校验运算处理基于如下方式:将每一比特数据表示成多项式并求和,然后对求和得到的多项式执行多项式求余;输出单元,用于输出校验结果,所述校验结果为译码阶段的所有时钟周期的运算结果之和。本发明技术方案实现了译码校验的实时计算,从而可以节省功耗。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种译码校验装置和方法、译码装置和方法以及接收端。
背景技术
Turbo码由于采用迭代译码方法而具有接近香农理论极限的译码性能,其已被采纳为下一代移动通信系统的信道编码方案之一,并且在通信领域得到了广泛应用。
以长期演进系统(LTE,Long Term Evolution)标准物理层采用1/3码率的Turbo编码器作为信道编码标准为例,在发送端采用了两个分量编码器,编码的输入为加入循环冗余校验(CRC,Cyclic Redundancy Check)信息后的码块S,其中分量编码器1的输入为正常顺序的码块S,输出为校验比特序列P0;分量编码器2采用经过二次置换多项式(QPP,Quadratic Permutation Polynomial)交织后的码块,输出为校验比特序列P1,序列S、P0和P1在经过速率匹配和调制后发送到传输信道。
在接收端,Turbo码采用迭代译码,图1示出了Turbo译码过程的原理图,如图所示,分量译码1的输入为S和P0对应的软信息,以及分量译码2输出的经过解交织后的外信息;输出为发送到分量译码2的外信息和译码结果。同样,分量译码2的输入为交织后的S和P1对应的软信息,以及分量编码1输出的经过交织后的外信息;输出为发送到分量译码1的外信息和译码结果。两个分量译码通过外信息交互,执行交替迭代的译码处理,能够不断提高译码输出的可信度。在LTE标准中,每个Turbo的码块均含有CRC校验信息,因此每个分量译码输出的译码结果均可进行CRC校验,如果校验通过,即可提前终止Turbo译码,以节省功耗。而分量编码器2的译码输出是交织后的顺序,因此需要首先进行解交织,然后才能进行CRC校验。在译码过程中,两个分量译码不会同时执行,而且二者的计算基本相同,因此在实际的硬件实现中,仅采用一个分量译码器,以节省芯片面积。
由于LTE标准采用了无冲突的QPP交织器,一个Turbo码块可以划分为多段数据,每段数据可以独立进行Turbo译码,这样可以实现多个译码器并行处理,从而提高译码器的吞吐率。
图2示出了现有的一种Turbo译码器的实现结构,图3示出了现有的译码处理流程。结合图2和图3,Turbo码块被划分为K段,采用K个独立的译码器并行译码,这里的分段数K通常也称为译码并行度,K个独立的译码器通过交换网络从存储器阵列中读取数据,所述存储器阵列包括多个分段存储器。分量译码1和分量译码2的译码交替迭代处理,在分量译码1的译码结果输出阶段,每个时钟周期每个译码器输出2比特数据,K个译码器共输出2K个比特,这2K个比特分属于交织前码块的K个不同分段,因此需要写入排序存储器进行重新排序,恢复码块的原始顺序,然后从排序存储器读出排序后的译码结果进行CRC校验。同样地,在分量译码2的译码结果输出阶段,每个时钟周期每个译码器输出2比特数据,K个译码器共输出2K个比特,这2K个比特分属于交织后码块的K个不同分段,因此需要解交织后写入排序存储器进行重新排序,恢复码块的原始顺序,然后从排序存储器读出排序后的译码结果进行CRC校验。当对分量译码1或分量译码2的译码结果的CRC校验通过,或者当达到最大迭代次数时,则结束译码处理流程。
对于现有的LTE Turbo译码器而言,CRC校验是在分量译码后从排序存储器读取数据并进行运算的,这样会导致额外的排序存储器访问,多余的译码计算,从而降低了译码器的吞吐率,增加了硬件功耗。
发明内容
本发明技术方案要解决的技术问题是现有的CRC校验在分量译码后进行,从而导致硬件功耗大。
为解决上述技术问题,本发明技术方案提供一种译码校验装置,包括:
运算单元,用于对每一时钟周期译码器输出的数据执行校验运算处理,以获得运算结果,所述执行校验运算处理基于如下方式:将每一比特数据表示成多项式并求和,然后对求和得到的多项式执行多项式求余;
输出单元,用于输出校验结果,所述校验结果为译码阶段的所有时钟周期的运算结果之和。
为解决上述技术问题,本发明技术方案还提供一种译码装置,包括:
第一分量译码单元和第二分量译码单元,所述第一分量译码单元和第二分量译码单元分别通过K个译码器进行译码处理,两个分量译码单元的译码处理交替迭代进行;
校验控制单元和所述的译码校验装置,所述校验控制单元用于控制所述译码校验装置对所述第一分量译码单元或第二分量译码单元译码输出的数据进行校验以输出校验结果。
为解决上述技术问题,本发明技术方案还提供一种包括上述译码装置的接收端。
为解决上述技术问题,本发明技术方案还提供一种译码校验方法,包括:
对每一时钟周期译码器输出的数据执行校验运算处理,以获得运算结果,所述执行校验运算处理基于如下方式:将每一比特数据表示成多项式并求和,然后对求和得到的多项式执行多项式求余;
输出校验结果,所述校验结果为译码阶段的所有时钟周期的运算结果之和。
可选的,所述运算结果通过下述公式获得:
可选的,所述校验运算处理包括:
所述乘法单元用于对两个多项式执行带余乘法运算;
所述加法单元用于对两个多项式执行加法运算。
可选的,所述输出校验结果包括:调用所述加法单元,以输出所述校验结果。
可选的,所述计算c(xn)包括:
以p为索引查表以获得c(xpw),其中,n=pw+q,w取2的幂,0≤q<w;
计算c(xpwxq)。
可选的,所述译码校验方法还包括:从所述译码器读取译码输出的数据。
可选的,所述译码校验方法还包括:在根据所述校验结果判断出校验通过后,输出终止译码处理的控制信号。
为解决上述技术问题,本发明技术方案还提供一种译码方法,包括:
第一分量译码和第二分量译码,所述第一分量译码和第二分量译码分别通过K个译码器进行译码处理,两个分量译码的译码处理交替迭代进行;
采用所述的译码校验方法对所述第一分量译码或第二分量译码输出的数据进行校验以输出校验结果。
可选的,所述译码方法还包括:
存储排序后的所述第一分量译码或第二分量译码输出的数据;
在根据所述校验结果判断出校验通过后,读取排序后的数据并予以输出。
可选的,所述译码方法还包括:在根据所述校验结果判断出校验失败且迭代次数达到最大值时,读取排序后的数据并予以输出。
与现有技术相比,上述技术方案基于将每个时钟周期译码输出的每一比特数据表示成多项式并求和,然后对求和得到的多项式进行求余运算的方式,实现了译码校验的实时计算,因此不需要等到分量译码完成后从排序存储器读出数据进行译码校验。由于仅在校验成功后从排序存储器读出数据,由此节省了不必要的访问排序存储器而产生的硬件功耗。
当一个分量译码的校验通过后,通过控制信号可以立即终止另一个分量译码的译码处理,因此可以避免分量译码的无效迭代计算,从而提高译码器的吞吐量,节省硬件的功耗。
附图说明
图1是译码过程的原理示意图;
图2是现有的一种译码器的结构示意图;
图3是现有的译码处理的流程示意图;
图4是c(f(x)x)的组合逻辑实现的实例示意图;
图5是本发明实施例的译码校验装置的结构示意图;
图6是图5所示的第一运算控制单元调用的运算资源和实现过程示意图;
图7是图5所示的第二运算控制单元和输出单元调用的运算资源和实现过程示意图;
图8是本发明实施方式的译码装置的结构示意图;
图9是本发明实施例的译码装置的工作过程示意图。
具体实施方式
发明人分析,现有的Turbo译码器只能在整个码块的译码比特生成后,基于码块的原始比特顺序进行CRC校验,所以CRC校验无法在线实时地计算,这样会导致Turbo译码器在功耗上的浪费,主要体现为:
对于任意分量译码,译码结果输出到排序存储器,然后按照码块原始顺序读出进行CRC校验,如果校验失败则浪费了一次排序存储器的读访问;
为了提高译码器的吞吐率,一个分量译码的CRC校验与另一个分量译码需要并行计算,如果CRC校验成功,则另一个分量译码的计算是多余的,而且CRC校验结果产生的越晚,Turbo译码器功耗上浪费越多。
发明人考虑,如果对译码的校验过程进行改进,使得CRC校验能够在线实时地计算,这样一个分量译码的译码处理和CRC计算可以并行执行,就能解决上述译码器功耗的问题。因此,发明人对CRC的计算和校验进行了仔细分析,并基于分析结果提出一种新的译码校验装置。
具体地,CRC计算过程是伽罗瓦域的多项式求余过程,它把输入的A比特消息m=m0|m1|...|mA-1看作多项式:
计算CRC多项式:
c(m(x)xC)=m(x)xCmodg(x)(2)
其中,mod为求余运算符,C阶多项式也称为CRC生成多项式,多项式阶数C和系数gj可以根据实际应用预先设定的,C>0,gj为0或1。c(f(x))表示对多项式f(x)执行多项式求余运算,即c(f(x))=f(x)modg(x)。
产生的CRC多项式c(m(x)xC)所对应的C比特校验信息被拼接在消息m后面,形成新的长度为L=A+C码字比特序列s,表示为多项式形式:
s(x)=xCm(x)+c(m(x)xC) (3)
校验时,只需验证:c(s(x))=s(x)modg(x)=0 (4)
假设译码时长度为L比特的码块被划分为K个分段,在输出译码结果时,在时钟周期i译码器k(0≤k<K,)输出2比特数据为ma(k,i)和mb(k,i)。因为LTE turbo码采用的无冲突的QPP交织器,因此,无论是在分量译码1阶段还是分量译码2阶段,这K比特数据ma(k,i)在码块分段内具有相同的偏移Ia(i),其在正常顺序的码块内的索引可表示为:同样地,K比特数据mb(k,i)在码块分段内具有相同的偏移Ib(i),其在正常顺序的码块内的索引可表示为:
Ia(i)和Ib(i)与QPP交织器的性质相关,也是译码器访问各分段存储器的地址,Ia(i)和Ib(i)的确定可以采用现有方法实现,举例来说,对于偶数次分量译码(未交织,由分量译码1完成):Ia(i)=i,对于奇数次分量译码(交织后,由分量译码2完成): f1和f2是QPP交织器的参数。
考虑每个时钟周期输出的2K比特数据对CRC校验结果的贡献,可以将这2K比特数据分别表示成多项式,对这些多项式求和,然后对求和得到的多项式执行多项式求余运算:
进一步,
定义:
那么:
由此,给出了针对LTE Turbo译码输出的实时CRC校验方法,计算过程中的加法均是对位的异或操作;乘法均是多项式的带余乘法。
当k=K-1时,c(x0)是常值。
步骤1,将n表示成pw+q,其中,w取2的幂,0≤q<w。在实际应用中,w的取值视译码器设计中的最大分段长度而定,主要目的是为了控制步骤2中的查找表的大小。其中,分段长度为例如,LTE中Turbo码块最大长度为6144,在最大译码并行度为8时,最大分段长度为6144/8=768,可以取w=16;在最大译码并行度为16时,最大分段长度为6144/16=384,可以取w=8。p为n/w的整数部分,q=n mod w,即n/w的余数部分。
步骤2,以p为索引查表以获得c(xpw),所查找的表是根据硬件设计预先建立的关于c(xlw)查找表,其中,表示不大于的最大整数,所述查找表中,c(xlw)采用标准的CRC计算方式得到,即多项式xlw求余,c(xlw)=xlw modg(x)。
步骤3,计算c(xpwxq)。通常,可以用简单的组合逻辑实现c(f(x)x),其中,f(x)=xpw。举例来说,图4给出了生成多项式g(x)=x3+x+1时,c(f(x)x)的组合逻辑实现的示意图,如果c(f(x))=in0*x2+in1*x+in2,那么c(f(x)x)=out0*x2+out1*x+out2。进一步,由于q的取值范围是有限的,0≤q<w,因此c(xpwxq)可以通过q次迭代的c(f(x)x)来实现,这种运算很像是多项式左移,并在右边补了q比特0后,重新计算新多项式的CRC多项式。
当k=K-5,…,0时,可以类推计算。
以下介绍多项式带余乘法计算。多项式带余乘法计算是在知道两个多项式余数的前提下计算两个多项式乘积的余数。不失一般性,假定两个多项式f1(x)和f2(x),则
c(f1(x)f2(x))=c(c(f1(x))c(f2(x)))(15)
假设
所以
其中,c(xC-jf1(x))的计算可以参照c(f(x)xq)的计算,c(f1(x)f2(x))的计算可以是C个多项式的模加运算,C为多项式阶数,r2,j作为选择信号参与计算。
通过上述分析可知,现有的CRC校验基于公式(3)计算,因此需要按照码块原始顺序进行CRC校验。而本发明技术方案将每个时钟周期译码器输出的每个比特表示为一个独立的多项式,求和后进行多项式求余运算,如公式(5)所示,因此在分量译码输出的每个时钟周期,都可以直接读取译码器的输出进行CRC校验的实时计算。进一步,利用相同时钟周期内K个译码器输出的两组K个比特在码块分段内偏移相同,从而可以通过提取公因子,如公式(6)所示,减少CRC实时计算的运算量。
因此,本发明实施方式提供一种译码校验装置,用于对Turbo分量译码输出的数据进行CRC校验,所述译码校验装置包括:
运算单元,用于对每一时钟周期译码器输出的数据执行校验运算处理,以获得运算结果,所述执行校验运算处理基于如下方式:将每一比特数据表示成多项式并求和,然后对求和得到的多项式执行多项式求余;
输出单元,用于输出校验结果,所述校验结果为译码阶段的所有时钟周期的运算结果之和,即其中c(s(x))为校验结果,为时钟周期i的运算结果。
所述运算单元可以采用上述公式(5)直接计算得到运算结果而采用此种直接计算方式,运算量比较大,为了减少实时计算的运算量,发明人在上述公式(5)的基础上,进行了推导和变换,如上述公式(6)至(14)所示,由此提出了一种优选的方案,如图5所示,所述运算单元A1包括:
逻辑单元CRC_LSH,用于计算c(xpwxq);
乘法单元CRC_MUL,用于对两个多项式执行带余乘法运算;
加法单元CRC_XOR,用于对两个多项式执行加法运算;
第二运算控制单元CTRL_2,用于调用所述查表单元CRC_LUT和逻辑单元CRC_LSH计算和调用所述求和单元CRC_SUM计算sa(i)和sb(i),调用所述乘法单元CRC_MUL计算 和 调用所述加法单元CRC_XOR计算
本实施例中,所述输出单元A2,用于调用所述加法单元CRC_XOR计算并输出校验结果
上述运算资源可以采用硬件结构实现,其中,查表单元CRC_LUT和逻辑单元CRC_LSH实现c(xn)的计算,查表单元CRC_LUT的处理过程参考上述步骤1和2,逻辑单元CRC_LSH的处理过程参考上述步骤3;求和单元CRC_SUM实现上述公式(9)和(10)的计算;乘法单元CRC_MUL实现上述公式(17)的计算,所述乘法单元CRC_MUL的输入为c(f1(x))和c(f2(x)),输出为c(c(f1(x))c(f2(x))),实现了两个小于或等于C-1阶多项式带余乘法;加法单元CRC_XOR通过位的异或操作实现多项式的加法计算,所述加法单元CRC_XOR的输入为c(f1(x))和c(f2(x)),输出为c(f1(x))+c(f2(x))。
本实施例中,CRC校验的计算可以分两个阶段:
第一阶段(初始化阶段),计算具体地,第一运算控制单元CTRL_1调用的运算资源和实现过程如图6所示,调用查表单元CRC_LUT和逻辑单元CRC_LSH计算k=K-2时的即其中,调用乘法单元CRC_MUL计算k=K-3、K-4、K-5、…、0时这里需要用到两个乘法单元CRC_MUL,其中一个乘法单元的输入为: 和 另一个乘法单元的输入为: 和 第一运算控制单元CTRL_1可以用状态机实现,只需在初始化阶段计算一次。
第二运算控制单元CTRL_2和输出单元A2调用的运算资源和实现过程如图7所示,以计算为例,第二运算控制单元CTRL_2调用查表单元CRC_LUT和逻辑单元CRC_LSH计算其中,根据比特数据和第一阶段计算的调用求和单元CRC_SUM计算sa(i);然后调用乘法单元CRC_MUL计算其中,所述乘法单元CRC_MUL的输入为:和c(f2(x))=sa(i)(与公式(16)的表示形式相同)。的计算和sa(i)的计算可以并行进行,计算的过程与计算类似。
第二阶段计算的硬件设计采用流水线的方式实时计算。由于第一阶段计算与第二阶段计算在时间上没有重叠,故第一阶段计算使用的硬件资源可以复用第二阶段计算用到的硬件资源,即这种实时CRC校验的实现采用的主要运算资源CRC_LUT,CRC_LSH,CRC_SUM和CRC_MUL均为2个。
通过上述两个阶段的计算过程可以看到,在一次译码过程中,提取的公因子仅需计算一次,和在一个时钟周期也仅计算一次,因此相比于通过公式(5)计算可以把运算单元使用的乘法单元CRC_MUL的个数从2K个减少至2个,有效地减少了多项式带余乘法的运算量。
需要说明的是,为了减小运算复杂度,本实施例是基于查表方式获得c(xn),即通过查表单元和逻辑单元计算c(xn)。在其他实施例中,在n较小的情况下,也可以利用基本单元根据c(xn)=xn modg(x)直接计算。
由于运算单元实现了CRC校验的实时计算,因此在分量译码输出的每个时钟周期,所述译码校验装置可以通过读取单元直接从所述译码器读取译码输出的数据,而不需要等到一个分量译码完成后从排序存储器读取数据。具体地,所述读取单元从K个译码器读取时钟周期i的译码输出的数据。
进一步,在实际的Turbo译码器硬件实现中,为了减少两个分量译码之间的背靠背延迟(该延迟等于基于本实施例实现的CRC校验的流水线的长度),一个分量译码的迭代开始无需等待另一个分量译码的CRC校验的完成,在CRC校验计算通过时,可以产生控制信号来软复位正在进行的分量译码的迭代处理,即终止译码处理过程。因此,本实施例的译码校验装置还可以包括译码控制单元,用于在根据所述校验结果判断出校验通过后,输出终止译码处理的控制信号。所述校验通过是指计算得到的校验结果c(s(x))=0。
基于上述译码校验装置,本发明实施方式还提供一种译码装置,如图8所示,包括:第一分量译码单元B1、第二分量译码单元B2、校验控制单元B3和译码校验装置B4。所述第一分量译码单元和第二分量译码单元分别通过K个译码器进行译码处理,第一分量译码单元和第二分量译码单元的译码处理交替迭代进行;所述校验控制单元B3用于控制所述译码校验装置B4对所述第一分量译码单元B1或第二分量译码单元B2译码输出的数据进行校验以输出校验结果。所述译码校验装置B4的结构在前面已经详细介绍。
在本发明实施例中,所述译码装置还可以包括:排序存储单元,用于存储排序后的所述第一分量译码单元或第二分量译码单元译码输出的数据;译码输出单元,用于在根据所述校验结果判断出校验通过后,从所述排序存储单元中读取排序后的数据并予以输出。
可选的,所述译码输出单元还用于在根据所述校验结果判断出校验失败且迭代次数达到最大值时,从所述排序存储单元中读取排序后的数据并予以输出。在其他实施例中,若根据所述校验结果判断出校验失败且迭代次数达到最大值,也可以不输出译码数据。
此外,由于译码过程的两个分量译码不同时进行,因此第一分量译码单元B1和第二分量译码单元B2可以共用K个译码器。
下面结合图9说明本实施例的译码装置的译码和校验过程:
分量译码1和分量译码2分别通过K个译码器执行译码处理,分量译码1和分量译码2的译码交替迭代处理,K个译码器通过交换网络从存储器阵列中读取数据。第一分量译码单元实现分量译码1的译码处理,第二分量译码单元实现分量译码2的译码处理,其中第二分量译码单元还包括解交织器。在各分量译码的过程中,每个时钟周期分量译码单元输出的数据写入排序存储器进行重新排序,恢复码块的原始顺序。
在分量译码1的译码结果输出阶段,每个时钟周期每个译码器输出2比特数据,K个译码器共输出2K个比特数据,这2K个比特数据分属于交织前码块的K个不同分段,可以直接传输至译码校验装置,由运算单元执行CRC校验的实时计算,也就是说分量译码1的译码处理和校验计算可以并行执行;在分量译码1的译码处理完成后,输出单元输出分量译码1阶段的所有时钟周期的CRC运算结果之和,即分量译码1的校验结果。
在分量译码2的译码结果输出阶段,每个时钟周期每个译码器输出2比特数据,K个译码器共输出2K个比特,这2K个比特分属于交织后码块的K个不同分段,在解交织后传输至译码校验装置,由运算单元执行CRC校验的实时计算,也就是说分量译码2的译码处理和校验计算可以并行执行;在分量译码2的译码处理完成后,输出单元输出分量译码2阶段的所有时钟周期的CRC运算结果之和,即分量译码2的校验结果。
分量译码2可以在分量译码1完成后即开始,不需要等到对分量译码1的校验结果的判断完成后再开始,当译码控制单元根据分量译码1的校验结果判断出分量译码1的校验通过后,输出终止分量译码2的译码处理的控制信号。
同样地,分量译码1可以在分量译码2完成后即开始,不需要等到对分量译码2的校验结果的判断完成后再开始,当译码控制单元根据分量译码2的校验结果判断出分量译码2的校验通过后,输出终止分量译码1的译码处理的控制信号。
当译码控制单元判断出分量译码1或分量译码2的校验通过时,译码输出单元从排序存储器读取并输出排序后的数据。
综上所述,本发明技术方案具有如下有益效果:
基于将每个时钟周期译码输出的每一比特数据表示成多项式并求和,然后对求和得到的多项式执行多项式求余的方式,实现了译码校验的实时计算,因此不需要等到译码完成后从排序存储器读出数据进行译码校验。由于仅在校验成功后从排序存储器读出数据,由此节省了因多次无效访问排序存储器而产生的硬件功耗。
一个分量译码的译码处理和校验计算可以并行执行,在一个分量译码的译码处理完成后可以尽早产生校验结果,由此提高了译码校验的处理速度。一个分量译码的译码处理和另一个分量译码的校验结果判断可以并行执行,因此可以提高译码过程的处理速度。
在一个分量译码的译码处理完成后及时产生校验结果,当一个分量译码的校验通过后,通过控制信号可以立即终止另一个分量译码的译码处理,因此可以避免分量译码的无效迭代计算,从而提高译码装置的吞吐量,节省硬件的功耗。
两个分量译码采用相同的逻辑实现CRC校验,简化了硬件设计。
利用QPP交织器的特性,各译码器在相同时钟周期内输出的数据在分段内具有相同的偏移,通过提取公因子,可以有效地减少多项式带余乘法的计算量,从而降低实时校验的运算复杂度。
通过分解n=pw+q,利用查找表获得c(xpw),简化了运算复杂度;并且,用组合逻辑实现c(xpwxq),有效地减少了查找表深度。
把CRC校验计算分成两个阶段,即初始化阶段与实时计算阶段,并将基本的运算分类成CRC_LUT,CRC_LSH,CRC_SUM与CRC_MUL,由于这两个阶段的计算在时间上没有重叠,故在硬件设计上可以最大限度地复用资源,因此简化了硬件设计,所采用的主要运算资源CRC_LUT,CRC_LSH,CRC_SUM、CRC_MUL和CRC_XOR均为2个。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (22)
1.一种译码校验装置,其特征在于,包括:
运算单元,用于对每一时钟周期译码器输出的数据执行校验运算处理,以获得运算结果,所述执行校验运算处理基于如下方式:将每一比特数据表示成多项式并求和,然后对求和得到的多项式执行多项式求余;
输出单元,用于输出校验结果,所述校验结果为译码阶段的所有时钟周期的运算结果之和。
4.如权利要求3所述的译码校验装置,其特征在于,所述输出单元用于调用所述加法单元,以输出所述校验结果。
5.如权利要求3所述的译码校验装置,其特征在于,所述基本单元包括:
查表单元,用于以p为索引查表以获得c(xpw),其中,n=pw+q,w取2的幂,0≤q<w;
逻辑单元,用于计算c(xpwxq)。
6.如权利要求1所述的译码校验装置,其特征在于,还包括:读取单元,用于从所述译码器读取译码输出的数据。
7.如权利要求1所述的译码校验装置,其特征在于,还包括:译码控制单元,用于在根据所述校验结果判断出校验通过后,输出终止译码处理的控制信号。
8.一种译码装置,包括第一分量译码单元和第二分量译码单元,所述第一分量译码单元和第二分量译码单元分别通过K个译码器进行译码处理,两个分量译码单元的译码处理交替迭代进行,其特征在于,还包括:校验控制单元和权利要求1至7任一项所述的译码校验装置,所述校验控制单元用于控制所述译码校验装置对所述第一分量译码单元或第二分量译码单元译码输出的数据进行校验以输出校验结果。
9.如权利要求8所述的译码装置,其特征在于,还包括:
排序存储单元,用于存储排序后的所述第一分量译码单元或第二分量译码单元译码输出的数据;
译码输出单元,用于在根据所述校验结果判断出校验通过后,从所述排序存储单元中读取排序后的数据并予以输出。
10.如权利要求9所述的译码装置,其特征在于,所述译码输出单元还用于在根据所述校验结果判断出校验失败且迭代次数达到最大值时,从所述排序存储单元中读取排序后的数据并予以输出。
11.如权利要求8所述的译码装置,其特征在于,所述第一分量译码单元和第二分量译码单元共用K个译码器。
12.一种接收端,其特征在于,包括权利要求8至11任一项所述的译码装置。
13.一种译码校验方法,其特征在于,包括:
对每一时钟周期译码器输出的数据执行校验运算处理,以获得运算结果,所述执行校验运算处理基于如下方式:将每一比特数据表示成多项式并求和,然后对求和得到的多项式执行多项式求余;
输出校验结果,所述校验结果为译码阶段的所有时钟周期的运算结果之和。
16.如权利要求15所述的译码校验方法,其特征在于,所述输出校验结果包括:调用所述加法单元,以输出所述校验结果。
17.如权利要求15所述的译码校验方法,其特征在于,所述计算c(xn)包括:
以p为索引查表以获得c(xpw),其中,n=pw+q,w取2的幂,0≤q<w;
计算c(xpwxq)。
18.如权利要求13所述的译码校验方法,其特征在于,还包括:从所述译码器读取译码输出的数据。
19.如权利要求13所述的译码校验方法,其特征在于,还包括:在根据所述校验结果判断出校验通过后,输出终止译码处理的控制信号。
20.一种译码方法,包括第一分量译码和第二分量译码,所述第一分量译码和第二分量译码分别通过K个译码器进行译码处理,两个分量译码的译码处理交替迭代进行,其特征在于,还包括:采用权利要求13至19任一项所述的译码校验方法对所述第一分量译码或第二分量译码输出的数据进行校验以输出校验结果。
21.如权利要求20所述的译码方法,其特征在于,还包括:
存储排序后的所述第一分量译码或第二分量译码输出的数据;
在根据所述校验结果判断出校验通过后,读取排序后的数据并予以输出。
22.如权利要求20所述的译码方法,其特征在于,还包括:在根据所述校验结果判断出校验失败且迭代次数达到最大值时,读取排序后的数据并予以输出。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210319840.5A CN103684655B (zh) | 2012-08-31 | 2012-08-31 | 译码校验装置和方法、译码装置和方法以及接收端 |
US13/784,910 US9048866B2 (en) | 2012-08-31 | 2013-03-05 | Apparatus and method for checking decoded data, apparatus and method for decoding, and receiving terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210319840.5A CN103684655B (zh) | 2012-08-31 | 2012-08-31 | 译码校验装置和方法、译码装置和方法以及接收端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103684655A true CN103684655A (zh) | 2014-03-26 |
CN103684655B CN103684655B (zh) | 2017-03-15 |
Family
ID=50189230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210319840.5A Active CN103684655B (zh) | 2012-08-31 | 2012-08-31 | 译码校验装置和方法、译码装置和方法以及接收端 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9048866B2 (zh) |
CN (1) | CN103684655B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796162A (zh) * | 2015-04-09 | 2015-07-22 | 深圳市三朋电子有限公司 | Turbo码译码停止迭代准则判断系统、方法及装置 |
CN112118016A (zh) * | 2020-09-22 | 2020-12-22 | 展讯通信(上海)有限公司 | 译码控制方法及装置、终端、存储介质 |
CN113821370A (zh) * | 2021-01-22 | 2021-12-21 | 北京诺芮集成电路设计有限公司 | 一种用于数据传输错误校验的高速crc产生方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188380A (zh) * | 1997-01-17 | 1998-07-22 | 松下电器产业株式会社 | 报文接收机 |
CN101043300A (zh) * | 2006-03-24 | 2007-09-26 | 索尼株式会社 | 重新发送控制电路、控制方法、控制程序以及发送装置 |
US20080154998A1 (en) * | 2006-12-26 | 2008-06-26 | Fujitsu Limited | Method and apparatus for dividing information bit string |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100424460B1 (ko) * | 2000-10-05 | 2004-03-26 | 삼성전자주식회사 | 터보 복호기의 전송률 검출 장치 및 방법 |
-
2012
- 2012-08-31 CN CN201210319840.5A patent/CN103684655B/zh active Active
-
2013
- 2013-03-05 US US13/784,910 patent/US9048866B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188380A (zh) * | 1997-01-17 | 1998-07-22 | 松下电器产业株式会社 | 报文接收机 |
CN101043300A (zh) * | 2006-03-24 | 2007-09-26 | 索尼株式会社 | 重新发送控制电路、控制方法、控制程序以及发送装置 |
US20080154998A1 (en) * | 2006-12-26 | 2008-06-26 | Fujitsu Limited | Method and apparatus for dividing information bit string |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796162A (zh) * | 2015-04-09 | 2015-07-22 | 深圳市三朋电子有限公司 | Turbo码译码停止迭代准则判断系统、方法及装置 |
CN104796162B (zh) * | 2015-04-09 | 2017-10-24 | 深圳市三朋电子有限公司 | Turbo码译码停止迭代准则判断系统、方法及装置 |
CN112118016A (zh) * | 2020-09-22 | 2020-12-22 | 展讯通信(上海)有限公司 | 译码控制方法及装置、终端、存储介质 |
CN112118016B (zh) * | 2020-09-22 | 2022-07-19 | 展讯通信(上海)有限公司 | 译码控制方法及装置、终端、存储介质 |
CN113821370A (zh) * | 2021-01-22 | 2021-12-21 | 北京诺芮集成电路设计有限公司 | 一种用于数据传输错误校验的高速crc产生方法和装置 |
CN113821370B (zh) * | 2021-01-22 | 2024-04-19 | 北京诺芮集成电路设计有限公司 | 一种用于数据传输错误校验的高速crc产生方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US9048866B2 (en) | 2015-06-02 |
CN103684655B (zh) | 2017-03-15 |
US20140068398A1 (en) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379086B (zh) | 低复杂度的码率兼容的5g ldpc编码方法和编码器 | |
CN105049061B (zh) | 基于超前计算的高维基极化码译码器和极化码译码方法 | |
CN103731239B (zh) | 一种适用于向量处理器的通用crc并行计算部件及方法 | |
CN101902228B (zh) | 快速循环冗余校验编码方法及装置 | |
CN101478314B (zh) | 一种里德-所罗门编码译码器及其译码的方法 | |
CN101478369A (zh) | 一种crc校验的方法和系统及crc初值影响矩阵 | |
US9065482B1 (en) | Circuit for forward error correction encoding of data blocks | |
CN112468161B (zh) | 一种rs高速编码电路 | |
CN106712906A (zh) | 一种对上行控制信息进行编码的方法和装置 | |
CN103684655A (zh) | 译码校验装置和方法、译码装置和方法以及接收端 | |
CN103986557B (zh) | 低路径延迟的LTE Turbo码并行分块译码方法 | |
CN111313910B (zh) | 空间通信应用的低密度奇偶校验码编码器装置 | |
Zhang et al. | Fast factorization architecture in soft-decision Reed-Solomon decoding | |
CN103929209A (zh) | 基于fpga的高性能组合rs处理器 | |
CN115882876B (zh) | 一种数据编码校验方法、系统、设备、介质及电路 | |
CN103763064A (zh) | 适用于超高速通讯系统的循环冗余校验码生成方法与电路 | |
US10171109B2 (en) | Fast encoding method and device for Reed-Solomon codes with a small number of redundancies | |
D’Anvers | One-hot conversion: Towards faster table-based A2B conversion | |
Mandry et al. | Modular puf coding chain with high-speed reed-muller decoder | |
Zhu et al. | Efficient VLSI architecture for soft-decision decoding of Reed–Solomon codes | |
US9985661B1 (en) | Reed-Solomon erasure code decoder | |
Tang et al. | Fast and low-complexity soft-decision generalized integrated interleaved decoder | |
CN116318184B (zh) | 一种pbch极化码编码系统 | |
Bharathwaj et al. | An alternate approach to modular multiplication for finite fields [GF (2/sup m/)] using Itoh Tsujii algorithm | |
KR20010068349A (ko) | 표준기저를 기반으로 하는 유한체내 고속 gf곱셈기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |