?

動態自適應低密度奇偶校驗碼譯碼器的FPGA實現

2015-10-31 07:37蘭亞柱楊海鋼
電子與信息學報 2015年8期
關鍵詞:碼長譯碼器碼率

蘭亞柱 楊海鋼 林 郁

?

動態自適應低密度奇偶校驗碼譯碼器的FPGA實現

蘭亞柱①②楊海鋼*①林 郁①

①(中國科學院電子學研究所可編程芯片與系統研究室 北京 100190)②(中國科學院大學 北京 100049)

在復雜深空通信環境中,自適應能力的強弱對低密度奇偶校驗(LDPC)碼譯碼器能否保持長期穩定工作具有重要影響。該文通過對DVB-S2標準LDPC碼譯碼器各功能模塊的IP化設計,將動態自適應理論參數化映射到各功能模塊中,實現動態自適應LDPC碼譯碼器的設計?;赟tratix IV系列FPGA的驗證結果表明,動態自適應LDPC譯碼器可以滿足不同碼率碼長及不同性能需求下的譯碼。同時,單譯碼通道可以保證譯碼數據信息吞吐率達到40.9~71.7 Mbps。

LDPC碼譯碼器;動態自適應;DVB-S2標準;FPGA

1 引言

DVB-S2是歐洲數字視頻廣播聯盟在2004年提出的第2代衛星數字視頻廣播通信標準。DVB-S2標準采用低密度奇偶校驗(Low Density Parity Check, LDPC)碼作為信道編碼的解決方案。

20世紀60年代初,LDPC碼首次被提出[1]。在后續數十年中,除了Tanner圖理論外,LDPC碼很少有進一步的實質性研究成果。90年中后期,文獻[2]通過一系列創新性研究,促使LDPC碼迅速成為信道編碼領域關注和研究的熱點。

在國內,文獻[3]對DVB-S2標準相同碼長、不同碼率的LDPC碼糾錯性能進行了對比分析,并未涉及硬件邏輯實現及驗證。文獻[4]針對DVB-S2標準LDPC碼的改進最小和譯碼算法,提出一種FPGA實現方案,但其在碼長及碼率靈活度方面不足。

在國外,文獻[5]基于DVB-S2標準LDPC碼提出一種可以支持所有碼率的LDPC譯碼器實現方案,但是該方案需要消耗的硬件邏輯存儲資源過大。為了有效降低對硬件邏輯存儲資源的消耗,文獻[6]通過有效降低LDPC碼譯碼器的并行度的方法,但該方法的代價是降低了譯碼器的整體譯碼數據吞吐率。

隨著我國在載人航天和探月工程等重大專項的深入發展,LDPC碼在未來深空通信領域將具有很高的應用價值。目前,國內學者對LDPC碼的研究結論往往是對某一算法的驗證或是特定結構LDPC碼的實現,難以普遍應用。面向DVB-S2標準LDPC碼在我國深空通信領域的應用,本文以FPGA為硬件邏輯平臺,完成動態自適應LDPC碼譯碼器的IP化設計實現及驗證。

2 核心算法及理論基礎

2.1 層次化修正最小和(Min-Sum, MS)算法

鑒于此,本文選取層次化修正MS算法作為動態自適應LDPC碼譯碼器硬件邏輯實現的基本迭代譯碼算法模型。

2.2 IP化設計思想

本文對LDPC碼譯碼器采用IP化設計思想,即利用IP核可重構配置性強的特點,對LDPC碼譯碼器進行硬件邏輯實現。LDPC碼譯碼器IP化設計思想主要包括(1)采用自上而下的方法對LDPC碼譯碼器系統進行功能模塊劃分;(2)利用自下而上的方法對各個功能模塊進行IP化設計實現;(3)對LDPC碼譯碼器參數化功能進行設計實現;(4)通過系統性功能驗證,完成LDPC碼譯碼器的設計。

LDPC碼譯碼器的整體硬件邏輯設計結構如圖1所示?;贗P化設計思想,將LDPC碼譯碼器劃分為4個相互獨立功能模塊以及參數配置模塊、控制模塊和信息輸出模塊。

