掌桥专利:专业的专利平台
掌桥专利
首页

一种消除等待周期的QC-LDPC改进译码器

文献发布时间:2023-06-19 18:37:28


一种消除等待周期的QC-LDPC改进译码器

技术领域

本发明属于通信技术领域,具体涉及一种消除等待周期的QC-LDPC改进译码器。

背景技术

随着信息技术水平的不断发展,低密度奇偶校验码(Low Density Parity CheckCodes,LDPC)凭其系统低复杂度、低错误平层等优势应用于多种通信场合。准循环QC-LDPC(Quasi-Cyslic Low-Density Parity-Check Codes)码的准循环结构使其适用于高吞吐量和低时延的系统,目前为了加快译码收敛速度,大多会采用分层译码,上一层更新完成后下一层即能用到最新更新的概率信息。

现有的QC-LDPC译码方案中,对于解决由基矩阵行重变化和层与层间数据的读写冲突引入的等待周期,主要有以下方式。

第一种,解决基矩阵行重变化引起的等待周期。QC-LDPC的校验矩阵由循环置换矩阵(Circulant Permutation Matrix,CPM)或行重不为1的循环方阵和全零方阵组成,通常将方阵的大小作为一层进行分层译码。在分层译码时,由行重较大的一层到行重较小的一层进行校验节点更新时,一层的校验节点信息还未更新输出完毕,中间计算值就被下一层计算值冲刷,造成更新数据错误,添加等待周期可以有效避免这种情况。为了消除等待周期,通常是加入解耦合先入先出(First Input First Output,FIFO)存储器,来暂存一层中间计算值,在校验节点消息分配时读出FIFO的数据。

第二种,处理层与层间数据访问冲突引入的等待周期。添加标志信号,来判断用来计算V2C消息的对数似然比(Log-Likelihood Ratio,LLR)是否是最新的,若为最新,更新消息即为

如图1所示,引入的outofdate标志信号,来标记所求出的V2C消息用到的LLR是否是最新的,若是最新的,则FIFO缓存V2C消息,若不是最新的,则缓存负的C2V消息。doPatch信号与outofdate信号标志条件相同,标志着更新完成后节点后验信息的计算方式。

图1所示的LLR RAM由两个简单双端口RAM组成,一个用来译当前码字,称作译码存储器,另一个用来读取译码码字及写下一个码字,称为缓冲内存。在后验概率LLR消息写入时,将判断要写入的LLR是否已经读取了下一层计算的内容,若已经读取,则LLR也会写入到缓冲内存中,这时,缓冲内存的写端口就无法用于下一码字的写操作。

第二种方式,在解决层与层之间数据访问冲突引入的等待周期时,标志信号的计算及双端口RAM的写操作判断,会增加系统计算复杂性,多码可选的译码器需存储各个码的标志信号,不具备良好的灵活性,图1所示的LLR RAM中缓冲内存进行写入操作时,无法进行下一码字的写操作,增加了系统控制的复杂性。

发明内容

为解决现有技术中存在的上述问题,本发明提供了一种消除等待周期的QC-LDPC改进译码器,降低了计算复杂度,无需标志信号的计算、存储,提升了系统的灵活性,同时又能消除等待周期,提升系统的吞吐量;运用两个真实双端口RAM对初始信道信息与更新的节点后验概率信息进行乒乓存取,可以节省帧与帧间初始信道消息缓存时间,进一步提升系统吞吐量,具有良好的硬件利用率。

本发明的目的可以通过以下技术方案实现:

一种消除等待周期的QC-LDPC改进译码器,包括后验消息存储模块、-C2V FIFO、C2V_RAM、V2C_signs FIFO、置换模块、计算模块、FIFO缓存模块、C2V消息恢复模块和逆置换模块;

所述后验消息存储模块包括llr_ram_0和llr_ram_1两个真实双端口RAM,用于两帧码字译码时初始信道消息及更新的节点后验消息乒乓存取;

所述C2V_RAM,用于存储上次迭代的C2V消息及当前迭代过程中更新的C2V消息;

