LDPC碼數(shù)據(jù)分配通用模塊設(shè)計(jì)方案
增加了通用定位模塊對(duì)CNU的結(jié)構(gòu)也有所影響。文獻(xiàn)中曾給出CNU運(yùn)算結(jié)果的四維存儲(chǔ)方法,存儲(chǔ)的信息包括最小值,次小值,最小值的位置和符號(hào)位,該存儲(chǔ)方法大大節(jié)約了存儲(chǔ)器開(kāi)銷。然而當(dāng)每個(gè)循環(huán)子矩陣中不止有一組1的時(shí)候,采用了通用化的定位模塊,從存儲(chǔ)器中讀出的數(shù)據(jù)也增加了一位“定位位”,此時(shí)的CNU結(jié)構(gòu)需要發(fā)生改變,來(lái)適應(yīng)做出的調(diào)整。具體變化如圖7所示。本文引用地址:http://m.butianyuan.cn/article/153700.htm
圖中的輸入端數(shù)據(jù)的頭部都加入了一位“定位位”,該位不參與CNU的比較運(yùn)算過(guò)程,因此單獨(dú)將改為取出,在圖中最下方標(biāo)記出來(lái)。
若每個(gè)循環(huán)子矩陣中有兩組1,使用圖7中的CNU進(jìn)行運(yùn)算的時(shí)候,CNU的輸入端總是把每個(gè)列塊對(duì)應(yīng)的兩個(gè)M存儲(chǔ)器中的存儲(chǔ)器1連接在比較器的上方接口,存儲(chǔ)器2連接在比較器的下方接口,例如D000連接第一列塊的存儲(chǔ)器1,D001連接第一列塊的存儲(chǔ)器2。這樣進(jìn)行的排列在“位置標(biāo)記”模塊的輸出端可以得到最小值的位置是在D000~D111中的哪一個(gè)。然后將這一輸出前加上該列塊的“定位位”信息進(jìn)行存儲(chǔ),這一行數(shù)據(jù)的其他“定位位”信息全部刪除。
在垂直運(yùn)算的過(guò)程中,需要利用上述信息確定求列和時(shí)參與運(yùn)算數(shù)據(jù)的具體位置。列運(yùn)算的實(shí)現(xiàn)方案如圖8所示?,F(xiàn)在假設(shè)進(jìn)行循環(huán)子矩陣的第一列的列運(yùn)算,需要得到的信息是第1列兩個(gè)數(shù)據(jù)的值。下面以第2行第1列的數(shù)據(jù)為例進(jìn)行說(shuō)明。
第2行的數(shù)據(jù)經(jīng)過(guò)水平運(yùn)算后存儲(chǔ)在R存儲(chǔ)器中的對(duì)應(yīng)位置上,該位置存儲(chǔ)信息的格式如圖中最左側(cè)所示。若水平運(yùn)算求得的最小值不在該子矩陣的列塊范圍內(nèi),那么該子矩陣中所有的數(shù)據(jù)全部以該行最小值輸出參與垂直運(yùn)算。
但是若水平運(yùn)算求得的最小值在該子矩陣的列塊內(nèi),那么就需要用“穿越”的方法確定所需數(shù)據(jù)在該列塊中是水平方向上的第幾個(gè)數(shù)據(jù),確定了這一點(diǎn)后,就能夠利用水平運(yùn)算的結(jié)果中的“定位位”來(lái)判斷該值是最小值還是次小值了。
從整個(gè)實(shí)現(xiàn)過(guò)程中可以看出,陔通用模塊引入之后,可以通過(guò)流水的操作來(lái)消除對(duì)速度的影響,而且該模塊的引入沒(méi)有對(duì)存儲(chǔ)資源構(gòu)成任何多余的消耗。
另外從該方法的實(shí)現(xiàn)過(guò)程可以看出,該方法適用于BP算法、最小和算法以及最小和算法的改進(jìn)算法,所以該方法也具有良好的算法通用性。
通過(guò)ISE中Xinlin公司V5-330芯片上的仿真可以看出該方法的資源消耗情況。時(shí)鐘頻率120 MHz。
6 結(jié)束語(yǔ)
本章還介紹了通用化模塊的設(shè)計(jì)方法,針對(duì)循環(huán)子矩陣中不止有一組1的情況,利用了校驗(yàn)矩陣中循環(huán)子矩陣的自身特點(diǎn),設(shè)計(jì)了能夠自動(dòng)識(shí)別1排列情況的模塊,以利于垂直運(yùn)算過(guò)程中自動(dòng)調(diào)用水平運(yùn)算的結(jié)果。該模塊的加入不會(huì)對(duì)譯碼速度和存儲(chǔ)資源造成任何消耗,而且有助于未來(lái)成熟高效地開(kāi)發(fā)高速譯碼設(shè)備。
評(píng)論