圖1 LDPC碼譯碼器IP化模塊劃分結構

量化模塊負責將信道端接收到的浮點數據信息進行硬件量化處理及存儲。信息模塊主要包括校驗節點信息更新、變量節點信息更新。校驗節點更新主要由數值比特位運算模塊和符號比特位運算模塊構成。變量節點更新由比特位加法器構成。存儲模塊負責以360為基本因子,對校驗矩陣的地址進行存儲和循環調度。迭代模塊負責譯碼器的迭代數據信息檢測及反饋。參數配置模塊負責對譯碼器的各種參數進行配置??刂颇K負責對譯碼器的各個功能獨立的模塊進行調度控制。信息輸出模塊將迭代譯碼終止迭代后數據信息及有效標志位輸出。

2.3 動態自適應理論

本文采用的動態自適應理論包括動態主動自適應和動態被動自適應兩種。主動自適應主要為了保證譯碼器功能自適應,包括碼率碼長等。被動自適應主要為了保證譯碼器性能的自適應,包括譯碼精度、數據吞吐率等。

本文將動態自適應理論以IP化的設計思想融入LDPC碼譯碼器的設計中。按照圖1的模塊劃分,對功能上相互獨立的量化模塊、信息模塊、存儲模塊和迭代模塊等4個模塊進行動態自適應IP化設計。針對各個功能化模塊,IP化設計思想均會對其進行動態自適應理論方面的參數配置及標準映射。LDPC碼譯碼器IP化設計參數配置如圖2所示。

圖2 LDPC碼譯碼器IP化設計參數配置及映射標準

在對LDPC碼譯碼器進行IP化模塊劃分時,會對數據接口的位寬及控制接口的有效性進行參數化處理。在此基礎上,LDPC碼譯碼器IP化設計參數配置便可以通過數據接口位寬及控制接口有效性的不同設置,保證各功能模塊之間的功能性一致??傊?,通過IP化設計,動態自適應功能會通過各功能模塊之間及內部的合理配置而整體有效地體現出來。

3 動態自適應LDPC碼譯碼器的設計

3.1動態自適應量化模塊

層次化修正MS譯碼算法在硬件邏輯實現中,隨著迭代次數的遞增,變量節點信息會出現定點量化范圍的邊界飽和,嚴重影響譯碼性能。為了在量化邊界飽和與邏輯資源消耗間取得有效平衡,動態自適應量化模塊采用被動自適應方式處理初始化階段的數據量化,采用主動自適應方式處理迭代譯碼階段的數據量化。

動態自適應量化模塊的配置如圖3所示。初始化量化比特位數設置為8,其中,1 bit數據符號位1為正0為負,7 bit的數據大小值。保留位會給初始化量化提供兩種不同的配置選擇,(1)采用低位表示數據符號位的策略;(2)采用高位表示數據符號位的策略。

圖3 動態自適應量化模塊配置

3.2動態自適應信息模塊

層次化修正MS譯碼算法中,迭代譯碼需要存儲迭代信息的最小值和次最小值。

動態自適應信息模塊的配置1如圖4所示?;谠撆渲眯畔?,可以解壓出校驗節點傳遞給所有變量節點的信息。動態自適應信息模塊選取校驗矩陣的行重為30,與之相對應共有30 bit的符號位,對應傳遞給30個變量節點信息的符號。同時,選取最小值和次小值絕對值均采用5 bit整數和2 bit小數量化形式。

圖4 動態自適應信息模塊配置1

在迭代譯碼過程中,對碼長64800或16200的數據信息進行存儲,需要消耗64800(16200)×bit(為量化位寬)的硬件存儲資源。如果采用整體例化存儲資源的方式,譯碼器的系統時鐘最高可達151 MHz。為了提高譯碼器系統時鐘,動態自適應信息模塊采用被動自適應方式,對數據信息進行分布式存儲。