所述-C2V FIFO,用于缓存负的由C2V_RAM读取到的C2V消息;

所述置换模块,用于将节点V2C消息序列由按照变量节点的顺序变为按照对应校验节点顺序依次排列;

所述V2C_signs FIFO,用于将计算完的V2C消息取符号值缓存到V2C_signs FIFO中,分配C2V消息时,从V2C_signs FIFO中读取符号值计算C2V消息的符号值;

所述计算模块,用于根据一层的V2C消息,得到一层CPM中各行的最小值、次小值以及符号异或值,并记录最小值所在的列位置;

所述FIFO缓存模块,用于将计算模块得到的最小值、次小值、符号异或值及最小值所在的位置缓存到FIFO缓存模块中;

所述C2V消息恢复模块,用于根据FIFO缓存模块及V2C_signs FIFO中的值输出更新C2V消息;

所述逆置换模块,用于更新的C2V消息序列由按照校验节点的顺序变为按照对应变量节点的顺序进行排列。

作为本发明的一种优选技术方案,所述llr_ram_0和llr_ram_1通过ping_pong信号指示,来对两帧码字间的初始信道消息与更新后的节点后验概率消息进行乒乓存取;

所述两个真实双端口RAM的宽度为Z×Width_APP_LLR,深度为N/Z,Z为组成QC-LDPC校验矩阵的CPM的大小,Width_APP_LLR为一个节点的后验概率消息宽度,N为QC-LDPC的码长。

作为本发明的一种优选技术方案,所述C2V_RAM的宽度为Z×Width_C2V_LLR,从第一行开始只存储CPM的C2V消息,深度为QC-LDPC码基矩阵的总行重,Width_C2V_LLR为一个节点的C2V消息宽度。

作为本发明的一种优选技术方案,所述置换模块与逆置换模块由桶形移位器构成,用于实现向左循环移位的功能。

作为本发明的一种优选技术方案,所述V2C_signs FIFO宽度为Z,深度为QC_LDPC基矩阵行重的最大值。

作为本发明的一种优选技术方案,所述计算模块比较的是V2C消息的绝对值。

作为本发明的一种优选技术方案,所述FIFO缓存模块的宽度为:

Width_sign+Width_min0+Width_idx0+Width_min1

其深度不大于

作为本发明的一种优选技术方案,所述C2V消息恢复模块输出更新C2V消息的方法为:

根据FIFO缓存模块中最小值所在的列位置进行分配,若最小值所在的列位置为所分配的C2V消息需要传输的列块,则分配次小值,反之则分配最小值,更新C2V消息的符号值由FIFO缓存模块中的sign与V2C_signs FIFO输出的V2C消息符号值异或得到。

作为本发明的一种优选技术方案,所述后验消息存储模块更新后的节点后验概率消息计算公式为:

其中,

本发明的有益效果为:

本发明提供的一种消除等待周期的QC-LDPC改进译码器,计算复杂度较低,能够消除由行重变化及层与层间地址读写冲突引入的等待周期,在系统结构不增加额外计算的情况下,能有效提升系统的硬件利用率与灵活性,减少存储数据,提高译码器的吞吐量,同时运用两个真实双端口RAM对初始信道信息与更新的节点后验概率信息进行乒乓存取,可以节省帧与帧间初始信道消息缓存时间,进一步提升系统吞吐量,具有良好的硬件利用率,可用于高速率高吞吐量的通信场合。

附图说明

为了便于本领域技术人员理解,下面结合附图对本发明作进一步的说明。

图1为现有可消除等待周期的译码器架构示意图;

图2为本发明改进后的译码器架构示意图;

图3为本发明中置换模块的结构示意图。

具体实施方式

为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。

请参阅图1-3,一种消除等待周期的QC-LDPC改进译码器,包括后验消息存储模块、-C2V FIFO、C2V_RAM、V2C_signs FIFO、置换模块、计算模块、FIFO缓存模块、C2V消息恢复模块和逆置换模块;

