文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190245
中文引用格式: 曾潔,詹明,羅小紅,等. 一種低存儲容量Turbo碼譯碼器結(jié)構(gòu)設(shè)計及FPGA實現(xiàn)[J].電子技術(shù)應(yīng)用,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年提出以來,由于其獨特的編譯碼結(jié)構(gòu)和逼近Shannon極限的譯碼性能及良好的糾錯性能[1],引起了廣泛的關(guān)注。目前,Turbo碼已被第四代移動通信系統(tǒng)所采用[2-3],并廣泛應(yīng)用于能量受限的深空通信和工業(yè)物聯(lián)網(wǎng)中[4-5]。在無線通信應(yīng)用中,Turbo碼進行編譯碼的硬件實現(xiàn)時,譯碼器被認為是信號接收終端功耗的主要瓶頸,而譯碼器有一半以上的功耗主要用于對狀態(tài)度量緩存(State Metric Cache,SMC)的訪問[6]。因此,一種降低SMC容量的低功耗Turbo碼譯碼器結(jié)構(gòu)成為研究的重點。
Turbo碼譯碼器的實現(xiàn)主要是采用對數(shù)域最大后驗概率算法[7](Maximum a Posteriori Probability Algorithm in Logarithmic Domain,Log-MAP),所以基于Log-MAP算法的低存儲容量的低功耗Turbo譯碼器成為目前主要研究的對象[6-7]。根據(jù)存儲容量降低方式,主要分為變換法和反向重算的設(shè)計方法。在變換法中,文獻[6]提出線性估算的方法使SMC降低了55%,但引入了較大的譯碼性能損失。在反向重算中,文獻[7]通過保存部分狀態(tài)度量去計算出其他狀態(tài)度量,誤碼率與Log-MAP算法接近,SMC容量降低了50%,但是存儲容量降低得還不夠。因此僅用變換法的設(shè)計,雖然SMC容量很小,但譯碼性能差;而反向重算方法的硬件開銷和功耗需求還可進一步降低。
基于以上問題,為降低存儲容量達到低功耗并保證Turbo碼譯碼性能的要求,本文以LTE-Advance標準中的Turbo碼作為研究對象,提出一種對前向狀態(tài)度量進行線性估算和反向重算的設(shè)計方案。在每個譯碼時刻只存儲1個前向狀態(tài)度量和3個增量值,當需要使用前向狀態(tài)度量時,利用線性估算和反向重算的算法恢復出8個前向狀態(tài)度量,使得本文所提出的方案在SMC容量較低時,誤碼率(Bit Error Rate,BER)和誤包率(Packet Error Rate,PER)性能與Log-MAP算法基本接近,與傳統(tǒng)譯碼器結(jié)構(gòu)相比功耗較低。
1 低存儲容量譯碼器結(jié)構(gòu)設(shè)計與實現(xiàn)
1.1 低存儲容量譯碼器結(jié)構(gòu)實現(xiàn)原理
1.2 低存儲容量譯碼器結(jié)構(gòu)設(shè)計的FPGA實現(xiàn)
對于增量計算模塊的硬件實現(xiàn),使用簡單的反向、選擇和加法操作就能夠完成,增量計算模塊的FPGA實現(xiàn)如圖2所示。在完成對前向狀態(tài)度量的增量值計算后,存放在LIFO SMC中,使得在反向重算的同時,從LIFO SMC模塊中讀出前向狀態(tài)度量值A(chǔ)k(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 性能分析和功耗估算結(jié)果
2.1 SMC容量比較
在本文中,狀態(tài)度量采用(10,3)的二進制量化方案[7],增量值量化為(6,3)。為了便于分析,本文選擇以文獻[6]-[7]所研究的線性估算和反向重算的譯碼器結(jié)構(gòu)設(shè)計方案以及經(jīng)典的設(shè)計方案作為比較對象,列出了這4種設(shè)計方案下譯碼器的SMC容量比較結(jié)果,如表1所示。其中N表示編碼長度,占用率表示不同的譯碼設(shè)計方案與經(jīng)典設(shè)計方案對SMC的使用量的比較。經(jīng)表格中的數(shù)據(jù)分析可知,本文所設(shè)計的方案不需要過多地將狀態(tài)度量存儲在SMC中,每個譯碼時刻,只存儲1個前向狀態(tài)度量值和3個增量值在SMC中,使用SMC的容量降低了65%。
2.2 BER和PER對比
在仿真實現(xiàn)中,為證實本方案的有效性,根據(jù)LTE-Advanced的標準構(gòu)造了碼率為1/3的Turbo編碼序列,分別研究了已有的4種譯碼算法與本文提出的算法在不同幀長情況下的BER和PER性能比較,結(jié)果如圖4和圖5所示。本文采取并行的譯碼結(jié)構(gòu),分組譯碼長度L=40,在MATLAB仿真中,采用二進制相移鍵控的調(diào)制方式,以加性高斯白噪聲信道作為仿真信道,迭代次數(shù)設(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ù)目煽啃?,可?yīng)用于高性能低功耗無線通信中[8]。
2.3 功耗測試
按照圖1中設(shè)計的結(jié)構(gòu)框圖,在Quartus Ⅱ13.1平臺中,以Altera公司的Cyclone IV系列的EP4CE75F23C8作為目標器件,使用Verilog硬件描述語言(Hardware Description Language,HDL)對譯碼器各個功能模塊進行編程實現(xiàn),并在Quartus Ⅱ中的Modelsim實現(xiàn)了仿真和綜合,完成LTE-Advance標準中的Turbo碼譯碼器FPGA設(shè)計,同時分析了整個譯碼器結(jié)構(gòu)的硬件資源使用情況和功耗,采用PowerPlay Early Power Estimator進行功耗測試。
通過譯碼器結(jié)構(gòu)的仿真全編譯報告提取出4種譯碼結(jié)構(gòu)方案的邏輯單元、寄存器和總的內(nèi)存量使用情況,如表2所示。對于總的內(nèi)存量的使用情況,反向重算、線性估算和本文提出的算法能將譯碼器結(jié)構(gòu)總的內(nèi)存量的使用分別降低27.4%、34.24%和35.62%。因此,本文提出的譯碼器結(jié)構(gòu)設(shè)計方案通過降低SMC容量使得譯碼器結(jié)構(gòu)的硬件資源更節(jié)省。
已有的文獻[6]表明,RAM模塊的功耗對總功耗的影響較大。因此在功耗測試的各模塊中,將本文提出的譯碼器結(jié)構(gòu)的RAM模塊功耗和總功耗分別與傳統(tǒng)方法、反向重算以及線性估算的譯碼器結(jié)構(gòu)進行了對比,結(jié)果如圖6~圖8所示。圖6是本文設(shè)計的譯碼器結(jié)構(gòu)與傳統(tǒng)的譯碼器結(jié)構(gòu)分別在25 MHz、50 MHz、75 MHz、100 MHz、125 MHz頻率下RAM模塊功耗和總功耗比較,RAM模塊部分的功耗在不同頻率下均下降50%左右;總功耗相應(yīng)地下降了4.97%、8.78%、11.93%、14.18%、14.65%。因此,通過減少對狀態(tài)度量的存儲使SMC容量降低,進而功耗得到有效降低。
圖7和圖8是本文設(shè)計的譯碼器結(jié)構(gòu)與反向重算和線性估算方案的譯碼器結(jié)構(gòu)分別在不同頻率下RAM模塊功耗和總功耗的比較。由圖7可知,RAM模塊功耗和總功耗隨著頻率的增加而增大,功耗下降率也隨之增加,并且本文設(shè)計的譯碼器結(jié)構(gòu)的總功耗低于反向重算方案。圖8表明,與已有存儲容量最低的線性估算相比較[6],在不同頻率下功耗也有不同程度的降低;其中在125 MHz的頻率約束下,RAM模塊功耗降低了28%,總功耗降低了6.34%。
3 結(jié)論
通過減少SMC容量使得功耗降低并保證譯碼性能是Turbo碼類譯碼器結(jié)構(gòu)設(shè)計的重要方法。研究結(jié)果表明,本文以引入低復雜度的計算量來減小對前向狀態(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].電子技術(shù)應(yīng)用,2017,43(11):2-6,26.
[5] 李貴勇,舒強,李文彬.基于NB-IoT系統(tǒng)的eDRX的分析與研究[J].電子技術(shù)應(yīng)用,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碼譯碼器結(jié)構(gòu)設(shè)計[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)