動態自適應信息模塊的配置3如圖5所示?;谠撆渲眯畔?,動態自適應信息模塊采用分布式例化存儲資源的方式時,即將64800深度的RAM分配為4塊深度為16320的RAM,而通過整體的RAM數據信息讀寫調度模塊,對4塊RAM進行讀寫管理,可以使譯碼器的系統時鐘最高可達182.5 MHz。

圖5 動態自適應信息模塊配置2

3.3動態自適應存儲模塊

在LDPC碼譯碼器中,動態自適應存儲模塊采用被動自適應方式處理采用碼率及碼長范圍的選擇,采用主動自適應方式處理實際譯碼過程中的碼率及碼長的確定。

動態自適應存儲模塊的配置如圖6所示。動態自適應存儲模塊以碼長為基準,將DVB-S2標準11種碼率的校驗節點地址在ROM中采用指針式分級存儲。在綜合編譯時,針對動態自適應存儲模塊配置參數進行不同的綜合適配,生成針對用戶設定不同碼率的可執行文件。

圖6 動態自適應存儲模塊配置

3.4動態自適應迭代模塊

在迭代譯碼過程中,如何有效地終止譯碼,是提高譯碼效率的關鍵。動態自適應迭代模塊中,采用被動自適應方式接收最大迭代譯碼次數,采用主動自適應方式檢測譯碼數據并控制終止譯碼。

動態自適應迭代模塊的配置如圖7所示。迭代譯碼次數表示最大迭代譯碼次數。迭代終止使能標志位表示動態自適應迭代模塊開啟主動自適應迭代功能。動態自適應迭代模塊可以保證在不進行重復編譯的條件下,動態檢測譯碼數據是否正確。當譯碼數據正確時,動態自適應迭代模塊會主動終止迭代譯碼。

圖7 動態自適應迭代模塊配置

4 動態自適應LDPC碼譯碼器的驗證與分析

4.1 譯碼器的實現分析

在Quartus II環境下,本文選用Stratix IV系列EP4SGX230KF40C4 FPGA作為硬件邏輯實現平臺,對譯碼器的邏輯資源耗用進行分析。其中,(1)通過動態配置文件,將譯碼器的功能自適應設置為64800碼長、1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10等11種碼率。(2)譯碼器設置最大迭代次數為10次。Quartus II綜合編譯結果顯示,譯碼器的硬件資源消耗為:ALM邏輯單元(5270)、寄存器(2300)、存儲塊(12941950 bit)。通過Time Quest分析,譯碼器的系統時鐘可以達到179.95~ 191.13 MHz。

4.2譯碼器的功能自適應驗證

本文采用ModelSim 10.1b環境,配合FPGA及Quartus II,對動態自適應LDPC碼譯碼器進行功能自適應驗證。其中,(1)通過動態配置文件,將譯碼器的功能自適應設置為64800和16200兩種碼長、1/5, 1/2, 7/9 3種碼率。(2)利用Quartus II和Stratix IV系列的EP4SGX230KF40C4 FPGA構建硬件驗證平臺。(3)在采用AWGN信道,利用Matlab R2012b構造碼長碼率不斷變化的隨機信道數據信息。(4)在FPGA硬件驗證平臺上,對LDPC譯碼器的功能自適應進行驗證。

通過SignalTap II對譯碼器的輸出數據信息與ModelSim 10.1b的功能仿真數據信息進行比對,進而可以確定譯碼器的功能正確性。同時,為了突出譯碼器的功能驗證的針對性和對比性,本文選用碼長為16200,碼率為1/5的LDPC碼,將動態自適應LDPC譯碼器的譯碼性能與在Matlab R2012b環境下浮點型迭代譯碼的譯碼性能進行對比分析。針對500幀譯碼數據信息,最大迭代次數為15次,譯碼性能的誤碼率及誤幀率如圖8所示。

圖8 蒙特卡洛實驗結果

由數據可知,動態自適應LDPC碼譯碼器的譯碼性能與Mtalab R2012b的浮點型迭代譯碼的譯碼性能已經相當接近,且隨著動態自適應LDPC碼譯碼器的硬件量化位寬的增大接近效果越好。以信噪比為1.5 dB時為例,硬件量化位寬為8 bit時,二者間約有半個數量級的差距。如果增加硬件量化位寬為12 bit時,動態自適應LDPC碼譯碼器可以取得和浮點型迭代譯碼相當接近的出色譯碼性能。

