基于硬件加速的NIOSIITurbo解碼器實現(xiàn)外文翻譯_第1頁
基于硬件加速的NIOSIITurbo解碼器實現(xiàn)外文翻譯_第2頁
基于硬件加速的NIOSIITurbo解碼器實現(xiàn)外文翻譯_第3頁
基于硬件加速的NIOSIITurbo解碼器實現(xiàn)外文翻譯_第4頁
基于硬件加速的NIOSIITurbo解碼器實現(xiàn)外文翻譯_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于硬件加速的nios-iiturbo解碼器實現(xiàn) 摘 要本文提出了一種基于硬件加速的nios-ii turbo解碼器的實現(xiàn)。首先,需要構(gòu)建一個包含有一個由兩個并行級聯(lián)的rsc編碼器組成的編碼器和一個基于兩個相同的sova解碼器的解碼器組成的matlab原型。matlab原型的仿真結(jié)果表明,在解碼器中誤碼率在每次迭代中都有下降(下降至10-4),除了低信噪比情況(低于-5db)。然后,將描述并比較兩種基于fpga實現(xiàn)的解碼器。第一種是由一個運(yùn)行在nios ii快速型軟核處理器的軟件實現(xiàn),然而另外一種卻是加入了一個硬件加速器。解碼器的計算能力部分是確定的,并行執(zhí)行從軟件實現(xiàn)轉(zhuǎn)移到硬件加速器。從硬件

2、解碼過程加速實施的結(jié)果來看,ber大致和軟件解碼實現(xiàn)相同,但執(zhí)行時間減少了2534,當(dāng)解碼迭代的次數(shù)增加1至20。與軟件解碼實現(xiàn)相比,硬件加速的方法對資源的需求增加了1016。關(guān)鍵詞:trubo解碼;fpga,軟核處理器;nios-ii;硬件加速;并行第一章 引 言turbo編碼的概念(tc)是在相同的符號序列使用兩個或兩個以上的碼元,然后通過解碼其中一個碼元獲得的相關(guān)性來提升第二個碼元的解碼,以這種迭代的方式,反之亦然。這意味著,兩個完全不同的代碼,其中原碼元數(shù)據(jù)的所有信息都被保留,tc是能夠迭代解碼直到在已解碼符號序列中沒有錯誤存在。因此tc的糾錯性能依賴于兩個碼元之間的差異。為確保兩個代

3、碼之間的高差異特性,一種常用的方法是交錯地輸入序列到其中的一個編碼器,以便它以不同的順序編碼相同的位。因此一個典型的tc單元包括四個要素:編碼器,解碼器,交織器和去交織。tc有很多的用途,因為它接近shannon極限1。例如,tc被應(yīng)用在磁性/光學(xué)數(shù)據(jù)存儲系統(tǒng),adsl調(diào)制解調(diào)器和衛(wèi)星通信2。然而,由于解碼過程中的迭代操作,糾錯性能依賴于實現(xiàn)tc的平臺的計算能力和精度。因此,在嵌入式平臺實現(xiàn)tc編解碼并且充分發(fā)揮其潛力是一個巨大的挑戰(zhàn),因為這樣的平臺往往計算能力和精確度是有限的。這項工作的目的是研究是否能通過硬件加速的方法來改善tc的嵌入式軟件實現(xiàn)性能。這是通過在fpga上合成軟核處理器,為這

4、顆處理器定制tc軟件實現(xiàn)方法,以及設(shè)計和實施一個硬件加速器來減少軟件執(zhí)行時間該軟件的執(zhí)行時間的解決方案。本文的其余部分安排如下:第二章介紹了編碼/解碼鏈的matlab原型。第三章詳細(xì)介紹了軟件和硬件加速器的實現(xiàn)方法。第四章陳述實驗結(jié)果,第五章作一個本文的最后總結(jié)。第二章 matlab的原型圖1 turbo編碼的matlab原型結(jié)構(gòu)方案turbo編碼/解碼器流程如圖1所示。編碼器采用兩個由反饋多項式g1(d)= d2 + d +1和輸出多項式g2(d)= d2 +1和g3(d)= d +1構(gòu)成的遞歸系統(tǒng)卷積碼(rsc)4編碼器。為這個原型設(shè)計的交織器選擇的是二次型,并且輸入塊長度選擇2048位。

