文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190245
中文引用格式: 曾潔,,詹明,羅小紅,,等. 一種低存儲容量Turbo碼譯碼器結構設計及FPGA實現(xiàn)[J].電子技術應用,,2019,45(7):72-76.
英文引用格式: Zeng Jie,,Zhan Ming,,Luo Xiaohong,et al. A memory reduced Turbo code decoding architecture design and FPGA implementation[J]. Application of Electronic Technique,,2019,,45(7):72-76.
0 引言
Turbo碼自1993年提出以來,由于其獨特的編譯碼結構和逼近Shannon極限的譯碼性能及良好的糾錯性能[1],,引起了廣泛的關注,。目前,Turbo碼已被第四代移動通信系統(tǒng)所采用[2-3],,并廣泛應用于能量受限的深空通信和工業(yè)物聯(lián)網(wǎng)中[4-5],。在無線通信應用中,Turbo碼進行編譯碼的硬件實現(xiàn)時,,譯碼器被認為是信號接收終端功耗的主要瓶頸,,而譯碼器有一半以上的功耗主要用于對狀態(tài)度量緩存(State Metric Cache,SMC)的訪問[6],。因此,,一種降低SMC容量的低功耗Turbo碼譯碼器結構成為研究的重點。
Turbo碼譯碼器的實現(xiàn)主要是采用對數(shù)域最大后驗概率算法[7](Maximum a Posteriori Probability Algorithm in Logarithmic Domain,,Log-MAP),,所以基于Log-MAP算法的低存儲容量的低功耗Turbo譯碼器成為目前主要研究的對象[6-7]。根據(jù)存儲容量降低方式,,主要分為變換法和反向重算的設計方法,。在變換法中,文獻[6]提出線性估算的方法使SMC降低了55%,,但引入了較大的譯碼性能損失,。在反向重算中,文獻[7]通過保存部分狀態(tài)度量去計算出其他狀態(tài)度量,,誤碼率與Log-MAP算法接近,,SMC容量降低了50%,但是存儲容量降低得還不夠,。因此僅用變換法的設計,,雖然SMC容量很小,但譯碼性能差,;而反向重算方法的硬件開銷和功耗需求還可進一步降低,。
基于以上問題,為降低存儲容量達到低功耗并保證Turbo碼譯碼性能的要求,,本文以LTE-Advance標準中的Turbo碼作為研究對象,,提出一種對前向狀態(tài)度量進行線性估算和反向重算的設計方案。在每個譯碼時刻只存儲1個前向狀態(tài)度量和3個增量值,,當需要使用前向狀態(tài)度量時,,利用線性估算和反向重算的算法恢復出8個前向狀態(tài)度量,使得本文所提出的方案在SMC容量較低時,,誤碼率(Bit Error Rate,,BER)和誤包率(Packet Error Rate,,PER)性能與Log-MAP算法基本接近,與傳統(tǒng)譯碼器結構相比功耗較低,。
1 低存儲容量譯碼器結構設計與實現(xiàn)
1.1 低存儲容量譯碼器結構實現(xiàn)原理
1.2 低存儲容量譯碼器結構設計的FPGA實現(xiàn)
對于增量計算模塊的硬件實現(xiàn),,使用簡單的反向、選擇和加法操作就能夠完成,,增量計算模塊的FPGA實現(xiàn)如圖2所示,。在完成對前向狀態(tài)度量的增量值計算后,存放在LIFO SMC中,,使得在反向重算的同時,,從LIFO SMC模塊中讀出前向狀態(tài)度量值Ak(s1,k)及增量值Im(k),,m∈{1,,2,3},,然后利用式(4)進行前向狀態(tài)度量值,j2∈{1,,3,4,,6}的恢復計算,,其硬件實現(xiàn)過程就是增量計算模塊的逆過程。根據(jù)式(2)可知,,反向重算的過程是通過一個多路選擇單元,、一個比較控制單元以及兩個最小值單元將未存儲的前向狀態(tài)度量重新計算出來,其硬件實現(xiàn)如圖3所示,。
2 性能分析和功耗估算結果
2.1 SMC容量比較
在本文中,,狀態(tài)度量采用(10,3)的二進制量化方案[7],,增量值量化為(6,,3)。為了便于分析,,本文選擇以文獻[6]-[7]所研究的線性估算和反向重算的譯碼器結構設計方案以及經(jīng)典的設計方案作為比較對象,,列出了這4種設計方案下譯碼器的SMC容量比較結果,如表1所示,。其中N表示編碼長度,,占用率表示不同的譯碼設計方案與經(jīng)典設計方案對SMC的使用量的比較。經(jīng)表格中的數(shù)據(jù)分析可知,,本文所設計的方案不需要過多地將狀態(tài)度量存儲在SMC中,,每個譯碼時刻,只存儲1個前向狀態(tài)度量值和3個增量值在SMC中,,使用SMC的容量降低了65%,。
2.2 BER和PER對比
在仿真實現(xiàn)中,,為證實本方案的有效性,根據(jù)LTE-Advanced的標準構造了碼率為1/3的Turbo編碼序列,,分別研究了已有的4種譯碼算法與本文提出的算法在不同幀長情況下的BER和PER性能比較,結果如圖4和圖5所示,。本文采取并行的譯碼結構,,分組譯碼長度L=40,在MATLAB仿真中,,采用二進制相移鍵控的調(diào)制方式,,以加性高斯白噪聲信道作為仿真信道,迭代次數(shù)設定為8,;為改善譯碼性能,,外信息乘上一個度量因子λ[7],取值λ=0.8,。
從圖4中可以看出,,本文提出的算法的BER性能是優(yōu)于線性估算算法,并且在幀長為800,、BER=10-4時,,本文提出的算法距離Log-MAP譯碼算法約0.018 dB的編碼增益損失。因此本文提出的算法在保證SMC容量較小的同時BER性能也較好,。由圖5可知,,線性估算的PER性能曲線距離Max-Log-MAP譯碼算法接近,所以線性估算在保證BER性能較好的時候并不能保證PER的性能,;值得注意的是,,在幀長為800,信噪比大于1.2 dB時,,譯碼比特的誤包率能夠達到10-4,。因此,本文提出的算法可以提高數(shù)據(jù)傳輸?shù)目煽啃?,可應用于高性能低功耗無線通信中[8],。
2.3 功耗測試
按照圖1中設計的結構框圖,在Quartus Ⅱ13.1平臺中,,以Altera公司的Cyclone IV系列的EP4CE75F23C8作為目標器件,,使用Verilog硬件描述語言(Hardware Description Language,HDL)對譯碼器各個功能模塊進行編程實現(xiàn),,并在Quartus Ⅱ中的Modelsim實現(xiàn)了仿真和綜合,,完成LTE-Advance標準中的Turbo碼譯碼器FPGA設計,同時分析了整個譯碼器結構的硬件資源使用情況和功耗,,采用PowerPlay Early Power Estimator進行功耗測試,。
通過譯碼器結構的仿真全編譯報告提取出4種譯碼結構方案的邏輯單元,、寄存器和總的內(nèi)存量使用情況,如表2所示,。對于總的內(nèi)存量的使用情況,,反向重算、線性估算和本文提出的算法能將譯碼器結構總的內(nèi)存量的使用分別降低27.4%,、34.24%和35.62%,。因此,本文提出的譯碼器結構設計方案通過降低SMC容量使得譯碼器結構的硬件資源更節(jié)省,。
已有的文獻[6]表明,,RAM模塊的功耗對總功耗的影響較大。因此在功耗測試的各模塊中,,將本文提出的譯碼器結構的RAM模塊功耗和總功耗分別與傳統(tǒng)方法,、反向重算以及線性估算的譯碼器結構進行了對比,結果如圖6~圖8所示,。圖6是本文設計的譯碼器結構與傳統(tǒng)的譯碼器結構分別在25 MHz,、50 MHz、75 MHz,、100 MHz,、125 MHz頻率下RAM模塊功耗和總功耗比較,RAM模塊部分的功耗在不同頻率下均下降50%左右,;總功耗相應地下降了4.97%,、8.78%、11.93%,、14.18%,、14.65%。因此,,通過減少對狀態(tài)度量的存儲使SMC容量降低,,進而功耗得到有效降低。
圖7和圖8是本文設計的譯碼器結構與反向重算和線性估算方案的譯碼器結構分別在不同頻率下RAM模塊功耗和總功耗的比較,。由圖7可知,,RAM模塊功耗和總功耗隨著頻率的增加而增大,功耗下降率也隨之增加,,并且本文設計的譯碼器結構的總功耗低于反向重算方案,。圖8表明,與已有存儲容量最低的線性估算相比較[6],,在不同頻率下功耗也有不同程度的降低,;其中在125 MHz的頻率約束下,RAM模塊功耗降低了28%,總功耗降低了6.34%,。
3 結論
通過減少SMC容量使得功耗降低并保證譯碼性能是Turbo碼類譯碼器結構設計的重要方法,。研究結果表明,本文以引入低復雜度的計算量來減小對前向狀態(tài)度量存儲,,雖然在硬件的消耗中邏輯單元和寄存器的使用量有較小的增加,,但存儲容量降低了65%,BER和PER性能與Log-MAP算法接近,。與此同時,,在125 MHz頻率下,動態(tài)的存儲容量功耗較傳統(tǒng)下降約50%,,總功耗降低14.65%。
參考文獻
[1] BERROU C,,GLAVIEUX A,,THITIMAISHIMA P.Near shannon limit error-correcting coding and decoding:turbocodes[C].IEEE International Conference on Communications.IEEE,1993:1064-1070.
[2] 3GPP TS 36.212 v9.2.0,,3rd Generation partnership project:multiplexing and channel coding(Release 9)[S].2010.
[3] 3GPP TS 36.212 v11.3.0,,3rd Generation partnership project:multiplexing and channel coding(Release 11)[S].2013.
[4] 陳發(fā)堂,劉一帆,,唐成.一種用于5G IOT通信的能量效率方案[J].電子技術應用,,2017,43(11):2-6,,26.
[5] 李貴勇,,舒強,李文彬.基于NB-IoT系統(tǒng)的eDRX的分析與研究[J].電子技術應用,,2018,,44(8):98-101.
[6] ZENG J,ZHAN M,,SHI Y Q.FPGA implementation of a power-efficient and low-memory capacity turbo decoding architecture[C].15th Annual IEEE International Conference on Sensing,,Communication,and Networking.IEEE,,2018:1-3.
[7] 詹明,,文紅,伍軍.LTE-Advanced標準中一種基于反向重算的低存儲容量Turbo碼譯碼器結構設計[J].電子學報,,2017,,45(7):1584-1592.
[8] ZHAN M,PANG Z,,XIAO M,,et al.Wireless high-performance communications:improving effectiveness and creating ultrahigh reliability with channel coding[J].IEEE Industrial Electronics Magazine,2018,12(3):32-37.
作者信息:
曾 潔,,詹 明,,羅小紅,楊 超,,鄧 熠,,王 夢
(西南大學 電子信息工程學院,重慶400715)