4.3譯碼器的性能自適應分析

動態自適應LDPC碼譯碼器的性能自適應主要包括譯碼精度、譯碼數據吞吐率的自適應能力。本文經過選用Stratix IV系列EP4SGX230KF40C4作為硬件邏輯實現平臺,利用Quartus II綜合編譯,借助TimeQuest得出硬件電路的系統時鐘,進而對譯碼器的數據吞吐率進行評估。譯碼器的數據吞吐率計算如式(1)所示。

當碼長為64800時,譯碼器的數據吞吐率評估結果如表1所示。其中,將每一種碼率組合分別進行10次綜合編譯而得出系統時鐘的平均值作為式(1)中所對應的系統時鐘。由評估可知,(1)系統時鐘隨著譯碼器所包含的碼率變多而有所下降,但影響不大約為10 MHz左右;(2)譯碼器的數據吞吐率最小為40.90 Mbps,最大為63.71 Mbps;(3)隨著動態譯碼迭代次數的增大,譯碼器的數據吞吐率會有所降低。按照相同評估原理,當碼長為16200時,譯碼器的數據吞吐率最小為45.46 Mbps,最大為71.67 Mbps。

表1譯碼器的數據吞吐率(iter=1)

需要指出的是,以上譯碼器的數據吞吐率均是在迭代次數為1的情況下得出。按照式(1),隨著迭代次數增加,譯碼器的數據吞吐率會逐漸降低。因此,如果需要獲得更高的數據吞吐率,可以選擇增加動態自適應譯碼器的數目。雖然該方法可以通過簡單的配置實現,但是其在提高數據吞吐率方面受到硬件邏輯資源的限制。在此情況下,式(1)可以進一步修正為:

4.4譯碼器動態自適應性能比較

為了對動態自適應LDPC碼譯碼器與現有的其他設計方案進行對比,本文選用從2008年到2014年間,文獻[11-15]分別提出的LDPC碼譯碼器的硬件邏輯實現方案為比較對象。針對各種方案實現的LDPC碼譯碼器自適應性能,進行比較的內容包括:可參數化配置、自適應范圍、自適應譯碼精度、自適應譯碼效率等方面。譯碼器自適應性能比較數據如表2所示。

表2譯碼器自適應性能比較

由數據可知,本文提出的動態自適應LDPC碼譯碼器,具有比較明顯的動態自適應功能優勢。文獻[11-13,15]均是將碼率碼長自適應功能的實現建立在特定LDPC碼校驗矩陣的基礎上。其中,文獻[13,15]更是利用基矩陣構建校驗矩陣的方案實現多種碼率碼長的自適應?;贒VB-S2標準LDPC碼譯碼器對應的校驗矩陣必須遵守DVB-S2標準,不宜被修正優化。文獻[14]與本文都未對標準校驗矩陣進行改變。不同的是,文獻[14]僅對碼率碼長自適應進行可參數化配置設計,而沒有涉及更為廣泛的自適應范圍。除此之外,文獻[16]提出了可重構LDPC碼譯碼器的ASIC實現。其中,可重構是通過對校驗矩陣的特征化存儲來實現,但是自適應能力未被充分考慮。

動態自適應LDPC碼譯碼器在整體自適應處理流程上比非自適應處理具有明顯優勢。具有動態自適應功能的LDPC碼譯碼器可以在譯碼環境因素發生改變時,自適應調整內部各模塊的功能,在不需要重新選擇LDPC碼譯碼器及FPGA綜合、編譯及配置可執行文件的情況下,順利完成對數據信息的迭代譯碼。非自適應處理在譯碼環境因素改變時,則需要重新進行LDPC碼譯碼器的選擇及FPGA綜合、編譯及配置可執行文件等處理。在耗用大量時間的同時,更會對在深空通信中的LDPC碼譯碼帶來不穩定因素。

5 結束語

