一种ldpc-cc高速译码器的制造方法_2

文档序号:9754068阅读:来源:国知局
进行变量节点更新,该变量节点更新跨越2个时钟周期;在第9个时钟周期进 行当前译码输出,输出跨越2个时钟周期;当前译码输出开始后延时一个时钟周期作为下一 处理器的输入。
[0042] 有益效果:
[0043] 1、本发明采用折叠技术,通过合理划分寄存器和存储器资源使用,使得译码器占 用的硬件逻辑资源显著减少,同时又尽最大可能合理利用存储器资源。
[0044] 2、本发明提出一种译码时序,考虑双端口 RAM特性,即能够在同一时钟周期下同时 进行读写操作,将2个处理器分时复用一套RAM,通过将2个处理器的输入错开一个时钟周 期,可以使得RAM资源减少一半。
【附图说明】
[0045] 图1 一码率R = b/c的LDPC-CC校验矩阵;
[0046] 图2-LDPC-CC流水线式译码器结构;
[0047] 图3-LDPC-CC典型处理器存储结构;
[0048]图4 一使用折叠技术后,LDPC-CC处理器存储结构;
[0049] 图5-LDPC-CC处理器译码时序;
[0050] 图6-LDPC-CC译码器结构图。
【具体实施方式】
[0051] 下面结合附图并举实施例,对本发明进行详细描述。
[0052] 实施例1、
[0053] 假设节点并行因子为P,则表示在同一时刻进行p个校验节点更新,根据移位过程 可知,此时每个时刻每条链路应该往后移动P个位置,为此我们将链路进行折叠,折叠后如 图4所示。此时每条链路相应折叠成P条支链,折叠后的支链每个时刻只需后移1个位置。折 叠后支链分布情况可通过以下方法确定:
[0054] 假设采用并行因子3,则在同一时刻进行3个校验节点更新,此时对应奇偶校验多 项式如下:
[0055] D2(D6+D3+D°)X(D)+D2(D 5+D2+D°)P(D)=0
[0056] D1(D6+D3+D°)X(D)+D1(D 5+D2+D°)P(D)=0 (5)
[0057] D0(D6+D3+D0)X(D)+D0(D 5+D2+D°)P(D)=0
[0058] D为移位延时。
[0059] 并行因子为P
[0060] 令X = D3,则可重新化为
[0061 ] (X2D2+XD2+D2)X(D) + (X2D+XD+D2)P(D) =0
[0062] (X2D+XD+D1)X(D) + (X2+X+D1)P(D)=0 (6)
[0063] (X2+X+D°)X(D) + (XD2+D2+D°)P(D) =0
[0064] 其中(Da,Xe)(a<p)表示在第α支链,第β时刻。为利于描述,我们将图4的支链名称 重新命名,原来的第a支链更改为第ρ-α支链。
[0065] 观察图4可知,在每条支链中,有一部分连续空间,这些空间只是做简单的移位操 作,此时可以使用存储器RAM来模拟移位过程,减少硬件逻辑资源。
[0066] 对于所有支链,按照如下查找步骤查找获得RAM存储部分,除RAM存储部分外,其余 部分存于寄存器:
[0067] 步骤1、对于每条支链,舍去其中的如下位置:第一个位置、校验节点更新所需消息 处及其前后2个位置、最后一个位置;在剩余位置中找出该条支链的最长连续部分,作为该 支链中RAM可用部分;
[0068] 步骤2、将步骤1中得到所有支链中RAM可用部分,将所有可用部分按照其长度值从 小到大排序,计算每种长度值Li~Lk对应可用部分的个数Cdk为长度值的个数;以p为 计数值,P的初始取值为1,;
[0069] 步骤3、当CP为0时转入步骤4;若CP不为0,执行如下判断:
[0070] 获取满足如下条件的m值:CP+…+CP+m < m,且CP+'"+CP+m+1 >m;将LP+1~LP+m对应的 支链的RAM可用部分截取SLP,并将CP+1~CP+m清零;将1^ +1对应的前ηι-((:Ρ+···+(:Ρ+ω)条支链 的RAM可用部分截取为L P,并将CP+m+1更新为心+…+心+^-瓜,其中n=w/i,叫=?x「C;,/q,i为 信息量化比特,w为RAM最大数据位宽,「1表示向上取整;
[00川步骤4、判断p是否等于k,若是,则该查找步骤结束,否则p自增1,返回步骤3。
[0072] 实施例2、在实施例1给出的译码器的基础上,根据译码流程知,节点更新所需消息 在同一时刻取得,根据CNU更新公式(1)知,该单元关键在于求得|L( qiy)|-y最小值和次最 小值,该过程逻辑级数大,延时长,是处理器的关键路径。如果CNU更新在一个时钟周期内完 成,则最大时钟频率受制于关键路径无法提尚。
[0073] 本实施例提出一种新的译码器处理时序,该方法将节点更新单元设置为多周期路 径,在不显著影响译码器吞吐量的前提下,重新安排时序,使得2个处理器可以分时复用一 套RAM,使得RAM资源减少一半。
[0074] 图5表示处理器译码时序。在图5中,SHIFT表示移位;RE_WR表示将CNU更新的数据 重新写回,此时由于中间跨了一个移位过程,因此写入的是原位置的下一地址;RD表示RAM 读取过程,WR表示RAM写入过程;INPUT表示处理器输入;OUT表示处理器输出。
[0075] 在图5中,每个时钟周期下RAM只进行读或写操作。考虑双端口RAM特性,即能够在 同一时钟周期下同时进行读写操作,将2个处理器分时复用一套RAM,通过将2个处理器的输 入错开一个时钟周期,可以使得RAM资源减少一半。此时,对应处理器译码时序如图5所示。 [0076] 时序处理方法如下:
[0077] Stepl、2p个信道消息以及V2C消息作为处理器的输入数据,输入过程共跨越2个时 钟周期;在这2个时钟周期中,其中的第1个时钟周期取得移位过程所需的数据,并在第2个 时钟周期完成移位操作;
[0078] Step2、在第3个时钟周期进行校验节点更新单元CNU更新,校验节点更新单元CNU 更新跨越2个时钟周期;CNU更新完成后,需要将更新后的数据写到其原位置的下一地址处; [0079] Step3、在第6个时钟周期进行变量节点更新单元VNU更新;
[0080] Step4、在第8个时钟周期进行当前译码输出;当前译码输出作为下一处理器的输 入,在第9个时钟周期进行下一处理器的输入。
[0081] 实施例3、本实施例中所采用的译码结构为LDPC-CC高速译码器结构,如图6所示, 其中CLK_DATA表示外部数据输入时钟和输出时钟,CLK_DEC表示译码时钟。译码器包括输入 缓冲模块、消息缓冲模块、处理器模块、校验模块、控制模块和输出模块。
[0082] 输入缓冲模块以乒乓操作连续接收外部输入的数据帧。
[0083] 消息缓冲模块用于存储最后一个处理器输出的信道消息或者变量节点传递给校 验节点的消息。
[0084] 校验模块判断译码得到的码字是否正确,控制译码是否终止。
[0085] 控制模块控制各个模块之间的信号传递。
[0086 ]输出模块输出译码的最终判决比特。
[0087] 处理器模块,用于译码过程中的各种运算。该译码器将几个处理器合成一组,每组 迭代完成之后,才进行下一组迭代。处理器组成员个数越多,译码器的吞吐量越大,同时占 用的资源也越多。
[0088] 该译码器的工作流程为:输入缓冲模块与消息缓冲模块的输出端连接至数据选择 器MUX,MUX在第一轮译码中选择输入缓冲模块的输出作为处理器组的输入,之后的其他轮 次译码选择消息缓冲模块的输出作为处理器组的输入。处理器组中包括顺次连接的多个处 理器,处理器组对数据帧进行译码操作后,输出的译码结果一方面输入至消息缓冲模块进 行缓冲、另一方面输入至硬判决模块,经硬判决模块判决后的译码结果输入至输出缓冲模 块,校验模块同时对经硬判决模块的判决后的译码结果进行校验,并将校验结果发送至控 制模块,若译码结果满足校验模块,则控制模块则发出使能信号至输出缓冲模块的使能端 以使能输出该译码结果,若译码结果不满足校验模块,则发送使能信号至消息缓冲模块以 使能下一轮译码操作。
[0089] 实施例4、本实施例以IEEE 1901标准推荐的1/2码率LDPC-CC为实例,其奇偶校验 多项式如下:
[0090] k = 0,(D214+D185+D°)X(D) + (D215+D145+D0)P(D)=0
[0091] k = 1, (D160+D62+D°)X(D) + (D206+D127+D°)P(D) = 0 (7)
[0092] k = 2,(D196+D143+D0)X(D) + (D211+D119+D°)P(D)=0
[0093] 其中沽=加〇(13,该码是规则(3,6)码,其周期了 = 3,存储深度吣=215。实施中,信 息量化比特i = 6,并行因子p = 6,RAM最大数据位宽w = 36。
[0094] 步骤1:确定处理器的内部存储结构
[0095] 将存储结构分为8个部分,分别对应信息节点信道消息存储、信息节点消息1存储, 信息节点信息2存储,信息节点信息3存储;监督节点信道消息存储、监督节点消息1存储,监
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1