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