本文基于DVB-S2標準設計實現的動態自適應LDPC碼譯碼器可以適應不同碼長、不同碼率、不同迭代次數、不同譯碼精度、不同譯碼性能等譯碼環境下的動態自適應迭代譯碼?;赟tratix IV系列FPGA的驗證數據表明:與現有實現方法相比,動態自適應LDPC碼譯碼器在自適應方式及范圍上都有明顯的優勢,從而可以有效保證DVB-S2標準LDPC碼在深空通信中的實際應用,促進我國在深空通信領域水平的提高。

參考文獻

[1] Gallager R G. Low density parity check codes[J]., 1962, 8(1): 21-28.

[2] Mackay D J C and Neal R M. Near Shannon limit performance of low-density parity check codes[J]., 1996, 32(18): 1645-1646.

[3] 陳豪威, 王秀敏. 基于DVB-S2標準的LDPC碼編譯碼器設計研究[J].電視技術, 2012, 36(3): 1-3.

Chen Hao-wei and Wang Xiu-min. Study on design of LDPC encoder and decoder for DVB-S2[J]., 2012, 36(3): 1-3.

[4] 江桂芳, 彭克榮. 基于FPGA的高速并行DVB-S2標準LDPC譯碼[J]. 空間電子技術, 2013, 10(1): 58-61, 95.

Jiang Gui-fang and Peng Ke-rong. A FPGA-dased high-speed paraller LDPC decoder for DVB-S2 system[J]., 2013, 10(1): 58-61, 95.

[5] Kienle F, Brack T, and Wehn N. A synthesizable IP core for DVB-S2 LDPC code decoding[C]. Proceedings of the Design, Automation and Test in Europe conference, Munich Germany, 2005: 100-105.

[6] Gomes M, Falc?o G, Silva V,.. Flexible parallel architecture for DVB-S2 LDPC decoders[C]. Proceedings of the Global Telecommunications Conference, Washington, DC, USA, 2007: 3265-3269.

[7] 張高遠, 周亮, 蘇偉偉, 等. 基于平均幅度的 LDPC 碼加權比特翻轉譯碼算法[J]. 電子與信息學報, 2013, 35(11): 2572-2578.

Zhang Gao-yuan, Zhou Liang, Su Wei-wei,.. Average magnitude based weighted bit-flipping decoding algorithm for LDPC codes[J].&, 2013, 35(11): 2572-2578.

[8] 孫錦華, 劉鵬, 吳小鈞. 聯合旋轉平均周期圖和解調軟信息的載波同步方法[J]. 電子與信息學報, 2013, 35(9): 2200-2205.

Sun Jin-hua, Liu Peng, and Wu Xiao-jun. A joint rotational periodogram averaging and demodulation soft information carrier synchronization algorithm[J].&, 2013, 35(9): 2200-2205.

[9] 鐘州, 金梁, 黃開枝, 等. 基于二維信息修正減小LDPC碼安全間隙的譯碼算法[J]. 電子與信息學報, 2013, 35(8): 1946-1951.

Zhong Zhou, Jin Liang, Huang Kai-zhi,.. Decoding algorithm for reducing security gap of LDPC codes based on two-dimensional information correction[J].&, 2013, 35(8): 1946-1951.

[10] Roberts M K and Jayabalan R. A modified optimally quantized offset min-sum decoding algorithm for low- complexity LDPC decoder[J]., 2014, 80(2): 1-10.

[11] 倪俊楓, 甘小鶯, 張海濱, 等. 改進的分層修正最小和LDPC譯碼算法及譯碼器設計[J]. 系統工程與電子技術, 2008, 30(12): 2531-2535.

Ni Jun-feng, Gan Xiao-ying, Zhang Hai-bin,.. Improved layered modified minimal sun LDPC decoding algorithm and LDPC decoder design[J]., 2008, 30(12): 2531-2535.

[12] 管武, 喬華, 董明科, 等. 多碼率LDPC碼高速譯碼器的設計與實現[J]. 電路與系統學報, 2009, 14(2): 1-6.

