一种高速LDPC全模式列变换方法与流程

文档序号:32414999发布日期:2022-12-02 22:04阅读:100来源:国知局
一种高速LDPC全模式列变换方法与流程
一种高速ldpc全模式列变换方法
技术领域
1.本发明涉及电子通信技术领域,特别涉及一种高速ldpc全模式列变换方法。


背景技术:

2.在dvb-s2/s2x ldpc码字中,每种码率有个校验比特,将这些校验比特送入译码环前,需要对输入的这些校验比特数据在不同的码率下进行对应深度的矩阵列变换操作,码率变化即校验比特矩阵宽度变化范围大时,列变换操作的资源需求剧增。
3.在并行译码器中,因译码模块的输入输出速率要求,列变换模块的输入输出需要并行处理,当只使用ram进行列变换时,因q值(范围5~135)的范围较大,ram的宽度与深度都要足够大才能满足列变换的要求。但fpga提供的ram资源难以满足列变换的要求,尤其使用软值译码时,列变换过程中暂存这些校验比特消耗的资源会更多。
4.在dvb-s2标准的ldpc码字中,对于不同的码率有不同的q值(范围5~135),每种码率都有对应的360
×
q大小的校验比特矩阵。如图2所示,当llr并行输入时,同时刻并行输入的llr在经变换后也要分离输出,尤其是q值与并行度没有必然的整倍数关系,这导致传统的套用交织器原理的方案,即将ram映射为校验比特矩阵采用行方向、写入列方向读出的方式不仅难以满足吞吐率要求,还要ram预留较大的位宽与深度以适应各种码率变化;此外,这种方法的大部分ram空间都未被使用,消耗了大量的资源,不是fpga平台上的最优解决方案。


技术实现要素:

