0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談FPGA的指針反饋式低功耗Viterbi譯碼器設(shè)計

電子工程師 ? 來源:電子技術(shù)應(yīng)用第7期 ? 作者:溫偉杰,陸許明, ? 2021-04-28 09:35 ? 次閱讀

摘要: 為了滿足復雜的無線通信系統(tǒng)功耗以及性能要求,提出并設(shè)計了一種指針反饋式Viterbi譯碼器。該譯碼器使相鄰時刻的各狀態(tài)轉(zhuǎn)移滿足單向一對一指向關(guān)系,并根據(jù)傳統(tǒng)譯碼器初始譯碼狀態(tài)從狀態(tài)0延伸的特點,通過每一時刻不斷更新的狀態(tài)指針指向當前時刻譯碼路徑狀態(tài),同時輸出譯碼結(jié)果。算法仿真以及FPGA和CMOS綜合結(jié)果表明,該譯碼器功耗降低60%,譯碼延時小,并且在信噪比較高的情況下有很好的譯碼性能,特別適用于約束長度大、譯碼狀態(tài)數(shù)多的情況。

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

傳統(tǒng)的Viterbi譯碼器主要包括支路度量單元(BMU)、加比選單元(ACSU)以及幸存路徑存儲單元(SMU)。其中SMU根據(jù)各狀態(tài)的幸存路徑得出譯碼信息,其實現(xiàn)方法有兩種:寄存器交換法(RE)和追蹤回溯法(TB)。傳統(tǒng)的寄存器交換法需要在譯碼過程中不斷進行寄存器交換存取操作,對于約束長度較大、狀態(tài)數(shù)較多的情況,硬件功耗較大;

而追蹤回溯法無需進行復雜的寄存器交換,每一個譯碼時刻只需變動少量RAM,實現(xiàn)功耗較小。因此關(guān)于追蹤回溯法的Viterbi譯碼器研究甚廣[1-3]。但是TB方法的譯碼延時約為RE方法的4倍[4],無法滿足對實時性要求高的無線通信系統(tǒng)(如無線局域網(wǎng))的性能要求。

基于對譯碼性能、功耗以及延時的考慮,提出一種新型的指針反饋式低功耗Viterbi譯碼器。該譯碼器采用新的譯碼單元取代SMU,利用譯碼路徑從初始狀態(tài)0開始的特點,通過每一時刻通過不斷更新的唯一狀態(tài)譯碼指針,結(jié)合加比選單元輸出的狀態(tài)譯碼信息,指示出當前時刻的譯碼路徑狀態(tài)走向,并輸出當前譯碼結(jié)果。FPGA實現(xiàn)結(jié)果表明,對于(2,1,7)卷積譯碼延時只為2個時鐘周期,實時性好。此外,該方法實現(xiàn)的譯碼器比傳統(tǒng)的追蹤回溯法譯碼器功耗降低60%,并且實現(xiàn)較好的譯碼性能。

1 指針反饋式Viterbi譯碼基本原理

傳統(tǒng)的Viterbi譯碼按照最大似然估計原則,通過計算每一時刻可能的路徑值,最終找出一條最大似然路徑作為譯碼輸出路徑。

本文提出的指針反饋式Viterbi譯碼利用傳統(tǒng)譯碼器每次譯碼從初始狀態(tài)0開始的特點,并且在譯碼過程中,使前一時刻某狀態(tài)只與當前時刻另一狀態(tài)存在一對一指向關(guān)系,從而在每一時刻確定譯碼路徑。與此同時,通過狀態(tài)指針不斷更新當前時刻譯碼路徑上的狀態(tài),實時輸出譯碼結(jié)果。

但是這種方法在遇到輸入序列某區(qū)域存在較多錯碼情況時,很有可能選錯譯碼路徑而導致大面積譯碼錯誤。為了克服上述缺點,卷積編碼器必須做出簡單調(diào)整:當編碼L(L≥4)次后,重新復位輸入,使譯碼重新從狀態(tài)0開始,從而有效阻隔輸入錯碼引起的譯碼錯誤的擴散。在信噪比較高的情況下,該譯碼器能夠在功耗、延時以及性能上得到保證。

