《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的指針反饋式低功耗Viterbi譯碼器設(shè)計(jì)
基于FPGA的指針反饋式低功耗Viterbi譯碼器設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2013年第7期
溫偉杰,陸許明,朱偉鴻,蔡春曉,譚洪舟
中山大學(xué) 信息科學(xué)與技術(shù)學(xué)院,廣東 廣州510006
摘要: 為了滿足復(fù)雜的無線通信系統(tǒng)功耗以及性能要求,提出并設(shè)計(jì)了一種指針反饋式Viterbi譯碼器。該譯碼器使相鄰時(shí)刻的各狀態(tài)轉(zhuǎn)移滿足單向一對一指向關(guān)系,并根據(jù)傳統(tǒng)譯碼器初始譯碼狀態(tài)從狀態(tài)0延伸的特點(diǎn),通過每一時(shí)刻不斷更新的狀態(tài)指針指向當(dāng)前時(shí)刻譯碼路徑狀態(tài),同時(shí)輸出譯碼結(jié)果。算法仿真以及FPGA和CMOS綜合結(jié)果表明,該譯碼器功耗降低60%,譯碼延時(shí)小,并且在信噪比較高的情況下有很好的譯碼性能,特別適用于約束長度大、譯碼狀態(tài)數(shù)多的情況。
中圖分類號: TN492
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)07-0007-03
Design of low-power Viterbi decoder with feedback pointer based on FPGA
Wen Weijie,Lu Xuming,Zhu Weihong,Cai Chunxiao,Tan Hongzhou
School of Information Science & Technology,Sun Yat-Sen University,Guangzhou 510006,China
Abstract: In order to meet the requirement of low power consumption and performance in complex wireless communication system, a Viterbi decoder using feedback pointer is proposed. In the decoding process, the proposed decoder makes one-to-one relationship in state transitions at every adjacent moment. Since Viterbi decoder always starts from state 0, the decoded bits are output by the updating state pointer which points to current state in the decoding path. Simulation and implementation results of FPGA and CMOS show that the decoder has 60% power reduction with less time delay, and it performs well at a high signal-to-noise ratio environment. This decoder is particularly applicable to the situation that has long constraint length and large decode states.
Key words : low power;Viterbi decoder;FPGA;feedback pointer

    隨著現(xiàn)代無線通信系統(tǒng)日益復(fù)雜化的發(fā)展,無線基帶通信系統(tǒng)中各模塊的實(shí)際性能、延時(shí)、功耗等參數(shù)成為基帶設(shè)計(jì)的重要考慮因素。Viterbi譯碼器廣泛應(yīng)用于無線局域網(wǎng)和移動通信系統(tǒng),并且作為基帶系統(tǒng)的重要組成部分,其功耗與性能成為基帶設(shè)計(jì)中非常關(guān)鍵的一環(huán)。因此,設(shè)計(jì)功耗低、譯碼性能好的Viterbi譯碼器尤為重要。

    傳統(tǒng)的Viterbi譯碼器主要包括支路度量單元(BMU)、加比選單元(ACSU)以及幸存路徑存儲單元(SMU)。其中SMU根據(jù)各狀態(tài)的幸存路徑得出譯碼信息,其實(shí)現(xiàn)方法有兩種:寄存器交換法(RE)和追蹤回溯法(TB)。傳統(tǒng)的寄存器交換法需要在譯碼過程中不斷進(jìn)行寄存器交換存取操作,對于約束長度較大、狀態(tài)數(shù)較多的情況,硬件功耗較大;而追蹤回溯法無需進(jìn)行復(fù)雜的寄存器交換,每一個(gè)譯碼時(shí)刻只需變動少量RAM,實(shí)現(xiàn)功耗較小。因此關(guān)于追蹤回溯法的Viterbi譯碼器研究甚廣[1-3]。但是TB方法的譯碼延時(shí)約為RE方法的4倍[4],無法滿足對實(shí)時(shí)性要求高的無線通信系統(tǒng)(如無線局域網(wǎng))的性能要求。
    基于對譯碼性能、功耗以及延時(shí)的考慮,提出一種新型的指針反饋式低功耗Viterbi譯碼器。該譯碼器采用新的譯碼單元取代SMU,利用譯碼路徑從初始狀態(tài)0開始的特點(diǎn),通過每一時(shí)刻通過不斷更新的唯一狀態(tài)譯碼指針,結(jié)合加比選單元輸出的狀態(tài)譯碼信息,指示出當(dāng)前時(shí)刻的譯碼路徑狀態(tài)走向,并輸出當(dāng)前譯碼結(jié)果。FPGA實(shí)現(xiàn)結(jié)果表明,對于(2,1,7)卷積譯碼延時(shí)只為2個(gè)時(shí)鐘周期,實(shí)時(shí)性好。此外,該方法實(shí)現(xiàn)的譯碼器比傳統(tǒng)的追蹤回溯法譯碼器功耗降低60%,并且實(shí)現(xiàn)較好的譯碼性能。
