鐘東波 劉玥 謝宇飛
【摘要】 提出了一種應(yīng)用于IEEE802.11a協(xié)議系統(tǒng)的高速Viterbi譯碼器的新結(jié)構(gòu),以一種改進的歸一化管理高效的解決了PMU單元的數(shù)據(jù)溢出問題、采用一種分塊循環(huán)回溯算法以減少延時,并用Verilog語言具體實現(xiàn)。實驗表明在該譯碼器以較少的資源實現(xiàn)了較高的速度,完全滿足IEEE802.11a的協(xié)議標準,具有很高的實用價值。
【關(guān)鍵詞】 FPGA 軟判決 加比選單元 歸一化處理 回溯算法
一、引言
伴隨著無線數(shù)據(jù)傳輸與多媒體應(yīng)用的不斷發(fā)展,無線傳輸系統(tǒng)對傳輸速率與傳輸質(zhì)量保證等方面的要求也相應(yīng)的不斷提高。IEEE802.11a是基于OFDM技術(shù)的高速無線局域網(wǎng)技術(shù)標準。
文章提出了一種應(yīng)用于IEEE802.11a系統(tǒng)的高速Viterbi譯碼器新的結(jié)構(gòu),實踐表明該譯碼器以較少的資源實現(xiàn)了較高的數(shù)據(jù)吞吐量,具有較高的實用價值。
二、Viterbi 譯碼器的基本系統(tǒng)結(jié)構(gòu)
在IEEE802.11a標準中采用(2,1,6)卷積碼,生成多項式為G(x)=(1+x1+x2+x3+x6 ,1+x2+x3+x6+x5),表示為八進制為G=(171,133)8,,其Viterbi譯碼器的基本結(jié)構(gòu)如圖1所示,包括增信單元(depuncture),分支度量單元(BMU),累計路徑度量單元(PMU),加比選單元(ACSU),幸存路徑管理單元(SMU)和譯碼控制單元。
三、改進的Viterbi譯碼器的電路結(jié)構(gòu)
3.1 BUM單元的設(shè)計
分支度量單元(BUM)用于計算接收碼元符號和期望碼元符號之間的距離。軟判決相比硬判決,可以多獲得2dB~3dB的增益。當(dāng)量化電平數(shù)Q>8時獲得的增益變化很小,因此本設(shè)計采用3bit量化。
3.2 歸一化處理
傳統(tǒng)設(shè)計中的歸一化方法,無論是減數(shù)法,還是移位法均需要設(shè)置一個路徑度量門限,每次的路徑度量值均要和判決門限進行比較,再根據(jù)判決結(jié)果決定是否進行歸一化處理。假設(shè)每次和判決門限比較的延時為x,則到達一次譯碼深度的延時為36x,顯然對ACS單元的高速性是不利的。文獻[2] 已經(jīng)證明了每一時刻路徑度量的最大值和最小值滿足:PMmax - PMmin≤ (m - 1) (BMmax - BMmin ) 。
在本設(shè)計中,m = 7, BMmax=14, BMmin=0,最大的路徑量度和最小的路徑量度之間的最大差值為84,需要用 7 bit來表示路徑量度值[3],所以在開始的第一個在約束長度內(nèi),任一狀態(tài)的路徑度量值均不會溢出,那么便可設(shè)置一個模36計數(shù)器,分別在6的倍數(shù)時進行歸一化判決,這樣在譯碼深度之內(nèi)判決延時就變?yōu)樵瓉淼?/6,大大減少了延時,提高了運算速度,且只需要利用控制譯碼深度的計數(shù)器即可,并不需要單獨設(shè)置計數(shù)器。
把64個狀態(tài)度量的最高位相與作為歸一化判決標志,當(dāng)64個狀態(tài)路徑度量值最高位均為1時,由于動態(tài)度量值動態(tài)范圍的限制,所有路徑度量值均沒有溢出,便把所有的路徑度量值右移2位。這樣既防止了溢出,也沒有破壞度量值之間的差別。
而利用譯碼深度計數(shù)器控制歸一化判決的次數(shù),只是增加了一個多路選擇器,硬件開銷極小,有效的減小了延時;由于判決比較次數(shù)減少,相應(yīng)的歸一化次數(shù)也就減少,功耗也比傳統(tǒng)方案有所降低。
3.3改進的回溯算法
本次設(shè)計采用回法,回溯深度為36,采用了一種分塊循環(huán)回溯算法,以減小延時提高速度。
由于對幸存路徑的讀寫不是同時啟止的,故設(shè)置三塊大小為128×36的RAM(每塊由兩塊64×36單元組成),即每塊RAM可以存放兩個回溯深度的幸存路徑,每塊RAM在同一時刻分別完成數(shù)據(jù)寫入、路徑回溯、譯碼輸出的功能。譯碼開始時間,向第一塊RAM寫數(shù)據(jù),當(dāng)達到譯碼深度時,開始回溯讀數(shù)據(jù),由于回溯需要延時36個時鐘周期,輸出數(shù)據(jù)時可以每次從RAM中讀取兩個時刻的數(shù)據(jù)。當(dāng)回溯完畢準備輸出第一個譯碼信息時,第一塊RAM的數(shù)據(jù)中兩個譯碼深度的數(shù)據(jù)正好被讀完。
由于開始回溯和譯碼存在36個譯碼深度的時間差,故還需要一塊RAM作為數(shù)據(jù)緩存?;厮莶僮骱洼敵龌疽恢?,其結(jié)構(gòu)如圖2所示,回溯時每次讀出兩個時刻的幸存路徑值,分別寫入一塊RAM中兩個64b寄存器,并由多路選擇器,每次選擇兩位幸存路徑完成對狀態(tài)寄存器的更新。這樣和輸出RAM構(gòu)成流水,不斷輸出譯碼信息。當(dāng)然還需設(shè)置一個RAM片選控制信號,用于指示哪塊RAM處于工作狀態(tài),并通過譯碼深度控制信號,控制三塊RAM輪流處于不同的工作狀態(tài)。
通過RAM的輪流的讀寫操作,減小了延時。當(dāng)達到譯碼深度時,可以馬上進行回溯,整個回溯模塊延時僅為譯碼深度,即36。相對與傳統(tǒng)的單譯碼向量回溯算法,譯碼輸出速率提高了一倍。
雖然有33%存儲空間的閑置,并且需要增加一些額外控制信號,但是這樣的資源消耗是極其有限的。
四、硬件的仿真與綜合
該譯碼器采用Verilog語言編寫,使用QuartusII9.0軟件進行綜合,布線,并在Altera公司的Cyclone EP2C35F672C6型FPGA上完成了板級驗證。
4.1 資源及速度評估
表1是與幾種具有代表性的高速譯碼器的性能比較。
對比結(jié)果分析:
A、文獻[7]采用的是4比特量化數(shù)為優(yōu)于本文,但是該文回溯深度為36優(yōu)于文獻[7],從實際應(yīng)用上講二者的誤比特率基本相當(dāng)。本設(shè)計的數(shù)據(jù)吞吐量為文獻[7]的70%左右,但是其LE消耗僅為文獻[10]的21%左右,在數(shù)據(jù)吞吐率下降有限的情況下,極大地減少了硬件開銷。
B、文獻[8]采用的是RE算法,速度較高,其最高數(shù)據(jù)吞吐量為231Mbit/s,在同樣的芯片型號下該文的數(shù)據(jù)吞吐量雖然為文獻[8]的70%,但是其資源開銷僅為前者的50%左右,由于該文采用的是三塊ram輪流工作的算法,存儲資源消耗大于文獻[8],但是FPGA的存儲比特都在百萬bit以上,(使用芯片的存儲比特數(shù)超過了700bit),這樣的增加的硬件開銷只占資源總數(shù)的0.6%左右,幾乎可以忽略不計。
C、文獻[9]工作頻率僅為80MHz,雖然采用基四算法使其數(shù)據(jù)吞吐率達到了160Mbit/s,但是消耗了大量的硬件資源,本文設(shè)計的數(shù)據(jù)吞吐量為文獻[12]的72%左右,但是其資源消耗僅為其的18.4%,極大地減少了硬件開銷。
綜上所述,該文提出的Viterbi譯碼器,在僅消耗傳統(tǒng)設(shè)計的20%~50%左右的邏輯資源,卻達到了傳統(tǒng)設(shè)計約70%數(shù)據(jù)吞吐量。
五、結(jié)論
設(shè)計的Viterbi譯碼器采用全并行和流水線結(jié)構(gòu)以提高速度,采用矢量差的“1范數(shù)”代替歐氏距離作為判決距離以減小硬件開銷,以一種改進移位寄存方法高效的解決了數(shù)據(jù)溢出問題,采用改進的TB(回溯)算法以減少延時,經(jīng)仿真和硬件實現(xiàn)表明,該譯碼器以較少的資源實現(xiàn)了較高的數(shù)據(jù)吞吐量,充分滿足了IEEE802.11a的技術(shù)標準,具有較高的實用價值。
參 考 文 獻
[1]IEEE Std 802.11a-1999 Patat 11: wireless LAN Medium Access Control (MAC)and physical Layer (PHY) Specifications[s].Sponsor :LAN/MAN Standards Committee of IEEE Computer Society ;Approved by IEEE–SA Standards Board.1999.
[2]Ungerboeck, H K Thapar . VLSI Architectures for Metric Normalization in the Viterbi Algorithm[ C ] / / . IEEE International Conference on (vol . 3) . 1999: 1497 - 1500.
[3]張健,劉小林,匡鏡明,王 華.高速 Viterbi譯碼器的FPGA實現(xiàn)[J].電訊技術(shù)2006,(3):37-41
[4]劉曉瑩,王一,王新安.應(yīng)用于無線局域網(wǎng)的高速維特比譯碼器電路[J]計算機技術(shù)與發(fā)展,2008,(1):11-14.
[5]Ishitani T. A Scarce-state-transition Viterbi-decoder VLSI for Bit Error Correction [J]. IEEE J. Solid-state Circuits, 1987, 22(4): 575-582.)
[6]I Kang , A N Willson1 A low2power state2sequential Viterbi de2coder for CDMA digital cellular applications1 ISCAS96 , New York : IEEE Press , 19961 272~275.
[7]金文學(xué),劉秉坤,陳 嵐. 低功耗軟判決維特比譯碼器的設(shè)計[J]. 計算機工程,2007,(5):243—245
[8]李 剛,黑 勇,喬樹山,仇玉林. 一種高速 Viterbi譯碼器的設(shè)計與實現(xiàn)[J].電子器件,2007,(5):1186—1189
[9]丁 銳,楊知行,潘長勇. 高速維特比譯碼器的設(shè)計[J].電訊技術(shù),2004,(4):51—54. G