文獻標(biāo)識碼: 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標(biāo)準(zhǔn)中的Turbo碼作為研究對象,,提出一種對前向狀態(tài)度量進行線性估算和反向重算的設(shè)計方案。在每個譯碼時刻只存儲1個前向狀態(tài)度量和3個增量值,,當(dāng)需要使用前向狀態(tài)度量時,,利用線性估算和反向重算的算法恢復(fù)出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}的恢復(fù)計算,,其硬件實現(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的標(biāo)準(zhǔn)構(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作為目標(biāo)器件,,使用Verilog硬件描述語言(Hardware Description Language,HDL)對譯碼器各個功能模塊進行編程實現(xiàn),,并在Quartus Ⅱ中的Modelsim實現(xiàn)了仿真和綜合,,完成LTE-Advance標(biāo)準(zhǔn)中的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é)果表明,,本文以引入低復(fù)雜度的計算量來減小對前向狀態(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標(biāo)準(zhǔn)中一種基于反向重算的低存儲容量Turbo碼譯碼器結(jié)構(gòu)設(shè)計[J].電子學(xué)報,,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.
作者信息:
曾 潔,,詹 明,,羅小紅,楊 超,,鄧 熠,,王 夢
(西南大學(xué) 電子信息工程學(xué)院,重慶400715)