Guan Wu, Qiao Hua, Dong Ming-ke,.. Design and implementation of a high-throughput decoder for multi-rate LDPC code[J]., 2009, 14(2): 1-6.

[13] 趙旦峰, 趙輝, 許元志, 等. 可配置LDPC碼譯碼器的FPGA設計與實現[J]. 黑龍江大學自然科學學報, 2012, 29(2): 259-264.

Zhao Dan-feng, Zhao Hui, Xu Yuan-zhi,.. Design and implementation of configurable LDPC decoder based on FPGA[J]., 2012, 29(2): 259-264.

[14] 唐凱林, 杜慧敏, 段高攀, 等. 多碼率、多碼長LDPC譯碼器的設計與實現[J]. 電子技術應用, 2013, 39(12): 58-60.

Tang Kai-lin, Du Hui-min, Duan Gao-pan,.. Design and implementation of multi-rate and multi-length LDPC decoder[J]., 2013, 39(12): 58-60.

[15] 林梅英, 許肖梅, 陳友淦, 等. 碼率兼容QC-LDPC碼在水聲通信中的應用[J]. 聲學技術, 2014, 15(5): 460-463.

Lin Mei-ying, Xu Xiao-mei, Chen You-gan,.. Applications of rate-compatible QC-LDPC codes in underwater acoustic communication[J]., 2014, 15(5): 460-463.

[16] 欒志斌, 裴玉奎, 葛寧, 等. 低存儲高速可重構LDPC碼譯碼器設計及ASIC實現[J]. 電子與信息學報, 2014, 36(10): 2287-2292.

Luan Zhi-bin, Pei Yu-kui, Ge Ning,.. Design and ASIC implementation of low memory high throughput reconfigurable LDPC decoder[J].&, 2014, 36(10): 2287-2292.

Design of Dynamic Adaptive LDPC Decoder Based on FPGA

Lan Ya-zhu①②Yang Hai-gang①Lin Yu①

①(,,,100190,)②(,100049,)

Faced with the complex environment of deep space communication, the adaptive capacity can have an impact on the ability of the Low Density Parity Check (LDPC) code decoder to maintain long-term stability. This paper proposes a design method of dynamic adaptive LDPC code decoder. Through the IP-based design of each function module, the design method of dynamic adaptive can be mapped to each function module in DVB-S2 LDPC code decoder. The verification results based on the Stratix IV FPGA show the dynamic adaptive LDPC code decoder not only can decode under the different code length and code rate, but also can decode under the different decoding performance. Meanwhile, the single-channel decoder can ensure the information throughput to reach to 40.9~71.7 Mbps.

Low Density Parity Check (LDPC) code decoder; Dynamic adaptive; DVB-S2 standard; FPGA

TN911.22; TN402

A

1009-5896(2015)08-1937-07

10.11999/JEIT141609

楊海鋼 yanghg@mail.ie.ac.cn

2014-12-15收到,2015-02-15改回,2015-05-11網絡優先出版

國家自然科學基金(61404140, 61271149, 61106033)資助課題

蘭亞柱: 男,1983年生,博士生,研究方向為FPGA軟核設計、網絡及信道編碼技術等.

楊海鋼: 男,1960年生,博士,研究員,研究方向為高速可編程邏輯芯片設計技術、數?;旌闲盘朣OC設計技術等.

林 郁: 男,1983年生,博士,助理研究員,研究方向為FPGA結構、FPGA CAD、高層綜合和FPGA高性能計算等.

猜你喜歡
碼長譯碼器碼率
基于信息矩陣估計的極化碼參數盲識別算法
一種基于HEVC 和AVC 改進的碼率控制算法
基于FPGA的多碼率卷積編碼器設計與實現
雙路連續變量量子密鑰分發協議的有限碼長效應分析*
糾錯模式可配置的NAND Flash BCH譯碼器設計
基于狀態機的視頻碼率自適應算法
環Fq[v]/上循環碼的跡碼與子環子碼
跟蹤導練(一)5
多光譜圖像壓縮的聯合碼率分配—碼率控制方法
HINOC2.0系統中高速LDPC譯碼器結構設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合