5、主要功能模塊,如圖1中間部分,生成一個隨機(jī)比特序列用作為源數(shù)據(jù)。這個序列將被轉(zhuǎn)發(fā)到編碼器來實現(xiàn)所要求使用交織的編碼位串。然而,首先所有位都需要從0/1狀態(tài)轉(zhuǎn)換到-1 /1狀態(tài)以兼容解碼器,然后需要添加加性白高斯噪聲(awgn)來模擬噪聲通道的效果。添加噪聲后,比特串被送到一個叫做軟輸出維特比解碼算法(sova) 6解碼器中,交織器和解交織器在所需的順序上運(yùn)行。a.信道仿真原型實現(xiàn)包括一個當(dāng)用awgn信道時能測試系統(tǒng)的性能仿真通道。因此,需要產(chǎn)生高斯白噪聲,并且需要?dú)w一化編碼序列面的能量。當(dāng)信號噪聲比(snr)是在信道仿真以dbs表示信號噪聲比率的時候,噪聲需要乘以。然后將噪音和編碼序列添加到a

6、wgn仿真信道中。b.測試方法測試包括編碼長序列串?dāng)?shù)據(jù),然后以不同的信噪比增加噪聲。然后帶噪聲的數(shù)據(jù)傳遞到在輸出數(shù)據(jù)之前多次執(zhí)行迭代的解碼器。解碼完成后,將對解碼后的數(shù)據(jù)與原始的數(shù)據(jù)進(jìn)行比較,并且計算出誤碼率。選擇從-8到2db之間以1db的步進(jìn)信噪比來測試該原型,以突顯在較低的信噪比情況下漸進(jìn)的趨勢和在較高的信噪比情況下仍呈現(xiàn)指數(shù)衰減的形狀。測試從1到8次的迭代多個方面執(zhí)行迭代,因為執(zhí)行更多的迭代的好處可忽略不計。此外每個信噪比重復(fù)測試了1000次,計算所產(chǎn)生的一組數(shù)據(jù)的平均值以增加結(jié)果的可靠性。c. matlab仿真結(jié)果吻合的測試結(jié)果如圖2所示。從結(jié)果可以看出,更多的迭代次數(shù)減少了ber,

7、這和預(yù)期是吻合的。此外可見,如果信噪比低于-5 db,這時解碼器不能提高多少接收到的數(shù)據(jù)的質(zhì)量。圖2 matlab仿真結(jié)果。每條曲線顯示了一個描述中所述的特定迭代次數(shù)第三章 fpga實現(xiàn)本章詳細(xì)介紹了軟件和硬件加速解碼器的fpga實現(xiàn)。選擇的平臺是在altera de2開發(fā)板,其中包括cyclone ii系列 ep2c35f672c6 fpga芯片和軟核處理器nios ii。a.軟件實現(xiàn)軟核處理器被設(shè)計成算術(shù)運(yùn)算單元只有整數(shù)計算能力。這意味著一個必須使用一個定點(diǎn)表達(dá)式,或設(shè)計使用一個可執(zhí)行可用的浮點(diǎn)算術(shù)單元。這樣的實現(xiàn)可能為tc的實施提供了一個更好的數(shù)值穩(wěn)定性,并且肯定減輕了它的設(shè)計。然而,一

8、個浮點(diǎn)實施增加了所需的數(shù)值計算,相比簡單的操作,因此,該算法的執(zhí)行時間顯著地增加了。因此,選擇使用一個定點(diǎn)實施,其中所有的數(shù)字都以32位整形表示,放置在216位點(diǎn)。這意味著所有的數(shù)字都乘以216 = 65536,并四舍五入至低于由此產(chǎn)生的數(shù)值最接近的整數(shù)。然而,nios處理器,是不具有將兩個32位數(shù)字以全精度和范圍相乘或者相除的能力。一個后果是,人們必須在所有的乘法運(yùn)算中對范圍或者精度做出一個選擇。其一每個數(shù)除以28(或其中之一除以216),然后再將數(shù)字相乘,或者先將數(shù)字相乘,然后結(jié)果除以216。第一種方法是在乘以數(shù)字之前扔掉扔掉每個數(shù)字的8位精度,而第二種方法可能導(dǎo)致多達(dá)32位溢出位由于(2

9、31-1)2 = 262-232+1,這已經(jīng)不符合一個32位寄存器了。因此嵌入式軟件系統(tǒng)也常被設(shè)計成使用最佳這兩種方法,即一個操作數(shù)除以28,結(jié)果也除以28。整個系統(tǒng)如圖3所示。圖3 turbo解碼器(右)的軟件實現(xiàn)連接到turbo編碼器的matlab實現(xiàn)。在nios ii軟核處理器的嵌入式軟件由5個功能組成:接收數(shù)據(jù)的main,放置在正確的數(shù)據(jù)結(jié)構(gòu),并調(diào)用解碼功能。當(dāng)完成解碼功能后,main將解碼后的數(shù)據(jù)傳送到pc。它還衡量測試其他功能的執(zhí)行時間,并把這個信息傳送到pc。decode負(fù)責(zé)解碼過程中的迭代一部分,它調(diào)用interleave,deinterleave和sova功能模塊。inter