所述后验消息存储模块包括llr_ram_0和llr_ram_1两个真实双端口RAM,用于两帧码字译码时初始信道消息及更新的节点后验消息乒乓存取,即llr_ram_0(llr_ram_1)在存取一帧码字的更新的节点后验消息时,llr_ram_1(llr_ram_0)在存储另一帧码字的初始信道消息;

所述C2V_RAM,用于存储上次迭代的C2V消息及当前迭代过程中更新的C2V消息,一帧码字首次迭代译码时输出的C2V消息置0;

所述-C2V FIFO,用于缓存负的由C2V_RAM读取到的C2V消息;

所述置换模块,用于将节点V2C消息序列由按照变量节点的顺序变为按照对应校验节点顺序依次排列,V2C消息序列是由循环方阵的大小个节点V2C对数似然比消息组成,V2C消息由后验消息存储模块输出的节点后验概率消息与负的C2V_RAM中上次迭代存储的C2V消息相加得到;

所述V2C_signs FIFO,用于将计算完的V2C消息取符号值缓存到V2C_signs FIFO中,分配C2V消息时,从V2C_signs FIFO中读取符号值计算C2V消息的符号值;

所述计算模块,用于根据一层的V2C消息,得到一层CPM中各行的最小值、次小值以及符号异或值,并记录最小值所在的列位置,分别对应图2中的min0、min1、sign及idx0;

所述FIFO缓存模块,用于将计算模块得到的最小值、次小值、符号异或值及最小值所在的位置缓存到FIFO缓存模块中;

所述C2V消息恢复模块,用于根据FIFO缓存模块及V2C_signs FIFO中的值输出更新C2V消息;

所述逆置换模块,用于更新的C2V消息序列由按照校验节点的顺序变为按照对应变量节点的顺序进行排列,C2V消息由C2V消息恢复模块进行分配。

具体的,所述llr_ram_0和llr_ram_1通过图2中的ping_pong信号指示,来对两帧码字间的初始信道消息与更新后的节点后验概率消息进行乒乓存取;所述两个真实双端口RAM的宽度为Z×Width_APP_LLR,深度为N/Z,Z为组成QC-LDPC校验矩阵的CPM的大小,Width_APP_LLR为一个节点的后验概率消息宽度,N为QC-LDPC的码长。

本实施例中,译码刚开始时,ping_pong信号为0,如图2所示,llr_init即初始信道信息存入llr_ram_0中,第一帧码字初始信道信息缓存完毕时,ping_pong信号取反为1,此时,后验消息存储模块读取llr_ram_0缓存的第一帧码字的初始信道信息开始译码,译码过程中,更新的节点后验概率消息即llr_updated存入llr_ram_0,第二帧码字初始信道信息存入llr_ram_1。第一帧码字迭代译码结束时,第二帧码字的初始信道LLR消息也已经存储完毕,ping_pong信号取反为0,后验消息存储模块读取llr_ram_1缓存的第二帧码字的初始信道信息开始译码,译码过程中,更新的节点后验概率消息即llr_updated存入llr_ram_1,进行迭代译码,第三帧码字初始信道信息存入llr_ram_0。第二帧码字迭代译码结束时,第三帧码字的初始信道LLR消息也已经存储完毕,ping_pong信号再取反为1,如此进行帧与帧间初始信道信息与更新节点后验概率信息的乒乓存取操作。

具体的,所述C2V_RAM的宽度为Z×Width_C2V_LLR,从第一行开始只存储CPM的C2V消息,深度为QC-LDPC码基矩阵的总行重,Width_C2V_LLR为一个节点的C2V消息宽度。

本实施例中,所述的C2V_RAM模块,采用一个简单双端口RAM存储C2V消息,读使能在更新模块开始前有效,读出的C2V消息用来计算V2C消息,更新模块结束后更新的C2V消息重新写入C2V_RAM。

所述置换模块与逆置换模块由桶形移位器构成,用于实现向左循环移位的功能。

本实施例中,如图2所示,置换模块的输入即为后验消息存储模块输出的节点后验概率信息(llr_rd1)加上负的C2V_RAM输出的C2V消息

所述V2C_signs FIFO宽度为Z,深度为max_row_weight,即QC_LDPC基矩阵行重的最大值。

