LDPC码数据分配通用模块设计方案

时间:2012-12-02来源:网络

增加了通用定位模块对CNU的结构也有所影响。文献中曾给出CNU运算结果的四维存储方法,存储的信息包括最小值,次小值,最小值的位置和符号位,该存储方法大大节约了存储器开销。然而当每个循环子矩阵中不止有一组1的时候,采用了通用化的定位模块,从存储器中读出的数据也增加了一位“定位位”,此时的CNU结构需要发生改变,来适应做出的调整。具体变化如图7所示。

h.JPG


图中的输入端数据的头部都加入了一位“定位位”,该位不参与CNU的比较运算过程,因此单独将改为取出,在图中最下方标记出来。
若每个循环子矩阵中有两组1,使用图7中的CNU进行运算的时候,CNU的输入端总是把每个列块对应的两个M存储器中的存储器1连接在比较器的上方接口,存储器2连接在比较器的下方接口,例如D000连接第一列块的存储器1,D001连接第一列块的存储器2。这样进行的排列在“位置标记”模块的输出端可以得到最小值的位置是在D000~D111中的哪一个。然后将这一输出前加上该列块的“定位位”信息进行存储,这一行数据的其他“定位位”信息全部删除。

i.JPG


在垂直运算的过程中,需要利用上述信息确定求列和时参与运算数据的具体位置。列运算的实现方案如图8所示。现在假设进行循环子矩阵的第一列的列运算,需要得到的信息是第1列两个数据的值。下面以第2行第1列的数据为例进行说明。
第2行的数据经过水平运算后存储在R存储器中的对应位置上,该位置存储信息的格式如图中最左侧所示。若水平运算求得的最小值不在该子矩阵的列块范围内,那么该子矩阵中所有的数据全部以该行最小值输出参与垂直运算。
但是若水平运算求得的最小值在该子矩阵的列块内,那么就需要用“穿越”的方法确定所需数据在该列块中是水平方向上的第几个数据,确定了这一点后,就能够利用水平运算的结果中的“定位位”来判断该值是最小值还是次小值了。

j.JPG


从整个实现过程中可以看出,陔通用模块引入之后,可以通过流水的操作来消除对速度的影响,而且该模块的引入没有对存储资源构成任何多余的消耗。
另外从该方法的实现过程可以看出,该方法适用于BP算法、最小和算法以及最小和算法的改进算法,所以该方法也具有良好的算法通用性。
通过ISE中Xinlin公司V5-330芯片上的仿真可以看出该方法的资源消耗情况。时钟频率120 MHz。

6 结束语
本章还介绍了通用化模块的设计方法,针对循环子矩阵中不止有一组1的情况,利用了校验矩阵中循环子矩阵的自身特点,设计了能够自动识别1排列情况的模块,以利于垂直运算过程中自动调用水平运算的结果。该模块的加入不会对译码速度和存储资源造成任何消耗,而且有助于未来成熟高效地开发高速译码设备。

1 2 3 4

关键词: LDPC 通用 准循环 数据分配

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版