10、leave和deinterleave負(fù)責(zé)la,sys或llr的序列的交織解交織。它被選定為實施二次交織和使用查找表,而不是實施置換比矩陣向量乘法。sova執(zhí)行實際的解碼。軟核處理器的配置如下。軟核類型:nios ii/f,硬件乘法器:embedded multipliers,硬件除法器:yes。外設(shè)如下。sram:512 kb(實際使用情況是只用了400多kb),rs-232 uart,jtag uart和定時器。該系統(tǒng)是由quartus ii套件合成和編程的,c程序使用altera的nios ii ide軟件進(jìn)行編譯并發(fā)送到nios ii/ f。在quartus ii中完成編譯后,總結(jié)報告指

11、出,使用了33216個le中的3250個,即大約占了可用les的10。軟核實現(xiàn)執(zhí)行時間的測量在第四章中陳述。b.硬體加速實施下一步是檢查軟件的實施,通過分析手段找出算法的計算度最密集的部分。在nios ii ide中,pprofiler被稱為niosii-elf-gprof。這個分析器在一定的時間間隔的能夠抽樣程序計數(shù)器并迅速產(chǎn)生抽樣結(jié)果,但它可能無法提供最精確的結(jié)果。分析器輸出是由altera de2開發(fā)板上的工作在50 mhz下的niosii/ f軟核處理器上的turbo解碼器產(chǎn)生的。一個分析器的總結(jié)的平面圖如表一。表1樣本分析概覽因為sova和jacob_log的功能使用的時間占解碼所花

12、費(fèi)的執(zhí)行時間97,這就決定了要分析他們,以確定他們是否可以被加速。為了開始研究其過程,需要結(jié)合優(yōu)先級圖(pg)和數(shù)據(jù)流圖(dfg)對sova和jacob_log功能分析。在圖4中結(jié)合dfg和pg說明了計算的最佳前向和向后路徑成本。圖5說明了結(jié)合dfg和pg的sova計算輸出結(jié)果被稱為sova功能jacob_log功能在如圖6表示。內(nèi)在的并行性可以在圖4-6中的圖案中的dfgs/ pgs聯(lián)合看出。有些意見可以作出的并行說明:在par1cost,par2cost和logprob的計算完成之前,branch0和branch1的計算是不可能的。圖6中的算法需要mu best的知識,在計算完branch

13、0和branch1后,要計算一個臨時的成本來返回mu best。(a)branch0、branch1,(b)syscost、par1cost、par2cost,和(c) 第一項、第二項的計算順序是不相關(guān)的。sova功能中重新安排后的向前和向后的路徑成本的計算如圖7所示執(zhí)行。圖4 pg和dfg的后向和前向的路徑成本評價圖5 pg和dfg度量的從分支輸出計算圖8顯示了第二個部分,利用圖7的mu best和后向mu best計算的外在價值,la,和softoutput,llr,重新計算分支度量。最后的重組功能,jacob_log,在圖9中描述。圖6 稱為sova的jacob_log功能的pg和dfg