5.本发明的目的旨在至少解决所述技术缺陷之一。
6.为此,本发明的一个目的在于提出一种高速ldpc全模式列变换方法,,以解决背景技术中所提到的问题,克服现有技术中存在的不足。
7.为了实现上述目的,本发明一方面的实施例提供一种高速ldpc全模式列变换方法,将360q个llr的校验比特矩阵划分为60个分组,每个分组为包括6q个llr的校验比特矩阵,采用两级移位寄存器对每个分组内部进行位置变换,再变换地址输出到ram中完成分组间的位置变换,最后读取ram中全部360q个llr并输出。
8.优选的是,该方法具体包括:
9.步骤s1:在每时钟周期并行输入6个llr,即:
10.[l
6n
,l
6n+1
,l
6n+2
,l
6n+3
,l
6n+4
,l
6n+5
],n∈{0,1,2,3,

,q-1}
[0011]
每时钟周期有6个llr移入第一级移位寄存器sra,直至移入q次,此时,第一级移位寄存器sra中存储有共6q个llr;因第一级移位寄存器sra的存储单元只有移位操作,其电路由触发器ff构成;
[0012]
步骤s2:将第一级移位寄存器sra中的6q个llr装载到第二级移位寄存器srb中。
[0013]
在上述任一方案中优选的是,还包括:
[0014]
步骤s3:第二级移位寄存器srb装载完成后,在每个时钟周期移出一个llr,同时以
q为间隔,从第二级移位寄存器srb的固定位置中抽出6个llr送往下一级,即:
[0015]
[li,l
i+q
,l
i+2q
,l
i+3q
,l
i+4q
,l
i+5q
],i∈{0,1,2,3,

,q-1}
[0016]
经过q个时钟周期后,6q个llr被全部分离送往下一级;第一级移位寄存器sra的装载输入到第二级移位寄存器srb中,然后,第二级移位寄存器srb从相邻位置提取数据。第二级移位寄存器srb的每个存储单元电路由一个两输入选择器mux2和触发器ff构成。
[0017]
在上述任一方案中优选的是,还包括:
[0018]
步骤s4:每时钟周期将上一级抽出的6个llr写入到ram,根据llr在校验比特矩阵上的对应关系,写入ram的地址间隔为360q/6q=60。
[0019]
在上述任一方案中优选的是,还包括:
[0020]
步骤s5:第二级移位寄存器srb处理完6q个llr后,再次执行步骤s1到步骤s4,直至处理完全部360q个llr。
[0021]
步骤s6:在全部360q个llr写入到ram完成后,从ram的起始地址顺序读出,所得到的即为并行的列变换输出数据。
[0022]
与现有技术相比,本发明所具有的优点和有益效果为:
[0023]
1、本发明的高速ldpc全模式列变换方法能显著减少fpga的资源消耗,列变换操作所需的ram能存储全部校验比特llr即可,无需根据不同的校验比特矩阵尺寸预留ram的宽度与深度。在实例中,单个llr宽度为6位,最大校验比特矩阵尺寸为360
×
135时,这两级移位寄存器与ram共消耗了fpga中9885个lut3、20208个ff,22个36kb blockram,都不超过fpga各类资源总数的2.5%。
[0024]
2、本发明的一种高速ldpc全模式列变换方法在切换码率时,本方案能适应q值的变化,只需调整从移位寄存器抽出llr的位置即能适应大范围的q值,本方案能适应各种校验矩阵尺寸范围,可以不限于dvb-s2标准,适用范围广。
[0025]
3、本方案在各个处理步骤中的数据吞吐量都与输入输出接口一致,中间过程没有速率瓶颈,可最大化吞吐量;资源利用率高,处理效率高。
[0026]
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
[0027]
4、现有的处理方式要求变换矩阵的宽度是输入并行度的整数倍,以从行方向写入、从列方向读出。本发明所实现的并行输入输出的列变换操作不要求校验比特矩阵行列数与输入输出并行度的倍数关系与大小关系,矩阵尺寸可任意选取,都能通过本发明完成变换;变换参数灵活。
附图说明
[0028]
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0029]
图1为校验比特矩阵列变换示意图。
[0030]
图2为现有技术中基于行列操作的ram使用图。
[0031]
图3为一种高速ldpc全模式列变换方法中的的分组示意图。
[0032]
图4为一种高速ldpc全模式列变换方法中的的第二级移位寄存器srb的工作示意图。
[0033]
图5为一种高速ldpc全模式列变换方法中写入的ram地址表。
[0034]
图6为一种高速ldpc全模式列变换方法流程图。
具体实施方式
[0035]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0036]
在dvb-s2标准的ldpc码字中,对于不同的码率有不同的q值(范围5~135),每种码率都有对应的360
×
q大小的校验比特矩阵。如图1所示,此处的列变换操作的目的是将输入的360q个校验比特的llr软值按行方向存入360行q列的矩阵中,再按列方向读出,以变换llr的位置。如图3所示,本发明实施例的一种高速ldpc全模式列变换方法,包括将360q个llr的校验比特矩阵划分为60个分组,每个分组为包括6q个llr的校验比特矩阵,采用两级移位寄存器对每个分组内部进行位置变换,再变换地址输出到ram中完成分组间的位置变换,最后读取ram中全部360q个llr并输出。
[0037]
其中,q值范围为5~135。fpga(现场可编程门阵列field programmable gate array);llr(log-likelihood ratio对数似然比)。ram(random access memory随机存取存储器)
[0038]
本发明实施例的的一种高速ldpc全模式列变换方法在fpga平台上采用本方法能显著减少fpga的资源消耗,列变换操作所需的ram能存储全部校验比特llr即可,无需根据不同的校验比特矩阵尺寸预留ram的宽度与深度。不仅仅适用于dvb-s2/s2x标准,还可以适用于其它标准。在实例中,单个llr宽度为6位,最大校验比特矩阵尺寸为360
×
135时,这两级移位寄存器与ram共消耗了fpga中9885个lut3(查找表)、20208个ff(触发器),22个36kb blockram(内部存储器),都不超过fpga各类资源总数的2.5%;传统的处理方式难以将并行输入的llr分离后再重新组合输出,本发明提出了一种并行输入输出的列变换实现方式,采用两级移位寄存器配合ram的方式完成列变换操作。
[0039]
进一步的,该方法具体包括:
[0040]
步骤s1:在每时钟周期并行输入6个llr,即:
[0041]
[l
6n
,l
6n+1
,l
6n+2
,l
6n+3
,l
6n+4
,l
6n+5
],n∈{0,1,2,3,

,q-1}
[0042]
每时钟周期有6个llr移入第一级移位寄存器sra,直至移入q次,此时,第一级移位寄存器sra中存储有共6q个llr;因第一级移位寄存器sra的存储单元只有移位操作,其电路由触发器ff构成;
[0043]
步骤s2:经过q个时钟周期,将6并行的共6q个llr移入到第一级移位寄存器sra后,将第一级移位寄存器sra的llr装载到第二级移位寄存器srb中。
[0044]
本发明将6并行输入的llr,即[l
6n
,l
6n+1
,l
6n+2
,l
6n+3
,l
6n+4
,l
6n+5
],n∈{0,1,2,3,

,q-1},先移入第一级移位寄存器sra中,在输入共6q个llr后,将第一级移位寄存器sra此刻的内容[l0,l1,l2,l3,

,l
6q-2
,l
6q-1
]装载入第二级移位寄存器srb中,此时图6中的控制逻辑控制选择器mux从第一级移位寄存器sra装载;第二级移位寄存器srb装载新内容后,第一级移位寄存器sra可独立地继续输入新的一个6
×
q分组的llr,与后续第二级移位寄存器srb的操作可同时进行;选择器mux有两个输入端,一个控制端,一个输出端,这里选择了连接第
一级移位寄存器sra的输入端作为其输入数据源,mux的输出端连接到了第二级移位寄存器srb上。
[0045]
本发明实施例采用两级移位寄存器配合ram达到列变换目的方法,能显著减少fpga(现场可编程门阵列field programmable gate array)资源的消耗。此外,本变换方法因为使用移位寄存器对输入的llr(leased loaded routing最小负荷选路)进行预处理,可插入流水线以达到较高的吞吐量,切换模块内的少量参数即可适应不同的码率。
[0046]
本方法将360q个llr的校验比特矩阵划分为60块,每块6
×
q大小的分组内部先分别进行位置变换,在并行的列变换中,这一分组内的llr在输入输出时不会与分组外的llr组合。因此先使用两级移位寄存器完成这6q个llr的列变换操作,再利用ram完成全部60个分组共360q个llr的位置变换。
[0047]
进一步的,如图4所示,还包括:
[0048]
步骤s3:第二级移位寄存器srb装载完成后,在每个时钟周期移出一个llr,同时以q为间隔,从第二级移位寄存器srb的固定位置中抽出6个llr送往下一级,即:
[0049]
步骤s3:第二级移位寄存器srb装载完成后,在每个时钟周期移出一个llr,同时以q为间隔,从第二级移位寄存器srb的固定位置中抽出6个llr送往下一级,即:
[0050]
[li,l
i+q
,l
i+2q
,l
i+3q
,l
i+4q
,l
i+5q
],i∈{0,1,2,3,

,q-1}
[0051]
经过q个时钟周期后,6q个llr被全部分离送往下一级;第一级移位寄存器sra的装载输入到第二级移位寄存器srb中,然后,第二级移位寄存器srb从相邻位置提取数据。第二级移位寄存器srb的每个存储单元电路包括一个两输入选择器mux2和触发器ff。
[0052]
如图4所示,第二级移位寄存器srb装载后,每时钟周期移出一个llr,同时以q为间隔,从第二级移位寄存器srb的固定位置中抽出6个llr:
[0053]
[li,l
i+q
,l
i+2q
,l
i+3q
,l
i+4q
,l
i+5q
],i∈{0,1,2,3,

,q-1},送往下一级,图4中以阵列表示第二级移位寄存器srb的内容(将第二级移位寄存器srb内的llr每q个新增一行表示),实际上第一级移位寄存器sra与第二级移位寄存器srb是一维的结构,这里便于表示其抽出数据的位置换行表示成阵列,当q值改变时,阵列的尺寸会改变,但移位寄存器的一维结构无需改变,改变抽头位置是等效的做法。
[0054]
则移位等效为将最左侧整列移出、抽出位置等效为阵列的最左侧一列,此时图6中的选择器mux的选通从第二级移位寄存器srb移位操作后的数据,即第二级移位寄存器srb装载自身移位后的数据;在合适的时机切换mux的选通输入端,要么第二级移位寄存器srb从第一级移位寄存器sra装载,要么第二级移位寄存器srb装载自身数据移位后的数据。
[0055]
经过q个时钟周期后,之前装载第二级寄存器srb的6q个llr被全部分离送往下一级,按照llr在校验矩阵中的位置关系,写入ram的地址为;
[0056]
[d(i),d
(i+60)
,...,d
i+(q-2)*60
,d
i+(q-1)*60
],i={0,1,2,3,...,q-1}
[0057]
将l(0)到l(5q)这一列写入到ram的d(i)中,将l(1)到l(5q+1)这一列写入到ram的d(i+60)地址中,以此类推。最后得到如图5所示的ram地址表,按照ram地址表的列方向读取输出(即地址按递增顺序读出),例如读取第一列d(0)到d(60-1)输出,再读取第二列d(60)到d(2*60-1)输出,以此类推。
[0058]
本发明采用两级移位寄存器进行分步处理的方式,可以在处理数据流中插入流水线提高处理电路的时钟频率以增大模块吞吐量;虽然移位寄存器宽度较大,因简化了控制
逻辑,在工程应用中可在xilinx公司7系fpga上达到320mhz的时钟频率。
[0059]
进一步的,还包括:
[0060]
步骤s4:在每时钟周期将上一级抽出的6个llr写入到ram,根据llr在校验比特矩阵上的对应关系,写入ram的地址间隔为360q/6q=60。
[0061]
如图5所示,在写完一个分组的6q个llr后,紧接着下一分组的6q个llr也照以上1、2、3步骤处理,但写ram地址在前一分组的基础上递增1;图5中地址表每行表示一个分组的写地址。
[0062]
进一步的,还包括:
[0063]
步骤s5:在全部360q个llr写入到ram完成后,从ram的起始地址顺序读出,所得到的即为并行的列变换输出数据。根据这些llr在校验比特矩阵上的对应关系,写ram的地址间隔为360q/6q=60。
[0064]
在全部360q个llr都输入完成后,从ram的起始地址顺序读出得到的即为并行的列变换输出数据。在ldpc编码码率变化即q改变时,只需调整装载第二级移位寄存器srb的时机、从第二级移位寄存器srb抽出llr的位置即可适应不同的q值。
[0065]
如图6所示为本发明整体工作流程图,将6q个llr并行输入到第一移位寄存器sra中,mux(选择器)先选择第一级移位寄存器sra中的llr装载进第二级移位寄存器srb中,此后选择器切换至srb移位操作,srb内部的llr不断移位,将指定位置抽出llr数据写入ram,在全部llr都输入后,从ram顺序读出的即为列变换后的数据。
[0066]
在现有的处理方式下,不同的矩阵宽度需要不同的ram位宽,在矩阵宽度较大时,fpga内部的ram资源已不能满足这种列变换的需求。在本发明实施例中,不同码率的列变换使用相同规格的ram单元,无论矩阵尺寸如何,ram单元每个地址空间都按照存储6个llr设计,利用移位寄存器满足不同码率下校验比特数据对存储单元的要求,使用较少的ram资源即能满足要求,资源利用率高。
[0067]
现有的处理方式的读写ram的操作在fpga上实现较为复杂,往复读写ram、对ram位宽上的部分覆写与读取等操作需使用大量的数字电路。本方案中使用两级寄存器与ram配合将步骤优化分解为多个步骤,在移位寄存器输入只需要一级两输入选择器mux2(lut3)与抽头位置处的输入选择器mux,适合在fpga平台上实现。
[0068]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0069]
本领域技术人员不难理解,本发明包括上述说明书的发明内容和具体实施方式部分以及附图所示出的各部分的任意组合,限于篇幅并为使说明书简明而没有将这些组合构成的各方案一一描述。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0070]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围
由所附权利要求及其等同限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1