資源描述:
《ldpc碼譯碼器通用模塊的fpga設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、LDPC碼譯碼器通用模塊的FPGA設(shè)計摘要在介紹LDPC(LowDensityParityCode)低密度校驗碼的基本迭代譯碼原理的基礎(chǔ)上,針對FPGA技術(shù),專門設(shè)計了譯碼器中通用的變量節(jié)點以及校驗節(jié)點處理單元,其中分別包括全并行與全串行的實現(xiàn)方式。編譯結(jié)果表明,這些模塊可以實現(xiàn)高速的處理速度,以及占用合理的硬件資源。【關(guān)鍵詞】低密度校驗碼FPGA串行并行1引言LDPC碼(LowDensityParityCheckcode)是由Gallagher在1962年于其博士論文所發(fā)表,只不過當時由于VLSI技術(shù)尚未
2、成熟,所以逐漸被人們所遺忘,但在90年代后由于VLSI技術(shù)的快速發(fā)展LDPCcode又逐漸的被人們所廣為討論。LDPC碼的譯碼算法,是一種基于稀疏矩陣的并行迭代譯碼算法,運算量要低于Turbo譯碼算法,并且由于結(jié)構(gòu)并行的特點,在硬件實現(xiàn)上比較容易。因此在大容量通信應(yīng)用中,LDPC碼更具有優(yōu)勢。通過仿真發(fā)現(xiàn),專門設(shè)計的LDPC碼在中場度碼長時,具有優(yōu)越的糾錯性能,是距離香農(nóng)限最近的碼字之一,而且有較低的無碼平層(errorfloor)。因此對LDPC碼譯碼器的硬件實現(xiàn),已經(jīng)成為一個很有價值的研宄方向。本文擬在
3、介紹譯碼和積算法(SumProductAlgorithm,簡稱SPA)的基礎(chǔ)上,分別對譯碼器變量節(jié)點處理單元和校驗節(jié)點進行分析,并分別進行串行以及并行的硬件實現(xiàn),最后根據(jù)綜合結(jié)果對串行以及并行實現(xiàn)方式進行資源比較。2LDPC碼的軟迭代譯碼給定一個LDPC碼字(n,k),設(shè)發(fā)送碼字向量為,經(jīng)過BPSK調(diào)制后得到的向量為(調(diào)制規(guī)則),信道模型采用二元輸入連續(xù)輸出平穩(wěn)無記憶AGWN信道模型,噪聲服從高斯分布,接收向量為。符號說明如下:,以下所有的討論都是建立在對數(shù)域LLR之上的。LPn:變量節(jié)點(BN)n的先驗信
4、息,由初始信道似然指得來。Lrmn:從校驗節(jié)點(CN)m傳遞給變量節(jié)點(BN)n的信息。Lqnm:從變量節(jié)點n傳遞給校驗節(jié)點m的信息。和積算法譯碼的步驟如下:初始化:;(1)迭代部分:(1)計算從CNm到BNn的信息:其中以及計算從BNn到CNm的信息:(2)達到最大迭代次數(shù)后,譯碼輸出:3變量節(jié)點運算單元的實現(xiàn)變量節(jié)點運算單元的主要作用是計算某個變量節(jié)點(BN)傳遞給與他相鄰的校驗節(jié)點(CN)的LLR值。計算過程如公式(3)所示。假設(shè)某個變量節(jié)點的度為O,也就是有w個校驗節(jié)點與其相鄰,則該變量節(jié)點應(yīng)分別對
5、這w個校驗節(jié)點返回《個值,即完成《次公式(3)的運算,顯然存在著很多次的重復(fù)加法,假如直接采用這種實現(xiàn)方案的話,將占用很多的資源。觀察公式(3)以及公式(4),顯然有下面的關(guān)系:(6)由公式(6),很自然的想到,先計算出總和,繼而在進行判決的同時,減去相應(yīng)的Lnnn,依次得到o個返回值,一舉實現(xiàn)變量節(jié)點消息更新與判決兩個功能,而且節(jié)省資源。計算LQn的過程,又可以分為全并行與全串行實現(xiàn),因此整個變量節(jié)點運算單元又分為并行和串行兩種實現(xiàn)方式,見圖1和圖2所示。變量節(jié)點運算單元并行實現(xiàn)時,需要一個同時計算《個加
6、數(shù)的加法器,與此同時,將這《個加數(shù)進行寄存,在計算出和LQn后,并行《路加法,實現(xiàn)值的返回。這樣做的好處是,可以實現(xiàn)非常高的吞吐速率,代價是多使用了很多的加法器(二進制的減法可以使用加法器來實現(xiàn),本文中加法器和減法器統(tǒng)稱加法器)。與變量節(jié)點的并行實現(xiàn)不同,串行實現(xiàn)時,充分利用了已有的硬件資源。除去sum寄存器以及FIFO寄存器外,只使用了兩個加法器,而且這兩個加法器都只有兩個輸入端口,直接調(diào)用FPGA芯片廠商提供的IP核即可實現(xiàn),綜合后,亦有很高的運算速度。基于圖2,返回的o個值,將以串行方式依次輸出;串行
7、實現(xiàn)的另一個好處是,當?變化時,本模塊仍然可不做任何改動的調(diào)用,這一點是并行實現(xiàn)所無法比擬的。4校驗節(jié)點運算單元的實現(xiàn)校驗節(jié)點運算單元的主要作用是計算某個校驗節(jié)點(CN)傳遞給與他相鄰的變量節(jié)點(BN)的LLR值。計算過程如公式(2)所示。與變量節(jié)點的實現(xiàn)方式類似,我們?nèi)匀辉O(shè)計了先計算出總的“和”,繼而“減去”相應(yīng)的,得到多個返回值。其中“加法”和“減法”運算的規(guī)則如下:我們定義這樣的“加法”運算為廣義加法,相應(yīng)的“減法”運算為廣義減法。類似的,根據(jù)求“和”的實現(xiàn)方式不同,校驗節(jié)點運算單元的實現(xiàn)也有全并行和
8、全串行兩種實現(xiàn)方式。見圖3和圖4所示。從圖3與圖4的比較,很顯然看出校驗節(jié)點運算單元的全并行實現(xiàn)與全串行實現(xiàn)的區(qū)別,幾乎與變量節(jié)點實現(xiàn)時并行與串行的區(qū)別相同,即并行實現(xiàn)時,占用了較多的硬件資源,但是可以實現(xiàn)很高的時鐘頻率,進而實現(xiàn)很高的數(shù)據(jù)吞吐量,或者在要求的數(shù)據(jù)吞吐速率下,以較低的時鐘頻率實現(xiàn)設(shè)計,簡而言之即“面積換速度”;串行實現(xiàn)時,充分利用了已有的資源,因此占用資源較少,但要求很高的吞吐速率時,需要提高時鐘