夏 飛,聶 晶,李榮春,王文濤
(1.海軍工程大學(xué) 電子工程學(xué)院, 湖北 武漢 430033; 2. 國防科技大學(xué) 計算機(jī)學(xué)院, 湖南 長沙 410073;
3.中國人民解放軍91033部隊, 山東 青島 266034)
?
現(xiàn)場可編程門陣列參數(shù)化多標(biāo)準(zhǔn)高吞吐率基4 Viterbi譯碼器*
夏飛1,聶晶1,李榮春2,王文濤3
(1.海軍工程大學(xué) 電子工程學(xué)院, 湖北 武漢430033; 2. 國防科技大學(xué) 計算機(jī)學(xué)院, 湖南 長沙410073;
3.中國人民解放軍91033部隊, 山東 青島266034)
摘要:為了同時達(dá)到高性能和靈活性的目標(biāo),提出一種基于現(xiàn)場可編程門陣列的參數(shù)化多標(biāo)準(zhǔn)自適應(yīng)基4 Viterbi譯碼器。譯碼器采用3~9可變約束長度,1/2、1/3可變碼率,支持任意截斷長度的糾錯譯碼,并采用碼字無符號量化、加比選單元設(shè)計優(yōu)化和歸一化判斷邏輯分離策略優(yōu)化關(guān)鍵路徑設(shè)計,提高譯碼器工作頻率。實驗結(jié)果表明,該譯碼器能根據(jù)用戶設(shè)定的參數(shù)改變結(jié)構(gòu),在多種通信標(biāo)準(zhǔn)之間實現(xiàn)動態(tài)切換;性能達(dá)到了541 Mbps,明顯優(yōu)于相關(guān)工作;對GPRS,WiMAX,LTE,CDMA,3G等通信標(biāo)準(zhǔn)都取得了良好的誤碼性能,可滿足多種通信標(biāo)準(zhǔn)的譯碼需求。
關(guān)鍵詞:現(xiàn)場可編程門陣列;Viterbi譯碼器;參數(shù)化;多標(biāo)準(zhǔn);基4
隨著通信技術(shù)日新月異的革新和各種無線設(shè)備的誕生,通信標(biāo)準(zhǔn)越來越呈現(xiàn)多樣化的特點。該特點決定了移動終端需要具備針對多種通信標(biāo)準(zhǔn)的自適應(yīng)能力,便于用戶在多個網(wǎng)絡(luò)中實現(xiàn)通信。因此需要開發(fā)一種可以兼容多個通信標(biāo)準(zhǔn),具備多模式、多功能的無線通信系統(tǒng)。該系統(tǒng)可根據(jù)用戶提供的參數(shù)自適應(yīng)地變換系統(tǒng)結(jié)構(gòu),選擇實現(xiàn)某種功能,以適應(yīng)當(dāng)前網(wǎng)絡(luò)標(biāo)準(zhǔn)的通信需求。在上述方案中,系統(tǒng)只包含一個多功能部件,根據(jù)用戶需求選擇參數(shù),動態(tài)變化結(jié)構(gòu),滿足實時通信的需求。這對于移動設(shè)備和無線基站來說,并不需要額外的結(jié)構(gòu)設(shè)計,就可以用較小邏輯資源代價實現(xiàn)多個通信標(biāo)準(zhǔn)間的實時切換,從而有效提高無線設(shè)備的靈活性和可用度。
1研究背景
Viterbi算法是目前使用最廣泛的卷積碼信道譯碼算法。多標(biāo)準(zhǔn)Viterbi譯碼器可以通過實時調(diào)整參數(shù),在多個通信標(biāo)準(zhǔn)間動態(tài)切換,實現(xiàn)相應(yīng)的信道譯碼。表1列出了不同通信標(biāo)準(zhǔn)下,多標(biāo)準(zhǔn)Viterbi譯碼器需要支持的碼率、約束長度、截斷長度等參數(shù)。從表中可以看到,常用的通信標(biāo)準(zhǔn)碼率都在1/2和1/3之間變化,而約束長度在5~9之間變化。
表1 不同通信標(biāo)準(zhǔn)下的典型信道參數(shù)
目前Viterbi譯碼器的研究和實現(xiàn)主要基于數(shù)字信號處理器(Digital Signal Processor, DSP)、專用集成電路(Application Specific Integrated Circuit, ASIC)和現(xiàn)場可編程門陣列(Field-Programmable Gate Array, FPGA)三類計算平臺。由于DSP芯片只能支持固定指令集,其靈活性和并行度都受到限制,譯碼器的吞吐率一般都在20 Mbps以下。ASIC平臺擁有面積小、性能高和功耗低的優(yōu)勢,但是開發(fā)周期長,設(shè)計成本高,而且結(jié)構(gòu)和功能固定,靈活性較差。FPGA則具有成本低、靈活性強(qiáng)的優(yōu)勢,易將多種功能融合到單芯片邏輯結(jié)構(gòu)中。而對多模式多功能無線通信系統(tǒng)來說,必須兼有軟件的靈活性和硬件的高性能。因此,F(xiàn)PGA芯片以其靈活的算法適應(yīng)性、細(xì)粒度并行能力、低硬件代價和高性能功耗比成為參數(shù)化多標(biāo)準(zhǔn)Viterbi譯碼器最理想的實現(xiàn)平臺。
Viterbi譯碼算法主要有基2和基4兩種。基4 Viterbi譯碼器吞吐率較高,但是硬件邏輯實現(xiàn)相對復(fù)雜。隨著通信技術(shù)的迅速發(fā)展,通信系統(tǒng)呈現(xiàn)多樣性及高帶寬的特點,迫切需要吞吐率高且靈活性強(qiáng)的Viterbi譯碼器。本文基于上述需求,在FPGA平臺上首次實現(xiàn)了參數(shù)化多標(biāo)準(zhǔn)基4 Viterbi譯碼器,該譯碼器可實現(xiàn)3~9可變約束長度,1/2、1/3可變碼率和任意截斷長度的糾錯譯碼,性能達(dá)到541 Mbps,明顯優(yōu)于相關(guān)工作。
2相關(guān)工作
根據(jù)算法類型和靈活性,可將現(xiàn)有的基于FPGA的Viterbi譯碼器分為三類[1-11],分別是:基2固定結(jié)構(gòu)譯碼器[1]、基2多標(biāo)準(zhǔn)譯碼器[2]和基4固定結(jié)構(gòu)譯碼器[3-7]。
基2固定結(jié)構(gòu) Viterbi譯碼器功能固定,只能支持某一種通信標(biāo)準(zhǔn)的信道譯碼[1]?;?多標(biāo)準(zhǔn)譯碼器與基2固定結(jié)構(gòu)譯碼器實現(xiàn)的算法相同,但譯碼器中包含了多個功能模塊,可以通過調(diào)整參數(shù)實現(xiàn)多種功能間的動態(tài)切換,從而支持不同通信標(biāo)準(zhǔn)的信道譯碼。Batcha等[2]在FPGA上實現(xiàn)了5和7兩種約束長度的Viterbi譯碼器,其吞吐率為150 Mbps,是目前速度最快的多標(biāo)準(zhǔn)Viterbi譯碼器?;? 多標(biāo)準(zhǔn)譯碼器雖然具有較好的靈活性,但是多個功能模塊占據(jù)了大量邏輯資源,導(dǎo)致其吞吐率不夠,不能滿足某些通信系統(tǒng),如UWB的200 Mbps譯碼速率要求。
相對于基2譯碼器,基4固定結(jié)構(gòu)Viterbi譯碼器性能更高,但復(fù)雜度顯著增加。在頻率相同的情況下,其吞吐率是基2譯碼器的兩倍。Santhi等[6]實現(xiàn)了約束長度為7、碼率為1/3的基4 Viterbi譯碼器。該譯碼器采用兩級流水乒乓結(jié)構(gòu),支持兩幀同時譯碼,吞吐率為274 Mbps,是目前性能最高的基4 Viterbi譯碼器。但是由于其結(jié)構(gòu)固定,不能滿足多個通信標(biāo)準(zhǔn)的譯碼需求,靈活性不足。
為了兼顧高性能和靈活性,提出了參數(shù)化多標(biāo)準(zhǔn)基4 Viterbi譯碼器。譯碼器采用無符號度量計算、新的加比選單元設(shè)計和歸一化判斷邏輯分離策略優(yōu)化關(guān)鍵路徑,工作頻率達(dá)到270.5 MHz,性能達(dá)到541 Mbps,是目前基于FPGA實現(xiàn)的最高性能基2多標(biāo)準(zhǔn)譯碼器[2]的3.60倍,是當(dāng)前最高性能的基4固定結(jié)構(gòu)譯碼器[6]的1.97倍。此外,現(xiàn)有的基4 Viterbi譯碼器只支持6和7兩種[3-7]約束長度,無法滿足多種通信標(biāo)準(zhǔn)需求,而本文實現(xiàn)的譯碼器可支持3~9的約束長度和任意截斷長度的糾錯譯碼,不但性能更高而且靈活性更強(qiáng),可滿足多種通信標(biāo)準(zhǔn)的譯碼需求。
3Viterbi譯碼基本原理
Viterbi算法是一種用于解決有限狀態(tài)離散時間馬爾科夫鏈的狀態(tài)估計問題的優(yōu)化算法。由于Viterbi算法計算復(fù)雜度較低的特性,其被廣泛用于數(shù)字通信系統(tǒng)中卷積碼的譯碼,并取得了良好的譯碼性能。
圖1 基2 Viterbi譯碼網(wǎng)格圖Fig.1 Radix-2 trellis and Radix-2 Viterbi decoding algorithm
圖1所示的狀態(tài)遷移圖顯示了卷積碼譯碼流程,圖中的時間節(jié)點數(shù)為信息碼字的個數(shù)。Viterbi譯碼器從網(wǎng)格圖中找到最大似然路徑。在t時刻,網(wǎng)格圖中每個分支都必須計算狀態(tài)i到狀態(tài)j的分支度量BMt(i,j),每個狀態(tài)i計算路徑度量PMt(i)。每個狀態(tài)完成兩個分支度量和兩個路徑度量的加比選操作,然后選擇較大的路徑度量作為該狀態(tài)的路徑度量,并將對應(yīng)的路徑使用幸存比特SBt(i)的形式存儲在該狀態(tài)。在正向計算生成網(wǎng)格之后,開始逆向回溯尋找信息比特。每個狀態(tài)存儲一個幸存比特,用于標(biāo)識幸存路徑上到達(dá)該狀態(tài)的前一個狀態(tài)。通過幸存路徑上存儲的幸存比特就可以回溯找到最大似然路徑,對應(yīng)的信息比特序列就是最后輸出的譯碼信息。不同的通信標(biāo)準(zhǔn)對應(yīng)著不同的網(wǎng)格圖。圖中的狀態(tài)數(shù)等于2K-1,其中K為約束長度;卷積碼編碼多項式不同,對應(yīng)網(wǎng)格圖中的編碼輸出也不同;分支度量的計算也會隨著碼率的變化而有所變化。
根據(jù)網(wǎng)格圖構(gòu)造不同,Viterbi算法可分為基2 Viterbi算法和基4 Viterbi算法,其區(qū)別如圖2所示。圖2(a)為基2結(jié)構(gòu),每個節(jié)點有兩個輸入,完成兩個分支度量和兩個路徑度量的加比選操作。圖2(b)為基4結(jié)構(gòu),每個節(jié)點有4個輸入,完成4個分支度量和4個路徑度量的加比選操作。其中連續(xù)兩個時間節(jié)點4個狀態(tài)的基2網(wǎng)格可以通過一個時間節(jié)點4個狀態(tài)的基4網(wǎng)格來實現(xiàn)。圖2中PMt(i)是指t時刻狀態(tài)i的路徑度量值。圖2(b)中BMt(2,0)是指基4網(wǎng)格中t時刻狀態(tài)2到0的分支度量值,它等于圖2(a)中基2網(wǎng)格BMt-1(2,0)與BMt(0,0)之和。
(a) 基2子網(wǎng)格(b) Radix-2 (b) 基4子網(wǎng)格(b) Radix-4圖2 基2和基4子網(wǎng)格圖Fig.2 Radix-2 and Radix-4 sub-trellis
4參數(shù)化多標(biāo)準(zhǔn)Viterbi譯碼器體系結(jié)構(gòu)
4.1Viterbi譯碼器總體結(jié)構(gòu)
參數(shù)化多標(biāo)準(zhǔn)基4譯碼器可在工作狀態(tài)下通過動態(tài)參數(shù)配置實時變換結(jié)構(gòu),以適應(yīng)當(dāng)前選擇的通信標(biāo)準(zhǔn),并通過自定義截斷長度,自動尋找合適的譯碼精度和譯碼延遲。
b——輸出的比特位;γt(0)——分支度量值,括號中的數(shù)值為序號。圖3 參數(shù)化多標(biāo)準(zhǔn)Viterbi譯碼器總體結(jié)構(gòu)Fig.3 Architecture of the proposed parameterized multi-standard Viterbi decoder
如圖3所示,譯碼器由控制單元(Control Unit, CU)、碼字轉(zhuǎn)換單元(Symbol Converter, SC)、分支度量計算單元(Branch Measure Unit, BMU)、可重構(gòu)分支度量網(wǎng)絡(luò)(Configurable Branch Measure Network, CBMN)、基4加比選單元(R4 Add Compare and Select Unit, R4 ACSU)、歸一化判斷邏輯(Normalization Decision Logic, NDL)、可重構(gòu)路徑度量網(wǎng)絡(luò)(Configurable Path Measure Network, CPMN)以及回溯譯碼單元(Traceback Decode Unit, TDU)8個部分組成。其譯碼流程如下:首先,譯碼器接收輸入碼字,將碼字轉(zhuǎn)化成無符號整數(shù),將其輸入到BMU。BMU計算網(wǎng)格中每種可能的分支度量值,通過CBMN將正確的分支度量分別送入對應(yīng)的基4 ACSU。基4 ACSU計算出新的路徑度量,送入NDL,并將幸存比特信息送入TDU。NDL判斷路徑度量是否需要歸一化。歸一化后的路徑度量值送入CPMN,并根據(jù)約束長度的變化,自適應(yīng)選擇合適的互聯(lián)關(guān)系,再將新的路徑度量值送回基4 ACSU進(jìn)行迭代計算。TDU執(zhí)行3點回溯算法,對網(wǎng)格進(jìn)行回溯和譯碼,輸出譯碼比特。CU負(fù)責(zé)對整個譯碼算法執(zhí)行過程進(jìn)行流水控制。
譯碼器使用配置寄存器存放參數(shù)。在工作時,通過更新參數(shù)實現(xiàn)譯碼器結(jié)構(gòu)的實時重構(gòu)。碼率R用來重構(gòu)BMU和CBMN單元。整個譯碼器共實例化43個BMU單元,在64個BMU單元中選擇其中的4R個,并且根據(jù)R選擇BMU計算中的第3個碼字。約束長度K用來重構(gòu)R4 ACSU,NDL,CBMN,CPMN模塊。譯碼器根據(jù)R和K值重構(gòu)CBMN的互聯(lián)結(jié)構(gòu),根據(jù)K重構(gòu)CPMN的互聯(lián)結(jié)構(gòu)。譯碼器共實例化28個R4 ACSU單元,根據(jù)碼率R在256個BMU單元中選擇其中的2K-1個。采用截斷譯碼方式(截斷長度根據(jù)參數(shù)L確定),在可重構(gòu)時送入控制單元和回溯譯碼單元,通過流水線實現(xiàn)截斷長度L的3點譯碼算法。在約束度不同的情況下,利用參數(shù)L配置,可以有效地實現(xiàn)譯碼精度和譯碼延遲的折中。
4.2參數(shù)化多標(biāo)準(zhǔn)實現(xiàn)
4.2.1碼率R的參數(shù)化
由于碼率R的變化會引起B(yǎng)MU和CBMN結(jié)構(gòu)的變化,為了實現(xiàn)碼率R的參數(shù)化,上述兩個模塊的結(jié)構(gòu)必須可根據(jù)參數(shù)R實時可重構(gòu)。
如圖3所示,BMU的結(jié)構(gòu)由兩個選擇器和三個加法器組成。當(dāng)碼率為1/2時,選擇器選擇0;當(dāng)碼率為1/3時,選擇器選擇增加的第3個碼字。隨后將三個輸入相加,得到基2的分支度量;再計算相應(yīng)的基4分支度量。t-1和t時刻的兩個基2分支度量同時計算,并且BMU采用流水線結(jié)構(gòu),避免其邏輯延遲成為譯碼器的瓶頸。
CBMN主要將集中計算的分支度量值分布到ACSU中。CBMN可根據(jù)約束長度的變化形成相應(yīng)的映射關(guān)系。CBMN對于每種約束長度都有固定的互聯(lián)結(jié)構(gòu),當(dāng)碼率R分別為1/2和1/3時,約束長度5,7,9都對應(yīng)固定的互聯(lián)結(jié)構(gòu)。CBMN利用選擇器實現(xiàn)固定互聯(lián)結(jié)構(gòu)的自適應(yīng)重構(gòu)。當(dāng)接收到約束長度參數(shù)K后,CBMN利用選擇器根據(jù)約束長度選擇對應(yīng)的互聯(lián)結(jié)構(gòu)。由于CBMN并不在迭代計算路徑中,故通過流水線設(shè)計避免其成為邏輯瓶頸。
4.2.2約束長度K的參數(shù)化
與碼率R類似,約束長度K的變化會引起ACSU、CBMN、CPMN結(jié)構(gòu)的變化。為了實現(xiàn)K的參數(shù)化,ACSU、NDL、CBMN、CPMN的結(jié)構(gòu)必須可根據(jù)參數(shù)K實時可重構(gòu)。這里主要介紹ACSU和CPMN單元的可重構(gòu)設(shè)計。
譯碼器中ACSU的數(shù)量與K相關(guān),為2K-1個,其支持的最大約束長度為9,所以共實例化了256個ACSU。譯碼器工作時,通過當(dāng)前輸入的參數(shù)K實時重構(gòu)ACSU的數(shù)量??刂茊卧看芜x擇使用前2K-1個,并屏蔽其余的ACSU。
CPMN用于連接連續(xù)兩個時間節(jié)點每個狀態(tài)的路徑度量值,并根據(jù)約束長度K的變化選擇合適的互聯(lián)結(jié)構(gòu),實現(xiàn)基4網(wǎng)格圖相鄰時刻狀態(tài)間的互聯(lián)關(guān)系。其中2i狀態(tài)和2i+1狀態(tài)的輸入路徑度量等于i狀態(tài)和i+2K-2狀態(tài)的輸出路徑度量。由于相鄰時刻的基4子網(wǎng)格可以由連續(xù)兩個時刻的基2子網(wǎng)格構(gòu)成,所以將t-2時刻到t時刻的基2子網(wǎng)格中兩個時刻的網(wǎng)格圖合并,可得基4網(wǎng)格中相鄰時刻狀態(tài)間的互聯(lián)關(guān)系。4i狀態(tài)、4i+1狀態(tài)、4i+2狀態(tài)、4i+3狀態(tài)的輸入路徑度量等于i狀態(tài)、i+2K-3狀態(tài)、i+2K-2狀態(tài)、i+3×2K-3狀態(tài)的輸出路徑度量。CPMN通過接收約束長度參數(shù),實時變換相應(yīng)的互聯(lián)結(jié)構(gòu),正確連接相鄰時刻的路徑度量值,實現(xiàn)路徑度量的迭代計算。
4.3高吞吐率優(yōu)化
譯碼器的性能受限于芯片邏輯的關(guān)鍵路徑。為了提高系統(tǒng)吞吐率,采用了無符號量化、無符號基4 ACSU設(shè)計和有效的歸一化策略盡可能縮短譯碼器的關(guān)鍵路徑,并采用流水線實現(xiàn)3點譯碼算法,有效提高了譯碼器的吞吐率。
4.3.1無符號量化
無符號量化通過碼字轉(zhuǎn)換(SC)單元實現(xiàn)。SC單元的主要任務(wù)是將帶符號的碼字及碼字補(bǔ)碼轉(zhuǎn)化成無符號整數(shù)。由于譯碼器采用3比特量化,所以碼字及其補(bǔ)碼的表示范圍為-4到3, 量化振幅為4。為了將其轉(zhuǎn)化成無符號整數(shù),在度量轉(zhuǎn)化單元中,先計算每個碼字的補(bǔ)碼,然后將碼字和其補(bǔ)碼同時加上量化振幅,轉(zhuǎn)化成0到7之間的整數(shù)。其目的是在進(jìn)行加比選計算時,簡化邏輯,降低路徑延遲,從而提高工作頻率。
4.3.2無符號運算的基4 ACSU設(shè)計
基4 ACSU用于實現(xiàn)加比選操作,是譯碼器設(shè)計的關(guān)鍵路徑。常用的兩種設(shè)計方案是采用兩級級聯(lián)比較結(jié)構(gòu)和一級比較結(jié)構(gòu)。前者采用兩級比較結(jié)構(gòu)來完成4個輸入求最大值的過程,設(shè)計簡單,但拉長了關(guān)鍵路徑。為了縮短關(guān)鍵路徑,故采用一級比較結(jié)構(gòu)。如圖4所示,利用四個加法器將輸入的路徑度量值和分值度量值相加,將4個結(jié)果同時送入6個比較器進(jìn)行兩兩比較,然后將結(jié)果送入選擇邏輯,得到幸存比特,利用選擇邏輯在4個結(jié)果中選擇最大值作為最后的路徑度量輸出。ACSU采用組合邏輯實現(xiàn),如果采用帶符號數(shù)補(bǔ)碼的比較和加法[6-7],必須考慮符號操作。如圖4(a)所示,有符號的比較器將待比較的兩個數(shù)的非符號位減法結(jié)果與兩個符號位進(jìn)行異或,得到比較結(jié)果,邏輯實現(xiàn)比較復(fù)雜。而使用無符號整數(shù)作為度量值,通過圖4(b)所示的無符號比較器即可實現(xiàn)比較功能。與圖4(a)相比,通過邏輯簡化,ACSU的關(guān)鍵路徑從8個門延遲降低為4個門延遲,也就意味著在比較器設(shè)計的關(guān)鍵路徑上降低了4個門延遲。
圖4 基4加比選計算結(jié)構(gòu)圖Fig.4 Fabric of R4 ACSU
4.3.3歸一化實現(xiàn)
歸一化是為了防止路徑度量值溢出而將所有度量值都減去一個固定值。歸一化的方法主要有以下幾種[8]:復(fù)位為狀態(tài)0方法、減去最小值方法、MSB(最高有效位)位置零法、模歸一化方法以及最高位清零方法。文獻(xiàn)[8]對上述方法進(jìn)行了模擬驗證,證實了最高位清零法速度最快、功耗最低、面積最小,因此本文采用了該方法。不同的是,本文將歸一化判斷邏輯和加比選單元分離,利用兩級流水的與操作來判斷所有路徑度量值最高位是否為1。若都為1,則在下一個時鐘周期對所有度量值的最高位進(jìn)行清零。其目的是將歸一化判斷邏輯延遲排除在關(guān)鍵路徑之外。需要注意的是,判斷邏輯只取前2K-1最高位進(jìn)行與操作。
4.3.4三點譯碼算法的流水線實現(xiàn)
Viterbi譯碼器一般有兩種回溯方式:寄存器交換法和回溯法[9-10]。前者實現(xiàn)簡單,但是邏輯量過于龐大,其復(fù)雜的交換網(wǎng)絡(luò)也會對設(shè)計頻率造成影響?;厮莘m然占用了一定的存儲資源,但是具有低復(fù)雜度和高頻率的優(yōu)點。
圖5 塊譯碼流水線時空圖Fig.5 Pipeline space-time diagram of block decoding
Viterbi算法在回溯時,不論從哪個狀態(tài)開始,當(dāng)達(dá)到某個特定長度之后,其回溯狀態(tài)將匯集到某個固定的狀態(tài),然后可以再從這個固定狀態(tài)往前回溯最終得到譯碼比特。根據(jù)算法的上述特點,一個塊的操作主要分為前向計算、回溯和譯碼,因此稱為三點回溯算法[11],三部分操作采用流水實現(xiàn)。其中前向計算包括分支度量和加比選計算。本文采用了如圖5所示的回溯算法。每個矩形塊對應(yīng)一個截斷長度的前向計算、回溯、譯碼操作。上文圖3中的控制器(CU)完成算法的流水控制工作。截斷長度L、約束長度K和碼率R均作為參數(shù)輸入,用于實現(xiàn)譯碼器重構(gòu)。其原因是:不同通信標(biāo)準(zhǔn)最合適的截斷長度不同。如果小于這個長度,會對譯碼精度造成一定的損失,而大于這個長度,則會增大譯碼延遲。為了找到譯碼精度和延遲的折中,將截斷長度作為參數(shù)輸入,以便對每種通信標(biāo)準(zhǔn)都能找到兩者的最佳平衡點。L的變化通過設(shè)置控制器中計數(shù)器的上限值來實現(xiàn)。設(shè)計使用的存儲器深度為4L,經(jīng)過4L個時鐘延遲后,開始譯出第一個塊的比特。圖5中譯碼輸出時采用移位寄存,在塊末尾統(tǒng)一輸出,不需要后進(jìn)先出,從而簡化了實現(xiàn)邏輯。
5實驗驗證與性能對比
5.1實驗平臺及驗證方法
在V7系列XC7VX485T FPGA上實現(xiàn)參數(shù)化多標(biāo)準(zhǔn)高吞吐率基4 Viterbi譯碼器。如圖6所示,系統(tǒng)使用了兩塊FPGA開發(fā)板,集成了無線射頻裝置。發(fā)射端先對二進(jìn)制信號源進(jìn)行卷積碼編碼,再進(jìn)行調(diào)制、數(shù)字發(fā)射后送入無線信道;接收端對信號進(jìn)行數(shù)字接收、解調(diào)后,進(jìn)行Viterbi譯碼。在得到譯碼結(jié)果后,將結(jié)果和輸入的二進(jìn)制信號通過軟件比較,得到譯碼器的誤碼率。用戶將設(shè)定的通信標(biāo)準(zhǔn)輸入到自適應(yīng)控制器,將其轉(zhuǎn)化成一系列參數(shù),傳送給編碼器和參數(shù)化多標(biāo)準(zhǔn)Viterbi譯碼器。譯碼器根據(jù)輸入的參數(shù)動態(tài)改變自身結(jié)構(gòu),在不需要全系統(tǒng)重構(gòu)的情況下實時構(gòu)建針對當(dāng)前通信標(biāo)準(zhǔn)的信道譯碼器。
圖6 自適應(yīng)無線通信系統(tǒng)結(jié)構(gòu)框圖Fig.6 Adaptive wireless communication system
5.2FPGA實現(xiàn)結(jié)果
使用ISE10.1工具鏈進(jìn)行綜合、布局、布線,表2列出了設(shè)計實現(xiàn)結(jié)果。為了便于對比,同時實現(xiàn)了約束長度K為9的基2和基4固定結(jié)構(gòu),以及基2和基4參數(shù)化多標(biāo)準(zhǔn)Viterbi譯碼器。從表2可以看出,基2多標(biāo)準(zhǔn)結(jié)構(gòu)與固定結(jié)構(gòu)相比,資源開銷增加23.6%,而基4多標(biāo)準(zhǔn)結(jié)構(gòu)與固定結(jié)構(gòu)相比,資源開銷增加30.1%,與基2相當(dāng)。增加的部分主要用于加比選單元的邏輯實現(xiàn)?;?參數(shù)化多標(biāo)準(zhǔn)結(jié)構(gòu)使用了7823個邏輯單元(Slices),占芯片總邏輯資源的15.1%,其中14%為CPMN和CBMN單元占據(jù)。由于采用了無符號比較和歸一化判斷邏輯流水線策略,關(guān)鍵路徑ACSU的頻率有了顯著提升。實驗結(jié)果表明,譯碼器頻率達(dá)到270.5 MHz,吞吐率達(dá)到541.0 Mbps,與目前最高性能的基2多標(biāo)準(zhǔn)譯碼器[2]相比,性能提升了2.6倍,與最高性能基4 固定結(jié)構(gòu)Viterbi譯碼器[6]相比,性能提升了97%。
表2 基2和基4 Viterbi譯碼器FPGA實現(xiàn)結(jié)果
5.3誤碼性能
為了驗證譯碼器的誤碼性能,本文實現(xiàn)了GPRS,WiMAX,LTE (3GPP-Long Term Evolution),CDMA IS-95A和3G五種通信標(biāo)準(zhǔn)的信道譯碼。信道采用高斯信道,信噪比變化為0到5 dB。針對每種通信標(biāo)準(zhǔn),分別在其約束長度的5,6,7倍截斷長度下測試其誤碼率。實驗結(jié)果證明實現(xiàn)的定點譯碼器誤碼率同軟件模擬的浮點譯碼器相當(dāng)。這也進(jìn)一步證明提出的譯碼器具有良好的靈活性和實用性。
5.4性能比較
表3列出了基于FPGA平臺的基2多標(biāo)準(zhǔn)和基4固定結(jié)構(gòu)Viterbi譯碼器的典型參數(shù)和性能,主要包括基數(shù)、約束長度、碼率、頻率和吞吐率。目前只有基于FPGA的基4固定結(jié)構(gòu)的Viterbi譯碼器,實現(xiàn)約束長度只有6和7兩種,而沒有支持多標(biāo)準(zhǔn)的基4 Viterbi譯碼器,因此無法與相關(guān)工作進(jìn)行直接對比。表3說明,本文實現(xiàn)的譯碼器不但性能更高,而且靈活性更強(qiáng),可以支持約束長度在3~9間變化,并支持GPRS,WiMAX,LTE,CDMA IS-95A,3G等多種通信標(biāo)準(zhǔn)。
6結(jié)論
基于Xilinx XC7VX485T FPGA芯片首次提出并實現(xiàn)了基4參數(shù)化多標(biāo)準(zhǔn)Viterbi譯碼器。該譯碼器可在工作的同時,通過動態(tài)參數(shù)配置實時變換結(jié)構(gòu),在多種功能間切換,實現(xiàn)對通信標(biāo)準(zhǔn)的自適應(yīng),并通過自定義截斷長度達(dá)到最佳譯碼精度和延遲。此外,譯碼器實現(xiàn)了3~9可變約束長度,1/2與1/3可變碼率和任意截斷長度的糾錯譯碼,并采用無符號量化、加比選單元設(shè)計優(yōu)化和歸一化判斷邏輯分離策略優(yōu)化了關(guān)鍵路徑設(shè)計,提高了系統(tǒng)吞吐率。實驗結(jié)果表明,實現(xiàn)的參數(shù)化多標(biāo)準(zhǔn)基4譯碼器吞吐率可達(dá)541 Mbps,是目前基于FPGA的最高性能基2多標(biāo)準(zhǔn)譯碼器[2]的3.60倍,是目前最高性能的基4 固定結(jié)構(gòu)Viterbi譯碼器[6]的1.97倍,其對多種通信標(biāo)準(zhǔn)都取得了良好的誤碼性能,無論是吞吐率還是靈活性都明顯優(yōu)于相關(guān)工作。
表3 FPGA平臺上不同Viterbi譯碼器的相關(guān)參數(shù)及性能比較
參考文獻(xiàn)(References)
[1]Wang L O, Li Z Y. Design and implementation of a parallel processing Viterbi decoder using FPGA[C]//Proceedings of International Conference on Artificial Intelligence and Education, Hangzhou, China, 2010: 77-80.
[2]Batcha M F N, Sha′Ameri A Z. Configurable adaptive Viterbi decoder for GPRS, EDGE and WiMAX[C]//Proceedings of IEEE International Conference on Telecommunications and International Conference on Communications, Malaysia, 2007: 237-241.
[3]Byun S, Lee S, Park S C. Implementation of the modified state mapping Viterbi decoder with radix-4[C]//Proceedings of International Conference on Communication Technology, China, 2006: 1-4.
[4]Hsu Y H, Hsu C Y, Kuo T S. Low complexity radix-4 butterfly design for the Viterbi decoder[C]//Proceedings of IEEE 64th Vehicular Technology Conference, Montreal, Canada, 2006: 1-5.
[5]Abdallah R A, Lee S J, Goel M, et al. Low-power pre-decoding based Viterbi decoder for tail-biting convolutional codes[C]//Proceedings of IEEE Workshop on Signal Processing Systems, Finland, 2009: 185-190.
[6]Santhi M, Lakshminarayanan G, Sundaram R, et al. Synchronous pipelined two-stage radix-4 200Mbps MB-OFDM UWB Viterbi decoder on FPGA[C]//Proceedings of International SoC Design Conference, Busan, Korea, 2009: 468-471.
[7]Choi S W, Kang K M, Sang-Sung S S. A two-stage radix-4 Viterbi decoder for multiband OFDM UWB systems[J]. ETRI Journal, 2008, 30(6):850-852.
[8]Lai K Y T. A high-speed low-power pipelined Viterbi decoder: breaking the ACS-bottleneck[C]//Proceedings of 2010 International Conference on Green Circuits and Systems, Shanghai, China, 2010: 334-337.
[9]Haridas S L, Choudhari N K. Design of Viterbi decoder with minimum transition hybrid register exchange processing[C]//Proceedings of International Conference and Workshop on Emerging Trends in Technology, Mumbai, India, 2010: 432-434.
[10]Khatri D M, Haridas S L. Soft output Viterbi decoder using hybrid register exchange[C]//Proceedings of International Conference and Workshop on Emerging Trends in Technology, Bangalore, India, 2011: 942-945.
[11]王建新, 于貴智. Viterbi譯碼器回溯算法實現(xiàn)研究[J].電子與信息學(xué)報, 2007, 29(2): 278-282.
WANG Jianxin, YU Guizhi. Study on implementation of traceback algorithm in Viterbi decoders[J]. Journal of Electronics & Information Technology, 2007, 29(2): 278-282. (in Chinese)
Parameterized multi-standard high-throughput radix-4 Viterbi decoder on field-programmable gate array
XIAFei1,NIEJing1,LIRongchun2,WANGWentao3
(1. Electronic Engineering College, Naval University of Engineering, Wuhan 430033, China;2. College of Computer Science, National University of Defense Technology, Changsha 410073, China;3. The PLA Unit 91033, Qingdao 266034, China)
Abstract:To achieve the goal of high performance and flexibility, a parameterized multi-standard adaptive radix-4 Viterbi decoder based on the field-programmable gate array was presented. This decoder adopts constraint lengths ranging from 3 to 9, code rates of 1/2 or 1/3 and supports error-correcting decoding of arbitrary truncation lengths. The unsigned quantization, add-compare-select unit optimization and normalization judgment logic separation strategies were used to optimize the design of critical path, so that it can improve system throughput. Experiment results show that: the decoder can change the structures according to the parameters set by users and achieve dynamic switching in multiple communication standards; the throughput can reach up to 541 Mbps, apparently superior to the related works; the decoder achieves low bit error ratio in multiple standards such as GPRS, WiMax, LTE, CDMA and 3G and satisfies the decoding requirements of multiple communication standards.
Key words:field-programmable gate array; Viterbi decoder; parameterization; multi-standard; radix-4
中圖分類號:TN92
文獻(xiàn)標(biāo)志碼:A
文章編號:1001-2486(2016)01-086-07
作者簡介:夏飛(1980—),男,湖南常德人,助理研究員,博士,E-mail:xcyphoenix@nudt.edu.cn;聶晶(通信作者),女,講師,碩士,E-mail: cindyrany222@163.com
基金項目:國家自然科學(xué)基金資助項目(61202127);湖南省學(xué)位與研究生教育專項基金資助項目(YB2013B008)
*收稿日期:2015-02-13
doi:10.11887/j.cn.201601015
http://journal.nudt.edu.cn