14、是為了計算分支的成本,branch0和branch1圖7 為提取固有的并行性重新編排后的代碼順序結(jié)構(gòu)圖8 改進(jìn)了其中外在價值,la,和軟輸出,llr的sova算法的第二部分的計算圖9 為提取固有的并行性而重新編排的jacob log代碼順序結(jié)構(gòu)選擇如圖10所示硬件加速器實現(xiàn)結(jié)構(gòu)。它可以計算出所有三環(huán)路的分支成本,因此,它可以當(dāng)作一個通用模塊來使用。這是一次性解決使用區(qū)域和執(zhí)行時間的方案,但它可以很容易被縮減為幾個可實現(xiàn)的加速器并提供支成本計算。正如在第三章b中軟核實施占用了了3,250個le,在fpga中,這相當(dāng)于les總數(shù)的10。當(dāng)添加了硬件加速器,該區(qū)域消耗量增加至5909個le,這是總面

15、積的16。圖10 算法選定的硬件部分實施第四章 實驗結(jié)果一個實驗測試被用來提供能夠比較兩個不同的turbo編碼實現(xiàn)(tc)所需的數(shù)據(jù),測試執(zhí)行時間,同時也驗證turbo編碼保留原則。本次測試如下:(1)使用matlab生成一個長度為2048隨機(jī)比特序列。(2)添加高斯白噪聲,并確保2分貝的信噪比水平。(3)發(fā)送比特序列到實現(xiàn)模塊,使他們解碼迭代次數(shù)從1到20不等。(4)對這兩種實現(xiàn)解碼所用的時間進(jìn)行測量。測量的時間是在完全相同的方式下消除偏見是測試的。隨著迭代的數(shù)目,應(yīng)該注意時間。測試應(yīng)該包括有無硬件加速兩個情形。第一次測試的結(jié)果,測試兩個實現(xiàn)的執(zhí)行時間,如圖11所示。ber測試結(jié)果如圖12所

16、示。圖11 有無硬件加速時的軟核實現(xiàn)執(zhí)行時間圖12 在不同的信噪比水平下,在matlab和兩個實現(xiàn)的原型獲得的ber。數(shù)字旁邊的曲線表示為特定的迭代次數(shù)曲線第一次測試的結(jié)果表明,結(jié)合軟核和硬件實現(xiàn)的速度比純軟核實現(xiàn)要快。具體來說,例如10迭代,這兩種實現(xiàn)相差2.614s,支持硬件加速實施。結(jié)果還表明,執(zhí)行之間的依賴解碼迭代的時間和數(shù)量有近似線性關(guān)系。詳細(xì)的硬件加速執(zhí)行速度比軟核分別快了34.44和25.13之間,從1到20次迭代次數(shù)來看。這個加速成本是溫和的,因為所需的fpga資源僅從10提高到16(cf.iii.b)。第二次測試的結(jié)果表明,該曲線有兩個實現(xiàn)曲線形狀類似原型解碼器。誤碼率隨提高

17、信噪比和解碼迭代的數(shù)量增加而降低。這表明,turbo碼功能仍然保存下來了。在任何信噪比,實施版本的bers大致相等。然而,相對于原型,兩個實現(xiàn)信噪比2 db的要求較高,以達(dá)到相同的原型的ber。第五章 結(jié)論一個硬件加速的nios-ii渦輪解碼器實施已經(jīng)陳述完成。在第一階段,matlab原型的模擬表明,解碼器每次迭代誤碼率都下降(下降10-4),但在低信噪比情況下(低于-5db)。在第二階段,兩個解碼器的fpga實現(xiàn)已被描述和比較。第一個在一個nios ii/ f軟核處理器上執(zhí)行的軟件,而第二個則增加了硬件加速器?,F(xiàn)已查明解碼器計算能力部分的要求,并行執(zhí)行重組并移動到硬件加速器。兩種實現(xiàn)要求信噪

18、比高2 db來獲得matlab原型實現(xiàn)相同的ber。解碼硬件加速實施過程中結(jié)果在大約相同的ber為軟件執(zhí)行,但執(zhí)行時間減少34和25之間時,解碼迭代是增加從1到20分別。加速執(zhí)行增加所需的資源的數(shù)量與軟件相比,從10增加到16。參考文獻(xiàn)1 shannon, c. e. (1948). a mathematical theory of communication. bell system technical journal, 27:5064. 2 sripimanwat, k., editor (2005). turbo code applications - a journey from a paper to realization. springer.3 jin, y., zhang, f., and ling wu, w. (2006). reduced-complexity turbo equalization for turbo coded mimo/ofdm systems. the journal of china universities of posts and telecommunications, 13(1):93 98.4 sklar, b. (2002). fundamentals of turbo codes.5 takeshita,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論