1 指針反饋式Viterbi譯碼基本原理
    傳統(tǒng)的Viterbi譯碼按照最大似然估計(jì)原則,通過計(jì)算每一時(shí)刻可能的路徑值,最終找出一條最大似然路徑作為譯碼輸出路徑。
    本文提出的指針反饋式Viterbi譯碼利用傳統(tǒng)譯碼器每次譯碼從初始狀態(tài)0開始的特點(diǎn),并且在譯碼過程中,使前一時(shí)刻某狀態(tài)只與當(dāng)前時(shí)刻另一狀態(tài)存在一對一指向關(guān)系,從而在每一時(shí)刻確定譯碼路徑。與此同時(shí),通過狀態(tài)指針不斷更新當(dāng)前時(shí)刻譯碼路徑上的狀態(tài),實(shí)時(shí)輸出譯碼結(jié)果。但是這種方法在遇到輸入序列某區(qū)域存在較多錯(cuò)碼情況時(shí),很有可能選錯(cuò)譯碼路徑而導(dǎo)致大面積譯碼錯(cuò)誤。為了克服上述缺點(diǎn),卷積編碼器必須做出簡單調(diào)整:當(dāng)編碼L(L≥4)次后,重新復(fù)位輸入,使譯碼重新從狀態(tài)0開始,從而有效阻隔輸入錯(cuò)碼引起的譯碼錯(cuò)誤的擴(kuò)散。在信噪比較高的情況下,該譯碼器能夠在功耗、延時(shí)以及性能上得到保證。
    為了更好地說明所提出的Viterbi譯碼器算法,現(xiàn)以約束長度K=3、編碼率r=1/2生成多項(xiàng)式g0=1118,g1=1018,并且以L=10的卷積編碼器對數(shù)據(jù)(01011101001000)進(jìn)行編碼得到(00,11,10,00,01,10,01,00,10,11,11,10,11,00),并經(jīng)過噪聲干擾,對該組噪聲數(shù)據(jù)進(jìn)行軟判決處理,其譯碼過程如圖1所示。根據(jù)狀態(tài)轉(zhuǎn)移關(guān)系,狀態(tài)0或狀態(tài)2可能指向下一時(shí)刻的狀態(tài)0或狀態(tài)1。當(dāng)t=1時(shí),狀態(tài)0與狀態(tài)1幸存路徑均源于t=0時(shí)的狀態(tài)0,為了使相鄰時(shí)刻狀態(tài)轉(zhuǎn)移不出現(xiàn)分叉情況,此時(shí)需要對狀態(tài)0和狀態(tài)1更新后的累計(jì)路徑距離進(jìn)行最小值比較,較小的一方狀態(tài)指向不變,結(jié)果從t=0到t=1,狀態(tài)0指向狀態(tài)0。而原本狀態(tài)0指向狀態(tài)1的情況,改變成狀態(tài)2指向狀態(tài)1(即圖中虛線表示),從而實(shí)現(xiàn)相鄰兩時(shí)刻之間狀態(tài)轉(zhuǎn)移的單一指向性。為了演示方便,圖1中只給出t≤4時(shí)改進(jìn)后各狀態(tài)幸存路徑情況。另外,從圖中看出譯碼路徑每時(shí)刻經(jīng)過的譯碼狀態(tài)的最低位(最低位以下劃線標(biāo)示)與此刻譯碼比特相同,因此可以采用狀態(tài)指針的方法將其初始化為狀態(tài)0,每一時(shí)刻譯出的碼比特反饋更新狀態(tài)指針,進(jìn)行實(shí)時(shí)譯碼追蹤。此外,由于L=10,在t=10時(shí),狀態(tài)重新復(fù)位到狀態(tài)0,使譯碼器重新從狀態(tài)0出發(fā)以實(shí)現(xiàn)連續(xù)譯碼。

2 指針反饋式Viterbi譯碼器整體設(shè)計(jì)
    指針反饋式Viterbi譯碼器整體結(jié)果如圖2所示,其中包括支路度量單元(BMU)、改進(jìn)型加比選單元(MACSU)以及指針反饋?zhàn)粉?PFPT)模塊。本文基于802.11a/n,K=7,r=1/2,g0=1338,g1=1718卷積編碼,采用4比特軟判決對譯碼器進(jìn)行硬件設(shè)計(jì)及實(shí)現(xiàn)。