所述计算模块比较的是V2C消息的绝对值。

所述FIFO缓存模块的宽度为符号异或值、最小值与位置、次小值的宽度总和,即Width_sign+Width_min0+Width_idx0+Width_min1,其深度不大于

具体的,所述C2V消息恢复模块输出更新C2V消息的方法为:

根据FIFO缓存模块中最小值所在的列位置进行分配,若最小值所在的列位置为所分配的C2V消息需要传输的列块,则分配次小值,反之则分配最小值,更新C2V消息的符号值由FIFO缓存模块中的sign与V2C_signs FIFO输出的V2C消息符号值异或得到。

本实施例中,C2V消息恢复模块分配校验节点信息时读取FIFO缓存模块内的值,在一层的校验节点消息分配完毕后再开始读取下一层的计算信息。

具体的,所述后验消息存储模块更新后的节点后验概率消息计算公式为:

其中,

本实施例中,

本发明的工作原理及使用流程:

以第一帧码字译码为例,译码初始时,ping_pong信号为0,如图2所示,llr_init即初始信道信息存入llr_ram_0中,第一帧码字初始信道信息缓存完毕时,ping_pong信号取反为1,此时,后验消息存储模块读取llr_ram_0缓存的第一帧码字的初始信道信息开始迭代译码,如图2的llr_rd1所示;迭代译码过程中,更新的节点后验概率消息即llr_updated存入llr_ram_0,第二帧码字初始信道信息存入llr_ram_1。第一次迭代时,it=1,C2V_RAM中的C2V消息序列置0,llr_rd1作为节点后验概率消息和负的C2V_RAM中读出的

V2C消息经过置换模块将节点V2C消息序列由按照变量节点的顺序变为按照对应校验节点顺序依次排列,经置换后的V2C消息一路将符号值缓存到V2C_signs FIFO中,一路输入到计算模块。计算模块计算一层中置换后的V2C消息的最小值、次小值及符号异或值,记录最小值所在的列位置,输出到FIFO缓存模块进行缓存,如图2所示,最小值为min0,次小值为min1,一层V2C消息的符号异或值为sign,最小值所在的列位置为idx0。

C2V消息恢复模块通过之前缓存的V2C_signs FIFO中数据与FIFO缓存模块中数据进行分配C2V消息,若最小值所在的列位置为所分配的C2V消息传输的列块,则分配次小值,反之则分配最小值,更新C2V消息的符号值由FIFO缓存模块中的sign与V2C_signs FIFO输出的V2C消息符号值异或得到。分配的C2V消息通过逆置换模块将更新的C2V消息序列由按照校验节点的顺序变为按照对应变量节点的顺序进行排列,得到

第一帧码字译码结束时,第二帧码字的初始信道消息llr_init也存储完毕,ping_pong信号取反为0,后验消息存储模块读出llr_ram_1缓存的第二帧码字的初始信道消息进行译码,第二帧码字的更新节点后验概率消息存入llr_ram_1中,第三帧码字的初始信道消息llr_init将写入llr_ram_0,实现后验消息存储模块利用ping_pong信号对两帧码字译码时初始信道消息及更新的节点后验消息的乒乓存取。

本发明采用分层最小和译码,块间串行、块内并行的方式,以循环矩阵的大小作为一层,最小和算法可运用归一化最小和算法及偏移最小和算法,通过添加解耦合FIFO缓存模块来暂存一层中V2C消息的最小值相关计算信息,在校验节点消息分配时读出FIFO缓存模块的数据,分配完毕后再读取FIFO缓存模块预存的下一层的中间计算值,进行下一层的校验节点更新,这样就消除了由基矩阵行重变化引起的等待周期。

在解决层与层间数据访问冲突引入的等待周期时,改进思想是尽可能地用到最新更新的节点对数似然比信息,若用不到,则读取旧的节点信息,除去了现有结构标志信号的计算、存储,简化了译码架构。后验消息存储模块采用两个真实双端口RAM进行乒乓读写操作,两个真实双端口RAM分别操作不同帧的码字,增加了译码器的吞吐量。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

技术分类

06120115631828