CN113572481B - 一种基于fpga的高速码率兼容dvb-s2的ldpc编码器及编码方法 - Google Patents
一种基于fpga的高速码率兼容dvb-s2的ldpc编码器及编码方法 Download PDFInfo
- Publication number
- CN113572481B CN113572481B CN202110579879.XA CN202110579879A CN113572481B CN 113572481 B CN113572481 B CN 113572481B CN 202110579879 A CN202110579879 A CN 202110579879A CN 113572481 B CN113572481 B CN 113572481B
- Authority
- CN
- China
- Prior art keywords
- check bit
- check
- dvb
- address
- signal
- 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
Links
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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提出了一种基于FPGA的高速码率兼容DVB‑S2的LDPC编码器及编码方法,可以实现对DVB‑S2标准所有LDPC码的编码,且可对各种码率编码器的资源进行共享。另外,本发明通过改变编码器架构的并行度,来动态调整本发明DVB‑S2LDPC编码器的吞吐量,从而满足不同应用场景的需求。使用这个架构,在Xil inx xc4vsx55‑10ff1148FPGA上实现了一个五种码率兼容的DVB‑S2LDPC编码器,该编码器时延小,FPGA资源利用率高,编码吞吐量高,码率兼容LDPC编码器的总吞吐量高达4Gbps。
Description
技术领域
本发明涉及一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器及编码方法。
背景技术
随着空间技术和通信技术的发展,人们对卫星数据传输速率和可靠性的要求不断提高,信道编码是提高数据传输可靠性的关键技术。LDPC码是目前纠错编码领域研究最多且最有前景的编码技术,移动通信(如5G)、光纤、磁介质设备广泛采用LDPC编码技术。各种卫星通信系统均采用了LDPC码,如CCSDS标准和欧洲第二代数字卫星电视广播DVB-S2标准,DVB-S2标准提供了一种强大的前向纠错编码方案,该系统的纠错编码采用LDPC与BCH级联码,现阶段还对DVB-S2标准的LDPC码进行扩展,形成了DVB-S2X标准,进一步奠定了LDPC码的重要性。
现有的DVB-S2文献中,对LDPC译码器的架构和实现关注较多,因为译码器是接收机数字基带部分最复杂的模块。此外,研究人员还致力于从理论上改进波形设计以获得更好的频谱和能量效率。而关于编码器的架构和实现技术的研究相对比较欠缺。值得注意的是,现阶段编码器广泛应用于卫星数据传输系统的发射机和接收机中,是各种卫星载荷中不可缺少的关键技术。因此,对于卫星载荷的FPGA/ASIC资源受限系统,研究资源利用率高且吞吐量高的DVB-S2 LDPC编码器的设计与实现技术显得尤为重要。
针对DVB-S2/DVB-S2X的LDPC编码器ASIC或FPGA的实现,中文文献《DVB-S2标准下前向纠错码的编译码研究及FPGA实现》,设计的仅支持一个编码速率的编码器,可实现的最大时钟频率为125MHz,对应125Mbps的吞吐量。中文文献《基于FPGA的DVB-S2 LDPC编码器的设计与实现》,采用每次并行计算360位校验比特,设计实现了一款基于FPGA的DVB-S2 LDPC编码器,综合时钟频率为65.5MHz,吞吐量可达2.6Gbps。中文专利《一种多码率兼容的高速LDPC编码器的硬件实现》仅给出一种多码率兼容的可适用于DVB-S2 LDPC码的实时编码器硬件实现方法,没有给出设计实例和相应的硬件资源。中文专利《一种基于DVB-S2标准多码率兼容的LDPC编码器》将控制单元和运算单元分离设计了一种基于DVB-S2标准多码率兼容的LDPC编码器,没有关注吞吐量的优化设计问题。英文文献《High-speed LDPC encoderarchitecture for digital video broadcasting systems》,当时钟频率为100MHz时,其编码吞吐量高达10Gbps,但文中没有给出编码器占用的相关硬件资源数量信息。诺斯罗普格鲁曼宇航公司的工程师,采用GPU设计的DVB-S2 LDPC编码器,吞吐量可达几个Gbps,但没有可以与FPGA进行对比的资源。文献《DEVELOPMENT OF THE LDPC CODER-DECODER OF THEDVB-S2 STANDARD ON FPGA》中的编码器结构可支持多种码率,但每种码率的编码器吞吐量均较低,在百兆以下。文献《FPGA Design and Implementation of DVB-S2/S2X LDPCEncoder》的编码器实现方法可支持DVB-S2/DVB-S2X所有的码率和帧类型,但没有考虑吞吐量的动态可调和高吞吐量的优化设计问题。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器及编码方法。
本发明的技术解决方案是:
一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,包括:控制模块、首列校验位地址读取模块、其他列校验位地址计算模块、校验位计算模块及编码码字产生模块;
控制模块通过输入的门控信号synin和码率rate产生校验位的选择参数sel、计数器信号cnt和地址信号addr_h,并将地址信号addr_h提供给首列校验位地址读取模块,将计数器信号cnt提供给其他列校验位地址计算模块,将校验位的选择参数sel提供给校验位计算模块及编码码字产生模块;
控制模块还将输入的门控信号synin和信息序列msg经过延迟后得到的输出synin_dly和msg_dly送入编码码字产生模块;
首列校验位地址读取模块get_ramh产生各种码率情况下的首列校验地址并将/>输出至其他列校验位地址计算模块,其中,cmax为兼容nrate种码率的DVB-S2的LDPC编码器的首列非零元素的最大个数且有/>
其他列校验位地址计算模块通过输入的首列校验地址计算hcmax个其他列校验位地址/>并输出给校验位计算模块;
校验位计算模块用来计算DVB-S2 LDPC码的校验位,并输出给编码码字产生模块;
编码码字产生模块get_code通过输入的校验位的选择参数sel信号来选择LDPC编码器的最终输出。
进一步的,根据输入码率rate产生校验位的选择参数sel,对于一帧DVB-S2LDPC(n,k)码,码字的长度为n比特,信息位的长度为k=rate×n;rate是码率;
当并行h路进行编码时,校验位的选择参数sel为高电平时对应的时钟周期数为k/h个,对于一帧的其他时间段,校验位的选择参数sel为低电平;
当校验位的选择参数sel均为低电平时,计数器信号cnt和地址信号addr_h均为低电平零信号;
当输入门控信号synin和校验位的选择参数sel均为高电平时,计数器信号cnt开始从0计数,计数周期为L/h个时钟周期,即当计数值为L/h-1时,计数器信号cnt再次回到0,L是DVB-S2 LDPC码的列分块大小。
当校验位的选择参数sel为高电平,且计数器信号cnt从最大值变为0值时,地址信号addr_h才计数,即地址信号addr_h每隔L/h个时钟周期自加一次。
进一步的,首列校验位地址读取模块包括存储器romh用来存储不同码率的首列校验位地址值,该存储器romh仅具体读功能,所有码率情况下的首列校验位地址均需存储到存储器romh中,共存储个地址,每个地址占用log2(n-k)比特,krate表示nrate种码率的信息位最大长度。
进一步的,存储器romh的位宽为深度为/>
进一步的,其他列校验位地址计算模块通过输入的首列校验地址通过如下公式计算hcmax个其他列校验位地址/>qrate是DVB-S2 LDPC码率为rate的校验位分块数;
进一步的,不同的码率rate对应的q值,当码率兼容DVB-S2 LDPC编码器兼容的LDPC码个数为nrate个时,表示所有码率对应q所需要的比特数y如下式所示:
对于任意一个LDPC码的码率rate对应的q值表示为二进制序列B=[b0,b1,…,by],cnt∈[0,L/h-1]为对L/h取模后的运算,cnt×[b0,b1,…,by]表示(m mod L)×q的计算结果,二进制的乘法运算用或OR表示,经过加法器后得到A=r+(m mod L)×q,对A进行(n-k)取模运算,即可得到其他列校验位地址
进一步的,校验位计算模块包括一个n-k比特的寄存器reg_p,用于存储实时更新的校验位;通过输入的hcmax个地址从寄存器reg_p中取出相应的hcmax个校验位信息;
输入的校验位的选择参数sel作为控制信号,当该控制信号为低电平时,对并行h路输入的信息序列进行编码,按照公式一个时钟周期计算hqmax个校验位;采用寄存器reg_p将上一个时钟周期产生的校验块存储后与本周期的校验块异或,即实现/>待到(n-k)/h个时钟周期,即所有的信息位输入后,计算出所有的校验位p0,p1,…,pn-k-1;
当控制信号sel为高电平时,每个时钟周期需要从寄存器reg_p中移位h个校验位信息输出给编码码字产生模块。
进一步的,当校验位的选择参数sel为低电平时,编码码字产生模块并行输出h路的校验位p,否则输出信息系列msg的延迟信号msg_dly,同时还要输出标识帧开始的synout信号,该信号为输入门控信号synin的延迟信号synin_dly。
进一步的,本发明还提出一种编码方法,步骤如下:
第一步,控制模块根据输入的门控信号synin和码率rate分别产生:地址信号addr_h输出给首列校验位地址读取模块、计数器信号cnt输出给其他列校验位地址计算模块、校验位的选择参数sel输出给校验位计算模块和编码码字产生模块;控制模块还将输入的门控信号synin和信息序列msg经过延迟后得到的输出synin_dly和msg_dly送入编码码字产生模块;
第二步,将信息序列msg并行h路输入,表示为msg=(i1,i2,…,ih)T,首列校验位地址读取模块根据控制模块产生的地址信号addr_h从存储器romh中读出首列校验位地址,通过首列校验地址读取模块同时读出个首列校验位地址,cmax表示nrate种码率的LDPC码的最大c值;同时读取cmax个首列校验地址/>以实现nrate种码率编码率的DVB-S2LDPC编码器,如果列重dv<cmax,则将首列校验地址置零即可;
第三步,其他列校验位地址计算模块通过首列校验位地址读取模块输入的首列校验地址计算hcmax个其他列校验位地址,计算公式如下
第四步,校验位计算模块在输入信息位的时间段,即控制模块输入的校验位的选择参数sel为低电平时,对并行h路输入的信息序列进行编码,按照公式一个时钟周期计算hcmax个校验位;采用寄存器reg_p将上一个时钟周期产生的校验块存储后与本周期的校验块异或,即可实现/>待到(n-k)/h个时钟周期后获得所有的校验位p0,p1,…,pn-k-1;
第五步,编码码字产生模块通过输入的校验位的选择参数sel信号来选择LDPC编码器的最终输出,当sel信号为高电平时输出控制模块输入的信息序列延迟信号msg_dly,否则将校验位计算模块的输出校验位p取出作为LDPC编码器的最终输出;码率兼容DVB-S2LDPC编码器还将控制模块输入的门控延迟信号synin_dly作为最终的门控信号synout输出。
本发明与现有技术相比的有益效果是:
本发明提出了一种基于FPGA的高速码率兼容DVB-S2 LDPC编码器的设计方法,该方法可以实现对DVB-S2标准所有LDPC码的编码,且可对各种码率编码器的资源进行共享。另外,可以通过改变编码器架构的并行度,来动态调整本发明DVB-S2 LDPC编码器的吞吐量,从而满足不同应用场景的需求。使用这个架构,在Xilinx xc4vsx55-10ff1148 FPGA上实现了一个五种码率兼容的DVB-S2 LDPC编码器,该编码器时延小,FPGA资源利用率高,编码吞吐量高,码率兼容LDPC编码器的总吞吐量高达4Gbps。
附图说明
图1为码率兼容DVB-S2 LDPC编码器总体框图;
图2是DVB-S2 LDPC编码器控制模块输出时序示意图;
图3是码率兼容DVB-S2 LDPC编码器首列校验位地址的存储示意图;
图4是其他列校验位地址计算的电路框图;
图5是校验位计算模块电路框图。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
本发明提出了一种基于FPGA的高速码率兼容DVB-S2 LDPC编码器的设计方法,该方法可以实现对DVB-S2标准所有LDPC码的编码,且可对各种码率编码器的资源进行共享。另外,可以通过改变编码器架构的并行度,来动态调整本发明DVB-S2 LDPC编码器的吞吐量,从而满足不同应用场景的需求。使用这个架构,在Xilinx xc4vsx55-10ff1148 FPGA上实现了一个五种码率兼容的DVB-S2 LDPC编码器,该编码器时延小,FPGA资源利用率高,编码吞吐量高,码率兼容LDPC编码器的总吞吐量高达4Gbps。
一、码率兼容DVB-S2 LDPC编码算法:
DVB-S2标准的LDPC(n,k)码是一个系统码,编码器将含有k比特的信息分组i=(i0,i1,…,ik-1)编码成一个含有n比特的码字c=(i0,i1,…,ik-1,p0,p1,…,pn-k-1)。码字的传输从i0开始,以pn-k-1结束。编码器需要根据k个信息比特的分组i=(i0,i1,…,ik-1)计算n-k个校验比特p0,p1,…,pn-k-1,其步骤如下:
·初始化:p0=p1=…=pn-k-1=0
·对第一个信息比特i0进行累加,对应的校验位地址由查找表的第一行确定
·对接下来的L-1个信息位im,m=1,2,…,L-1按如下公式进行累加
其中,
j=(r+(m mod L)×q)mod(n-k) (2)
这里r对应于第一个信息位i0的校验位累加地址,q为常数,其取值依不同的码而不同,q的具体取值见DVB-S2标准。
·对于第L+1个信息位iL,进行校验位累加的地址由地址查找表中的第二行给出,其后续L-1个信息位im,m=L,…,2L-1的校验位地址同样地通过公式(2)确定。
·采用相同的方法,对接下来的每一组L个信息位,使用地址查找表中新的一行来获得用于累加的校验位地址,这样一直进行下去,直到计算完最后一个信息位。
·从i=1开始,顺序执行下列操作
·经上述步骤后,即可得到所需校验比特p0,p1,…,pn-k-1。
对于不同码率的DVB-S2 LDPC码,仅需改变L、n、k和q值,即可实现码率兼容的DVB-S2 LDPC编码。
二、码率兼容DVB-S2 LDPC编码器FPGA硬件实现架构
以上面介绍的码率兼容DVB-S2 LDPC编码算法为基础,该编码方法只需要存储每块首列校验地址即可,利用这个特点可以节省大量的存储空间。而位于每块的其他列的校验地址由公式(2)计算得到,获得校验地址后即可将以其对应的信息位累加上去。利用对应这些块的信息位更新完校验位后,再利用公式(3)依次求出最终的校验位。本发明设计了如图1所示的编码器架构,该编码器主要由五个模块构成,包括控制模块ctrl_signal、首列校验位地址读取模块get_ramh、其他列校验位地址计算模块parity_index、校验位计算模块get_parity及编码码字产生模块get_code。
三、码率兼容DVB-S2 LDPC编码器各模块的实现
1、控制模块ctrl_signal
本发明设计的控制模块ctrl_signal通过输入的门控信号synin和码率rate产生校验位的选择参数sel、计数器信号cnt和地址信号addr_h。该控制模块需要产生的信号如图2所示。
根据输入码率rate产生校验位的选择参数sel,由第1节编码算法部分可知,对于一帧DVB-S2 LDPC(n,k)码,码字的长度为n比特,信息位的长度为k=rate×n。当并行h路进行编码时,sel为高电平时对应的时钟周期数为k/h个,对于一帧的其他时间段,sel为低电平。
当校验位的选择参数sel均为低电平时,计数器信号cnt和地址信号addr_h均为低电平零信号。
当输入门控信号synin和校验位的选择参数sel均为高电平时,计数器信号cnt开始从0计数,计数周期为L/h个时钟周期。即当计数值为L/h-1时,cnt再次回到0。
当校验位的选择参数sel为高电平,且计数器信号cnt从最大值变为0值时,地址信号addr_h才计数,即地址信号addr_h每隔L/h个时钟周期自加一次。
为了保持时序的同步,控制模块ctrl_signal还将输入的门控信号synin和信息序列msg经过延迟后得到的输出synin_dly和msg_dly送入编码码字产生模块get_code。
LDPC码的不同码率对应不同的控制模块参数值,从图2的LDPC编码器时序图可以看到,DVB-S2 LDPC码是系统码,所以该编码器架构在接收完所有的信息位后即可将全部校验位计算出来,编码码字产生模块只需要将信息位延迟输出,等所有信息位输出完后将校验位依次输出即可,所以这种架构的编码器是一种实时编码器,不需要对输入数据进行缓存。
2、首列校验位地址读取模块get_ramh
首列校验位地址读取模块get_ramh用来产生各种码率情况下的首列校验地址兼容nrate种码率的DVB-S2的LDPC编码器的/>该模块包含一个存储器romh用来存储不同码率的首列校验位地址值,该存储器只需要读功能。为了实现码率兼容LDPC编码器,所有码率情况下的首列校验位地址均需要存储到存储器romh中,共需要存储/>个地址,每个地址占用log2(n-k)比特,krate表示nrate种码率的信息位最大长度。
为了充分利用FPGA的BRAM资源,本发明设计的码率兼容DVB-S2 LDPC编码器的这部分资源采用了压缩存储的方法,如图3所示。此时存储器romh的位宽为深度为/>
输入地址信号addr_h每隔L/h个时钟周期自加一次,即对于每个校验矩阵的列块,该值保证不变。显然每个校验矩阵列块的其他非零元素可由首列校验位地址来确定,该模块的输出送至其他列校验位地址计算模块parity_index。
3、其他列校验位地址计算模块parity_index
其他列校验位地址计算模块parity_index通过输入的首列校验地址按照计算公式(4)来计算hcmax个其他列校验位地址/>其实现电路如图4所示。
不同的码率rate对应的q值,当码率兼容DVB-S2 LDPC编码器兼容的LDPC码个数为nrate个时,表示所有码率对应q所需要的比特数y如公式(5)所示:
对于任意一个LDPC码的码率rate对应的q值可表示为二进制序列B=[b0,b1,…,by],由于cnt∈[0,L/h-1],为对L/h取模后的运算。所以cnt×[b0,b1,…,by]表示(m mod L)×q的计算结果,二进制的乘法运算用或OR表示。经过加法器后得到A=r+(m mod L)×q。按照公式(2)还需要对A进行(n-k)取模运算,本发明采用比较器、减法器和选择器的实现方法,即可得到其他列校验位地址
4、校验位计算模块get_parity
校验位计算模块get_parity用来计算DVB-S2 LDPC码的校验位,其实现电路如图5所示。该模块包含一个n-k比特的寄存器reg_p,用来存储实时更新的校验位。通过输入的hcmax个地址从寄存器reg_p中取出相应的hcmax个校验位信息。当控制信号sel为低电平时,对并行h路输入的信息序列进行编码,按照公式一个时钟周期可计算hqmax个校验位。采用寄存器reg_p将上一个时钟周期产生的校验块存储后与本周期的校验块异或,即可实现/>待到(n-k)/h个时钟周期,即所有的信息位输入后,可以计算出所有的校验位p0,p1,…,pn-k-1。当控制信号sel为高电平时,每个时钟周期需要从寄存器reg_p中移位h个校验位信息输出给编码码字产生模块get_code。
5、编码码字产生模块get_code
编码码字产生模块get_code,当校验位的选择参数sel为低电平时,并行输出h路的校验位p,否则输出信息系列msg的延迟信号msg_dly。同时还要输出标识帧开始的synout信号,该信号为输入门控信号synin的延迟信号synin_dly。
本发明码率兼容DVB-S2 LDPC编码器的编码步骤如下:
第一步,控制模块ctrl_signal根据输入的门控信号synin和码率rate分别产生:地址信号addr_h输出给首列校验位地址读取模块get_ramh,计数器信号cnt输出给其他列校验位地址计算模块parity_index,校验位的选择参数sel输出给校验位计算模块get_parity和编码码字产生模块get_code。为了保持时序的同步,控制模块ctrl_signal还将输入的门控信号synin和信息序列msg经过延迟后得到的输出synin_dly和msg_dly送入编码码字产生模块get_code。
第二步,将信息序列msg并行h路输入,表示为msg=(i1,i2,…,ih)T的情况,首列校验位地址读取模块get_ramh根据控制模块ctrl_signal产生的地址信号addr_h从romh中读出首列校验位地址,通过首列校验地址读取模块get_ramh可同时读出个首列校验位地址,cmax表示nrate种码率的LDPC码的最大c值。为了实现nrate种码率编码率的DVB-S2 LDPC编码器,需要同时读取cmax个首列校验地址/>如果列重dv<cmax,只需将首列校验地址置零即可。
第三步,其他列校验位地址计算模块parity_index通过首列校验位地址读取模块get_ramh输入的首列校验地址来计算hcmax个其他列校验位地址,计算公式如下
第四步,校验位计算模块get_parity在输入信息位的时间段,即控制模块ctrl_signal输入的校验位的选择参数sel为低电平时,对并行h路输入的信息序列进行编码,按照公式一个时钟周期可计算hcmax个校验位。采用寄存器reg_p将上一个时钟周期产生的校验块存储后与本周期的校验块异或,即可实现/>待到(n-k)/h个时钟周期后可以获得所有的校验位p0,p1,…,pn-k-1。
第五步,编码码字产生模块get_code通过输入的校验位的选择参数sel信号来选择LDPC编码器的最终输出,当sel信号为高电平时输出控制模块ctrl_signal输入的信息序列延迟信号msg_dly,否则将get_parity模块的输出校验位p取出作为LDPC编码器的最终输出。码率兼容DVB-S2 LDPC编码器还将ctrl_signal输入的门控延迟信号synin_dly作为最终的门控信号synout输出。
码率兼容DVB-S2 LDPC编码器设计实例:
下面给出了采用本发明的方法实现的一个基于FPGA的高速码率兼容DVB-S2 LDPC编码器的实例。本发明从DVB-S2标准中选取了五个码长为16200的LDPC码进行码率兼容编码器的FPGA实现,这五个码的码率分别为2/5、3/5、2/3、7/9和8/9,q的取值如表1所示。
表1.短帧LDPC码在不同码率时的对应的q值
码率 | 2/5 | 3/5 | 2/3 | 7/9 | 8/9 |
q值 | 27 | 18 | 15 | 10 | 5 |
c值 | 12 | 12 | 13 | 3 | 4 |
这五个码的(n,k)参数分别为(16200,6480),(16200,9720),(16200,10800),(16200,12600)和(16200,14400)。所以它们对应的校验位的位数分别为9720,6480,5400,3600和1800。分块大小L=360。
此时存储器romh的位宽为深度为占用6块18k的BRAM资源。
对于本发明提出的这种编码器架构,在Xilinx xc4vsx55-10ff1148 FPGA上实现了一个兼容五种码率的DVB-S2 LDPC编码器。
为了实现高吞吐量DVB-S2 LDPC编码器,采用h=20路并行输入情况,综合和布局布线采用Xilinx ISE 14.7,加上5ns的时钟约束,可满足要求,对应200MHz的时钟主频。此时编码器的吞吐量为200×20=4Gbps。五种码率兼容DVB-S2 LDPC编码器的FPGA实现结果及资源占用如表2所示。
表2.五种码率兼容DVB-S2 LDPC编码器的FPGA资源占用
资源类型 | Flip Flops | 4input LUTs | Slices | 18kbits BRAM |
编码器资源 | 17058(34%) | 15582(32%) | 13454(54%) | 6(1%) |
本发明设计的DVB-S2 LDPC编码器架构的并行度为h。通过增大并行度h即可提高DVB-S2 LDPC编码器的吞吐量,改变并行度为h即可动态调节编码器的吞吐量,从而满足不同应用场景的需求。另外,该架构可兼容不同的码率,在硬件资源共享的情况下实现速率和码率动态可调性。
本发明针对现有文献在吞吐量的灵活性和对不同码率DVB-S2的兼容性架构方面的研究不足,重点研究吞吐量可调节且码率兼容DVB-S2 LDPC编码器的设计方法,可有效实现吞吐量与编码器资源的有效折中,提出的编码器架构灵活性好,仅通过提高并行路数,即可提高编码器的吞吐量。提出的LDPC码时延小,FPGA资源利用率高,吞吐量高,码率兼容LDPC编码器总吞吐量高达4Gbps。
本发明说明书中未作详细描述的内容属于本领域的公知技术。
Claims (9)
1.一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于包括:控制模块、首列校验位地址读取模块、其他列校验位地址计算模块、校验位计算模块及编码码字产生模块;
控制模块通过输入的门控信号synin和码率rate产生校验位的选择参数sel、计数器信号cnt和地址信号addr_h,并将地址信号addr_h提供给首列校验位地址读取模块,将计数器信号cnt提供给其他列校验位地址计算模块,将校验位的选择参数sel提供给校验位计算模块及编码码字产生模块;
控制模块还将输入的门控信号synin和信息序列msg经过延迟后得到的输出synin_dly和msg_dly送入编码码字产生模块;
首列校验位地址读取模块get_ramh产生各种码率情况下的首列校验地址并将/>输出至其他列校验位地址计算模块,其中,cmax为兼容nrate种码率的DVB-S2的LDPC编码器的首列非零元素的最大个数且有/>
其他列校验位地址计算模块通过输入的首列校验地址计算hcmax个其他列校验位地址/>并输出给校验位计算模块;
校验位计算模块用来计算DVB-S2 LDPC码的校验位,并输出给编码码字产生模块;
编码码字产生模块get_code通过输入的校验位的选择参数sel信号来选择LDPC编码器的最终输出。
2.根据权利要求1所述的一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于:根据输入码率rate产生校验位的选择参数sel,对于一帧DVB-S2 LDPC(n,k)码,码字的长度为n比特,信息位的长度为k=rate×n;rate是码率;
当并行h路进行编码时,校验位的选择参数sel为高电平时对应的时钟周期数为k/h个,对于一帧的其他时间段,校验位的选择参数sel为低电平;
当校验位的选择参数sel均为低电平时,计数器信号cnt和地址信号addr_h均为低电平零信号;
当输入门控信号synin和校验位的选择参数sel均为高电平时,计数器信号cnt开始从0计数,计数周期为L/h个时钟周期,即当计数值为L/h-1时,计数器信号cnt再次回到0,L是DVB-S2 LDPC码的列分块大小;
当校验位的选择参数sel为高电平,且计数器信号cnt从最大值变为0值时,地址信号addr_h才计数,即地址信号addr_h每隔L/h个时钟周期自加一次。
3.根据权利要求2所述的一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于:首列校验位地址读取模块包括存储器romh用来存储不同码率的首列校验位地址值,该存储器romh仅具体读功能,所有码率情况下的首列校验位地址均需存储到存储器romh中,共存储个地址,每个地址占用log2(n-k)比特,krate表示nrate种码率的信息位最大长度。
4.根据权利要求3所述的一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于:存储器romh的位宽为深度为/>
5.根据权利要求3所述的一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于:其他列校验位地址计算模块通过输入的首列校验地址通过如下公式计算hcmax个其他列校验位地址/>qrate是DVB-S2 LDPC码率为rate的校验位分块数;
6.根据权利要求5所述的一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于:不同的码率rate对应的q值,当码率兼容DVB-S2 LDPC编码器兼容的LDPC码个数为nrate个时,表示所有码率对应q所需要的比特数y如下式所示:
对于任意一个LDPC码的码率rate对应的q值表示为二进制序列B=[b0,b1,…,by],cnt∈[0,L/h-1]为对L/h取模后的运算,cnt×[b0,b1,…,by]表示(m mod L)×q的计算结果,二进制的乘法运算用或OR表示,经过加法器后得到A=r+(m mod L)×q,对A进行(n-k)取模运算,即可得到其他列校验位地址
7.根据权利要求6所述的一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于:校验位计算模块包括一个n-k比特的寄存器reg_p,用于存储实时更新的校验位;通过输入的hcmax个地址从寄存器reg_p中取出相应的hcmax个校验位信息;
输入的校验位的选择参数sel作为控制信号,当该控制信号为低电平时,对并行h路输入的信息序列进行编码,按照公式一个时钟周期计算hqmax个校验位;采用寄存器reg_p将上一个时钟周期产生的校验块存储后与本周期的校验块异或,即实现/>待到(n-k)/h个时钟周期,即所有的信息位输入后,计算出所有的校验位p0,p1,…,pn-k-1;
当控制信号sel为高电平时,每个时钟周期需要从寄存器reg_p中移位h个校验位信息输出给编码码字产生模块。
8.根据权利要求7所述的一种基于FPGA的高速码率兼容DVB-S2的LDPC编码器,其特征在于:当校验位的选择参数sel为低电平时,编码码字产生模块并行输出h路的校验位p,否则输出信息系列msg的延迟信号msg_dly,同时还要输出标识帧开始的synout信号,该信号为输入门控信号synin的延迟信号synin_dly。
9.一种根据权利要求1~8中任一项所述的基于FPGA的高速码率兼容DVB-S2的LDPC编码器实现的编码方法,其特征在于步骤如下:
第一步,控制模块根据输入的门控信号synin和码率rate分别产生:地址信号addr_h输出给首列校验位地址读取模块、计数器信号cnt输出给其他列校验位地址计算模块、校验位的选择参数sel输出给校验位计算模块和编码码字产生模块;控制模块还将输入的门控信号synin和信息序列msg经过延迟后得到的输出synin_dly和msg_dly送入编码码字产生模块;
第二步,将信息序列msg并行h路输入,表示为msg=(i1,i2,…,ih)T,首列校验位地址读取模块根据控制模块产生的地址信号addr_h从存储器romh中读出首列校验位地址,通过首列校验地址读取模块同时读出个首列校验位地址,cmax表示nrate种码率的LDPC码的最大c值;同时读取cmax个首列校验地址/>以实现nrate种码率编码率的DVB-S2LDPC编码器,如果列重dv<cmax,则将首列校验地址置零即可;
第三步,其他列校验位地址计算模块通过首列校验位地址读取模块输入的首列校验地址计算hcmax个其他列校验位地址,计算公式如下
第四步,校验位计算模块在输入信息位的时间段,即控制模块输入的校验位的选择参数sel为低电平时,对并行h路输入的信息序列进行编码,按照公式一个时钟周期计算hcmax个校验位;采用寄存器reg_p将上一个时钟周期产生的校验块存储后与本周期的校验块异或,即可实现/>待到(n-k)/h个时钟周期后获得所有的校验位p0,p1,…,pn-k-1;
第五步,编码码字产生模块通过输入的校验位的选择参数sel信号来选择LDPC编码器的最终输出,当sel信号为高电平时输出控制模块输入的信息序列延迟信号msg_dly,否则将校验位计算模块的输出校验位p取出作为LDPC编码器的最终输出;码率兼容DVB-S2 LDPC编码器还将控制模块输入的门控延迟信号synin_dly作为最终的门控信号synout输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110579879.XA CN113572481B (zh) | 2021-05-26 | 2021-05-26 | 一种基于fpga的高速码率兼容dvb-s2的ldpc编码器及编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110579879.XA CN113572481B (zh) | 2021-05-26 | 2021-05-26 | 一种基于fpga的高速码率兼容dvb-s2的ldpc编码器及编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113572481A CN113572481A (zh) | 2021-10-29 |
CN113572481B true CN113572481B (zh) | 2023-09-29 |
Family
ID=78161608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110579879.XA Active CN113572481B (zh) | 2021-05-26 | 2021-05-26 | 一种基于fpga的高速码率兼容dvb-s2的ldpc编码器及编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113572481B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113850098B (zh) * | 2021-11-29 | 2022-03-04 | 杰创智能科技股份有限公司 | 数据编码装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464270A (zh) * | 2014-05-21 | 2017-02-22 | 三星电子株式会社 | 传输设备及其交织方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067458A (zh) * | 2008-06-18 | 2011-05-18 | Nxp股份有限公司 | 用于低密度奇偶校验解码器的节点信息存储方法和系统 |
KR102104937B1 (ko) * | 2013-06-14 | 2020-04-27 | 삼성전자주식회사 | Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법 |
CN111934691A (zh) * | 2014-12-29 | 2020-11-13 | Lg 电子株式会社 | 广播信号发送设备和方法以及广播信号接收设备和方法 |
CN111865497B (zh) * | 2015-02-25 | 2023-04-14 | 三星电子株式会社 | 发送器及其产生附加奇偶校验的方法 |
-
2021
- 2021-05-26 CN CN202110579879.XA patent/CN113572481B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464270A (zh) * | 2014-05-21 | 2017-02-22 | 三星电子株式会社 | 传输设备及其交织方法 |
Non-Patent Citations (3)
Title |
---|
LDPC码的高效编译码实现技术研究;袁瑞佳;《中国博士学位论文全文数据库》;全文 * |
Tianjiao Xie ; Bo Li ; Mao Yang ; Zhongjiang Yan.Memory compact high-speed QC-LDPC decoder. 2017 IEEE International Conference on Signal Processing, Communications and Computing (ICSPCC.2017,全文 . * |
高速码率兼容DVB-S2的LDPC译码器的FPGA实现;谢天娇;李波;杨懋;闫中江;;西北工业大学学报;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113572481A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102014905B1 (ko) | 송신 장치 및 그의 인터리빙 방법 | |
US8499219B2 (en) | Encoding methods and systems for binary product codes | |
US9094043B2 (en) | Data processing device and data processing method | |
EP1511177A2 (en) | Apparatus and method for coding/decoding block low density parity check code in a mobile communication system | |
CN101951264B (zh) | 一种多码率准循环低密度奇偶校验码解码器 | |
CN109802687B (zh) | 一种基于fpga的qc-ldpc码的高速码率兼容ldpc编码器 | |
KR102053992B1 (ko) | 송신 장치 및 그의 인터리빙 방법 | |
US7966544B2 (en) | Loading the input memory of an LDPC decoder with data for decoding | |
CN102882533A (zh) | 基于查找表的dtmb中ldpc串行编码器和编码方法 | |
KR20110006666A (ko) | 신호 디코딩을 위한 장치 및 방법 | |
MXPA04007076A (es) | Mensajeria en bloque de componente intra-decodificador. | |
CN109347486B (zh) | 低复杂度高吞吐率的5g ldpc编码器和编码方法 | |
CA2460315C (en) | Turbo decoding apparatus and method | |
CN113572481B (zh) | 一种基于fpga的高速码率兼容dvb-s2的ldpc编码器及编码方法 | |
CN112039535A (zh) | 一种基于准循环生成矩阵的码率兼容ldpc编码器 | |
JP4497706B2 (ja) | データのターボコーディングのためのインターリーブ方法 | |
CN100555879C (zh) | 一种ldpc码的编码器装置及编码方法 | |
CN107947801B (zh) | 多码率兼容ldpc码编码器 | |
US8281086B2 (en) | De-interleaving and interleaving for data processing | |
CN111030780B (zh) | 一种可配置并行比特分组交织器及交织方法 | |
Lazarenko | FPGA design and implementation of DVB-S2/S2X LDPC encoder | |
CN111600612B (zh) | 一种用于leo卫星vcm数传系统的fec编码ip核 | |
Liu et al. | An LDPC encoder architecture with up to 47.5 Gbps throughput for DVB-S2/S2X standards | |
CN101141132A (zh) | 一种准循环低密度奇偶校验码编码器和校验位生成方法 | |
WO2008028419A1 (fr) | Procédé et système d'entrelacement/désentrelacement dans un système de communication |
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 |