2.1 支路度量單元(BMU)
    支路度量單元負(fù)責(zé)將接收到的編碼數(shù)據(jù)與參考數(shù)據(jù)進(jìn)行各狀態(tài)支路距離計(jì)算。理論上在進(jìn)行軟判決處理時(shí),支路距離采用歐氏距離計(jì)算方法。但是傳統(tǒng)的歐氏距離需要進(jìn)行開根號與平方操作,因此硬件實(shí)現(xiàn)消耗資源高。本文給出一種改良的距離計(jì)算方法,數(shù)據(jù)量化范圍從0~15共15個(gè)區(qū)間,與參考文獻(xiàn)[5]提出的14個(gè)區(qū)間量化相比,計(jì)算精度上升。各支路距離的表達(dá)式為:


    由式(6)和式(7)以及上述判決算法看出,只需對ΔPM和ΔBM進(jìn)行簡單的加減法以及取符號位,即可實(shí)現(xiàn)狀態(tài)間一一指向關(guān)系,硬件實(shí)現(xiàn)復(fù)雜度低,并且延時(shí)少。實(shí)現(xiàn)時(shí),每一時(shí)刻MACS輸出的各狀態(tài)更新的累計(jì)路徑距離反饋給下一時(shí)刻MACS的輸入端進(jìn)行疊加計(jì)算,并且將各狀態(tài)記錄當(dāng)前判決比特輸出至下一模塊中。
2.3 指針反饋?zhàn)粉櫮K(PFPT)
    PFPT模塊通過狀態(tài)指針儲存的譯碼狀態(tài)結(jié)合從MACSU輸出的64位判決比特進(jìn)行狀態(tài)64選1的操作,最終在每一時(shí)刻輸出譯碼結(jié)果,并且將譯碼比特反饋更新狀態(tài)指針,用于下一時(shí)刻譯碼路徑狀態(tài)的選取。另外,每進(jìn)行第1節(jié)中提及的L次譯碼時(shí),狀態(tài)指針復(fù)位至狀態(tài)0(008)。
3 FPGA實(shí)現(xiàn)結(jié)果及譯碼器性能分析
    指針反饋式Viterbi譯碼器對于約束長度大(K≥7)、譯碼狀態(tài)數(shù)較多的情況,其功耗以及性能效果明顯。對第2節(jié)中所述的硬件設(shè)計(jì)進(jìn)行FPGA實(shí)現(xiàn),并且對多種Viterbi譯碼器進(jìn)行功耗等參數(shù)比較。其結(jié)果如表1和表2所示。

 

 

    由表2看出,在相同CMOS工藝情況下,指針反饋式Viterbi譯碼器與參考文獻(xiàn)[6]和參考文獻(xiàn)[7]相比,實(shí)現(xiàn)功耗最低;而在相同編碼條件下,本文實(shí)現(xiàn)的算法功耗比參考文獻(xiàn)[6]功耗至少降低60%。
    另外,將卷積編碼數(shù)據(jù)經(jīng)過加性高斯白噪聲信道后,對噪聲數(shù)據(jù)進(jìn)行指針反饋式Viterbi譯碼,其仿真結(jié)果與理想無編碼情況作誤比特率(BER)及信噪比(SNR)對比。其結(jié)果如圖6所示,當(dāng)SNR在6dB附近時(shí),BER約為10-4;而當(dāng)SNR≥7.2 dB時(shí),BER=0。因此,該譯碼器在較高SNR時(shí)性能較好。

    本文提出了一種指針反饋式Viterbi譯碼器,該譯碼器依靠初始譯碼狀態(tài)從狀態(tài)0開始的特點(diǎn),相鄰兩時(shí)刻各狀態(tài)進(jìn)行單向一對一轉(zhuǎn)移關(guān)系,并在每時(shí)刻通過不斷更新的狀態(tài)指針尋找譯碼路徑上的狀態(tài),同時(shí)輸出譯碼結(jié)果。算法仿真以及FPGA和CMOS綜合結(jié)果表明,該Viterbi譯碼器在信噪比較高時(shí)有良好的譯碼性能,同時(shí)功耗相對一般譯碼器減少60%,硬件實(shí)現(xiàn)資源低,譯碼延時(shí)少,因此適合于無線局域網(wǎng)和移動通信等系統(tǒng)硬件實(shí)現(xiàn)。
參考文獻(xiàn)
[1] 童琦,何洪路,吳明森.基于FPGA的高速并行Viterbi譯碼器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2007,33(1):30-32.
[2] LIN D J,LIN C C,CHEN C L,et al.A low-power Viterbi decoder based on scarce state transition and variable  truncation length[C].International Symp.on VLSI Design, automation and test,2007:1-4.
[3] AMEEN S Y,Al-JAMMAS M H,ALENEZI A S.FPGA  implementation of modified architecture for adaptive Viterbi  decoder[C].Electronics, Communications and Photonics  Conference(SIECPC),2011:1-9.
[4] 朱永旭,吳斌,周玉梅,等.適用于IEEE 802.11n的高速低功耗Viterbi譯碼器的設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2010,27(7):10-14.
[5] El-DIB D A,ELMASRY M I.Memoryless Viterbi decoder[J].IEEE Trans. on Circuits and System-II,2005,52(12): 826-830.
[6] LIN C C,SHIH Y H,CHANG H C,et al.Design of a powerreduction Viterbi decoder for WLAN application[J].IEEE Trans. on Circuits and System-I,2005,52(6):1148-1156.
[7] Tang Yunching,Hu Dochen,Wei Weiyi,et al.A memory efficient architecture for low latency Viterbi decoder[C]. International Symp.on VLSI Design,Automation and Test,2009:335-338.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。