為了更好地說明所提出的Viterbi譯碼器算法,現(xiàn)以約束長度K=3、編碼率r=1/2生成多項式g0=1118,g1=1018,并且以L=10的卷積編碼器對數(shù)據(jù)(01011101001000)進行編碼得到(00,11,10,00,01,10,01,00,10,11,11,10,11,00),并經(jīng)過噪聲干擾,對該組噪聲數(shù)據(jù)進行軟判決處理,其譯碼過程如圖1所示。

根據(jù)狀態(tài)轉(zhuǎn)移關(guān)系,狀態(tài)0或狀態(tài)2可能指向下一時刻的狀態(tài)0或狀態(tài)1。當t=1時,狀態(tài)0與狀態(tài)1幸存路徑均源于t=0時的狀態(tài)0,為了使相鄰時刻狀態(tài)轉(zhuǎn)移不出現(xiàn)分叉情況,此時需要對狀態(tài)0和狀態(tài)1更新后的累計路徑距離進行最小值比較,較小的一方狀態(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(即圖中虛線表示),從而實現(xiàn)相鄰兩時刻之間狀態(tài)轉(zhuǎn)移的單一指向性。

為了演示方便,圖1中只給出t≤4時改進后各狀態(tài)幸存路徑情況。另外,從圖中看出譯碼路徑每時刻經(jīng)過的譯碼狀態(tài)的最低位(最低位以下劃線標示)與此刻譯碼比特相同,因此可以采用狀態(tài)指針的方法將其初始化為狀態(tài)0,每一時刻譯出的碼比特反饋更新狀態(tài)指針,進行實時譯碼追蹤。此外,由于L=10,在t=10時,狀態(tài)重新復位到狀態(tài)0,使譯碼器重新從狀態(tài)0出發(fā)以實現(xiàn)連續(xù)譯碼。

620722364374.gif

2 指針反饋式Viterbi譯碼器整體設(shè)計

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

622565981458.gif

2.1 支路度量單元(BMU)

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

620865885820.gif

621331234147.gif

由式(6)和式(7)以及上述判決算法看出,只需對ΔPM和ΔBM進行簡單的加減法以及取符號位,即可實現(xiàn)狀態(tài)間一一指向關(guān)系,硬件實現(xiàn)復雜度低,并且延時少。實現(xiàn)時,每一時刻MACS輸出的各狀態(tài)更新的累計路徑距離反饋給下一時刻MACS的輸入端進行疊加計算,并且將各狀態(tài)記錄當前判決比特輸出至下一模塊中。

2.3 指針反饋追蹤模塊(PFPT)

PFPT模塊通過狀態(tài)指針儲存的譯碼狀態(tài)結(jié)合從MACSU輸出的64位判決比特進行狀態(tài)64選1的操作,最終在每一時刻輸出譯碼結(jié)果,并且將譯碼比特反饋更新狀態(tài)指針,用于下一時刻譯碼路徑狀態(tài)的選取。另外,每進行第1節(jié)中提及的L次譯碼時,狀態(tài)指針復位至狀態(tài)0(008)。

3 FPGA實現(xiàn)結(jié)果及譯碼器性能分析

指針反饋式Viterbi譯碼器對于約束長度大(K≥7)、譯碼狀態(tài)數(shù)較多的情況,其功耗以及性能效果明顯。對第2節(jié)中所述的硬件設(shè)計進行FPGA實現(xiàn),并且對多種Viterbi譯碼器進行功耗等參數(shù)比較。其結(jié)果如表1和表2所示。

622150704117.gif

由表2看出,在相同CMOS工藝情況下,指針反饋式Viterbi譯碼器與參考文獻[6]和參考文獻[7]相比,實現(xiàn)功耗最低;而在相同編碼條件下,本文實現(xiàn)的算法功耗比參考文獻[6]功耗至少降低60%。

另外,將卷積編碼數(shù)據(jù)經(jīng)過加性高斯白噪聲信道后,對噪聲數(shù)據(jù)進行指針反饋式Viterbi譯碼,其仿真結(jié)果與理想無編碼情況作誤比特率(BER)及信噪比(SNR)對比。其結(jié)果如圖6所示,當SNR在6dB附近時,BER約為10-4;而當SNR≥7.2 dB時,BER=0。因此,該譯碼器在較高SNR時性能較好。

622311857551.gif

本文提出了一種指針反饋式Viterbi譯碼器,該譯碼器依靠初始譯碼狀態(tài)從狀態(tài)0開始的特點,相鄰兩時刻各狀態(tài)進行單向一對一轉(zhuǎn)移關(guān)系,并在每時刻通過不斷更新的狀態(tài)指針尋找譯碼路徑上的狀態(tài),同時輸出譯碼結(jié)果。算法仿真以及FPGA和CMOS綜合結(jié)果表明,該Viterbi譯碼器在信噪比較高時有良好的譯碼性能,同時功耗相對一般譯碼器減少60%,硬件實現(xiàn)資源低,譯碼延時少,因此適合于無線局域網(wǎng)和移動通信等系統(tǒng)硬件實現(xiàn)。

參考文獻

[1] 童琦,何洪路,吳明森?;贔PGA的高速并行Viterbi譯碼器的設(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]。微電子學與計算機,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.

作者:溫偉杰,陸許明,朱偉鴻,蔡春曉,譚洪舟

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CMOS
    +關(guān)注

    關(guān)注

    58

    文章

    5621

    瀏覽量

    234495
  • 噪聲
    +關(guān)注

    關(guān)注

    13

    文章

    1099

    瀏覽量

    47281
  • 譯碼器
    +關(guān)注

    關(guān)注

    4

    文章

    310

    瀏覽量

    50156
  • BMU
    BMU
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    10122
收藏 人收藏

    評論

    相關(guān)推薦

    適用于超低功耗低功耗應(yīng)用的獨特高效隔離DC/DC轉(zhuǎn)換

    電子發(fā)燒友網(wǎng)站提供《適用于超低功耗低功耗應(yīng)用的獨特高效隔離DC/DC轉(zhuǎn)換.pdf》資料免費下載
    發(fā)表于 08-31 09:41 ?0次下載
    適用于超<b class='flag-5'>低功耗</b>和<b class='flag-5'>低功耗</b>應(yīng)用的獨特高效隔離<b class='flag-5'>式</b>DC/DC轉(zhuǎn)換<b class='flag-5'>器</b>

    淺談國產(chǎn)異構(gòu)雙核RISC-V+FPGA處理AG32VF407的優(yōu)勢和應(yīng)用場景

    上更多用于低功耗和嵌入場景,但結(jié)合FPGA的異構(gòu)處理可以探索在高性能計算領(lǐng)域的應(yīng)用,特別是在需要高度定制化和靈活性的計算任務(wù)中。 視頻處理與圖像識別 : 在視頻監(jiān)控、自動駕駛等領(lǐng)
    發(fā)表于 08-31 08:32

    低功耗FPGA、處理和ASIC實施啟用LVDS鏈路

    電子發(fā)燒友網(wǎng)站提供《為低功耗FPGA、處理和ASIC實施啟用LVDS鏈路.pdf》資料免費下載
    發(fā)表于 08-29 09:59 ?0次下載
    為<b class='flag-5'>低功耗</b><b class='flag-5'>FPGA</b>、處理<b class='flag-5'>器</b>和ASIC實施啟用LVDS鏈路

    請問如何將CD74HC154這個譯碼器的低電平輸出轉(zhuǎn)換為高電平有效呢?

    請問如何將CD74HC154這個譯碼器的低電平輸出轉(zhuǎn)換為高電平有效呢?初步考慮是給輸出接一個反相,如CD4069?;蛘哂兄苯痈唠娖捷敵鲇行У?b class='flag-5'>譯碼器芯片嗎?
    發(fā)表于 08-09 06:11

    譯碼器、寄存及‘&amp;’取地址符的物理層知識

    一、3位二進制數(shù),可表達2^3=8種狀態(tài),這是38譯碼器。本質(zhì)上它用較少的數(shù)據(jù)位(3bit)組合出(有叫指定)較多的數(shù)據(jù)(8種組合),我們把較少數(shù)據(jù)位的這種‘碼’換個名稱“地址”。 1、 38
    發(fā)表于 07-05 10:22

    OPA3684低功耗電流反饋運算放大器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《OPA3684低功耗電流反饋運算放大器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-15 10:56 ?0次下載
    OPA3684<b class='flag-5'>低功耗</b>電流<b class='flag-5'>反饋</b>運算放大器數(shù)據(jù)表

    OPA890低功耗、寬帶、電壓反饋運算放大器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《OPA890低功耗、寬帶、電壓反饋運算放大器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-13 09:37 ?0次下載
    OPA890<b class='flag-5'>低功耗</b>、寬帶、電壓<b class='flag-5'>反饋</b>運算放大器數(shù)據(jù)表

    OPA694寬帶、低功耗、電流反饋運算放大器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《OPA694寬帶、低功耗、電流反饋運算放大器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-12 09:43 ?0次下載
    OPA694寬帶、<b class='flag-5'>低功耗</b>、電流<b class='flag-5'>反饋</b>運算放大器數(shù)據(jù)表

    指針是什么

    指針是什么? 1.1 淺談指針 理解指針的 兩個要點: 指針是內(nèi)存中一個最小單元的編號,也就是地址; 平時口語中說的
    的頭像 發(fā)表于 11-24 15:50 ?1764次閱讀
    <b class='flag-5'>指針</b>是什么

    如果ic的io口不夠了是否可以通過編碼譯碼器或者鎖存擴展呢?

    如果ic的io口不夠了是否可以通過編碼譯碼器或者鎖存擴展呢,如果是輸出或輸入可以通過以上方法實現(xiàn)串行數(shù)據(jù)與并行相互轉(zhuǎn)化嗎?最好有具體案例列舉~
    發(fā)表于 11-10 08:02

    移位寄存譯碼器有什么區(qū)別?是不是功能差不多?

    移位寄存譯碼器有什么區(qū)別,是不是功能差不多?
    發(fā)表于 11-03 07:28

    低功耗高性價比FPGA器件增添多項新功能

    摘要:萊迪思(Lattice )半導體公司在這應(yīng)用領(lǐng)域已經(jīng)推出兩款低成本帶有SERDES的 FPGA器件系列基礎(chǔ)上,日前又推出采用富士通公司先進的低功耗工藝,目前業(yè)界首款最低功耗與價格并擁有SERDES 功能的
    的頭像 發(fā)表于 10-27 16:54 ?430次閱讀

    8051單片機控制8*8點陣時不用譯碼器可以嗎?

    8051單片機控制8*8點陣時,不用譯碼器可以嗎?8*8總共燈的數(shù)量大于51單片機接口數(shù)量,但是又不會用譯碼器,有沒有不用譯碼器實現(xiàn)控制的方法啊,比如顯示特定兩位數(shù)字之類的。
    發(fā)表于 10-20 06:03

    譯碼器的邏輯功能和使用方法

    譯碼器是一個多輸入、多輸出的組合邏輯電路。它的作用是把給定的代碼進行“翻譯”,變成相應(yīng)的狀態(tài),使輸出通道中相應(yīng)的一路有信號輸出。
    的頭像 發(fā)表于 10-11 12:51 ?7621次閱讀
    <b class='flag-5'>譯碼器</b>的邏輯功能和使用方法

    基于Verilog的經(jīng)典數(shù)字電路設(shè)計(5)譯碼器

    前面講完了編碼,其實不知不覺地,也順便把譯碼器也講了,畢竟,二者是一個相反操作的過程,類似于加減,前進與后退,調(diào)制與解調(diào),F(xiàn)FT 和 IFFT 等等。
    的頭像 發(fā)表于 10-09 17:20 ?1356次閱讀
    基于Verilog的經(jīng)典數(shù)字電路設(shè)計(5)<b class='flag-5'>譯碼器</b>