高速流水線浮點加法器的FPGA實現(xiàn)_第1頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、高速流水線浮點加法器的fpga實現(xiàn)現(xiàn)代信號處理技術(shù)通常都需要舉行大量高速浮點運算。因為浮點數(shù)系統(tǒng)操作比較復(fù)雜,需要專用硬件來完成相關(guān)的操作(在浮點運算中的浮點加法運算幾乎占到所有運算操作的一半以上),所以,浮點加法器是現(xiàn)代信號處理系統(tǒng)中最重要的部件之一。是當(dāng)前數(shù)字討論開發(fā)的一種重要實現(xiàn)形式,它與全定制asic電路相比,具有開發(fā)周期短、成本低等優(yōu)點。但多數(shù)fpga不支持浮點運算,這使fpga在數(shù)值計算、數(shù)據(jù)分析和信號處理等方面受到了限制,因為fpga中關(guān)于浮點數(shù)的運算只能自行設(shè)計,因此,討論浮點加法運算的fpga實現(xiàn)辦法很有須要。1 ieee 754單精度浮點數(shù)標(biāo)準(zhǔn)浮點數(shù)可以在更大的動態(tài)范圍內(nèi)提

2、供更高的精度,通常,當(dāng)定點數(shù)受其精度和動態(tài)范圍所限不能勝任時,浮點數(shù)標(biāo)準(zhǔn)則能夠提供良好的解決計劃。ieee協(xié)會制定的二進制浮點數(shù)標(biāo)準(zhǔn)的基本格式是32位寬(單精度)和64位寬(雙精度),本文采納單精度格式。圖1所示是ieee754單精度浮點數(shù)格式。圖中,用于單精度的32位二進制數(shù)可分為三個自立的部分,其中第0位到22位構(gòu)成尾數(shù),第23位到第30位構(gòu)成指數(shù),第31位是符號位。事實上,上述格式的單精度浮點數(shù)的數(shù)值可表示為:上式中,當(dāng)其為正數(shù)時,s為0;當(dāng)其為負數(shù)時,s為1;(-1)s表示符號。指數(shù)e是on255的變量,e減127可使指數(shù)在2-127到2128變幻。尾數(shù)采納科學(xué)計算法表示:m=1m22

3、m21m20m0。m22,m21,m0,mi為mp的各位,設(shè)計時應(yīng)注重尾數(shù)中隱含的整數(shù)部分1。0是一個特別的數(shù),0的指數(shù)位和尾數(shù)位均為0,符號位可以是1,也可以是0。2 電路的流水線結(jié)構(gòu)普通狀況下,結(jié)構(gòu)化設(shè)計是電路設(shè)計中最重要的設(shè)計辦法之一,采納結(jié)構(gòu)化設(shè)計辦法可以將一個復(fù)雜的電路分割為自立的功能子模塊,然后按一定的原則將各子模塊組合成完整的電路,這幾乎是電路設(shè)計的通用模式。這種設(shè)計辦法便于設(shè)計人員分工合作、實現(xiàn)設(shè)計和功能測試,縮短上市時光、升級和二次開發(fā),因而具有其它辦法無法比擬的優(yōu)勢。結(jié)構(gòu)化設(shè)計基本上可歸結(jié)為兩種辦法:流水線(pipeline)和握手原則。其中握手原則適用于各功能子模塊內(nèi)部運

4、算比較復(fù)雜、數(shù)據(jù)運算時延(latency)不確定的設(shè)計。因為數(shù)據(jù)運算時延不確定,所以,各子模塊間的時序協(xié)作必需通過握手信號的交互才干完成。握手原則設(shè)計的電路普通采納復(fù)雜的有限狀態(tài)機(fsm)作為控制單元,工程設(shè)計難度大,故在設(shè)計時應(yīng)慎重用法。流水線法適用于各功能子模塊內(nèi)部運算容易整齊、數(shù)據(jù)運算時延確定的設(shè)計。因為數(shù)據(jù)運算時延比較確定,各前后級功能子模塊不需要任何交互信號就能完成時序協(xié)作,故可便利地實現(xiàn)數(shù)據(jù)的串行流水運算。流水線控制比較容易,普通不需要設(shè)計特地的有限狀態(tài)機,而且工程設(shè)計簡單,設(shè)計時可優(yōu)先選用。3 工程的fpga實現(xiàn)3.1 開發(fā)環(huán)境和器件挑選本工程開發(fā)可在fpga集成開發(fā)環(huán)境ii

5、8.0 spl中完成。ouartus是世界聞名pld設(shè)計生產(chǎn)廠商公司的綜合性pld開發(fā)軟件,內(nèi)嵌綜合器和器,并有可與第三方工具配合的靈便接口,可以完成從設(shè)計輸入到硬件配置的完整pld設(shè)計流程,而且運行速度快,界面統(tǒng)一,功能集中,易學(xué)易用。本設(shè)計中的器件選用stratix iiep2s15f484c3。stratix ii是altera公司的高性能fpga stratix系列的其次代產(chǎn)品,具有十分高的內(nèi)核性能,在存儲能力、架構(gòu)效率、低功耗和面市準(zhǔn)時等方面均有優(yōu)勢。本系統(tǒng)的頂層框圖2所示。為了顯示清晰,圖2被分成兩個部分顯示。本工程采納異步置位的同步電路設(shè)計辦法,其中clk、reset、enab分

6、離為系統(tǒng)時鐘、系統(tǒng)異步置位、系統(tǒng)使能信號。din_a、din_b分離為兩個輸入的單精度浮點數(shù),data_out則是符合ieee 754標(biāo)準(zhǔn)的兩輸入浮點數(shù)之和。3.2浮點加法運算的實現(xiàn)浮點加法運算可總結(jié)為比較、移位、相加、規(guī)范化等四個步驟,分離對應(yīng)于compare、shift、sum、normalize四個模塊。(1)compare模塊本模塊主要完成兩輸入浮點數(shù)的比較,若din_a、din_b為兩個輸入單精度浮點數(shù),則在一個時鐘周期內(nèi)完成的運算結(jié)果如下:大數(shù)指數(shù)b_exp這里的大數(shù)指肯定值的比較;兩浮點數(shù)的指數(shù)差sube,正數(shù);大數(shù)尾數(shù)b_ma;小數(shù)尾數(shù)s_ma,該尾數(shù)已加入隱含1;和符號c_s

7、gn,為確定輸出結(jié)果的符號;加減挑選add_sub,兩輸入同符號時為0(相加)、異符號時為1(相減),sum模塊中用法實現(xiàn)加減挑選。(2)shift模塊shift模塊的作用主要是按照兩個輸入浮點數(shù)的指數(shù)差來執(zhí)行小數(shù)尾數(shù)(已加入隱含1)向右移動相應(yīng)的位數(shù),以將輸入的兩個浮點數(shù)指數(shù)調(diào)節(jié)為相同的數(shù)(同大數(shù)),若b_exp、sube、b_ma、s_ma、c_sgn、add_sub為輸入信號(其含義見compare模塊),則可輸出如下運算結(jié)果(在一個時鐘周期內(nèi)完成):大數(shù)指數(shù)(sft_bexp),將b_exp信號用寄存器延遲一個周期,以實現(xiàn)時序同步;小數(shù)尾數(shù)(sft_sma),已完成向右移動相應(yīng)的sub

8、e位;大數(shù)尾數(shù)(sft_bma),將b_ma信號用寄存器延遲一個周期,以實現(xiàn)時序同步;和符號(sft_csgn),將c_sgn信號用寄存器延遲一個周期,以實現(xiàn)時序同步;加減挑選(sft_addsub),將add_sub信號用寄存器延遲一個周期,以實現(xiàn)時序同步;(3)sum模塊本模塊可按照加減挑選(sft_addsub(信號完成兩輸入浮點數(shù)尾數(shù)(已加入隱含1)的加減,若sft_bexp、sft_sma、sft_bma、sft_csgn、sft_addsub為輸入信號(其含義見shift模塊),則可輸出如下運算結(jié)果(在一個時鐘周期內(nèi)完成):大數(shù)指數(shù)(sum_bexp),將sft_bexp信號用寄存

9、器延遲一個周期,以實現(xiàn)時序同步;尾數(shù)和(sum_ma),為大數(shù)尾數(shù)與移位后小數(shù)尾數(shù)的和,差(兩尾數(shù)已加入隱含1);和符號(sum_csgn),將sft_csgn信號用寄存器延遲一個周期,以實現(xiàn)時序同步;(4)normalize模塊normalize模塊的作用主要是將前三個模塊的運算結(jié)果規(guī)范為ieee 754單精度浮點數(shù)標(biāo)準(zhǔn),若sum_bexp、sum_ma、sum_csgn為輸入信號(其含義見sum模塊),則其輸出的運算結(jié)果(在一個時鐘周期內(nèi)完成)惟獨一個和輸出(data_out),也就是符合ieee754浮點數(shù)標(biāo)準(zhǔn)的兩個輸入浮點數(shù)的和。4 系統(tǒng)綜合與仿真因為本工程是由compare、shif

10、t、sum、normalize四個模塊組成的,而這四個模塊通過串行方式舉行銜接,每個模塊的操作都在一個時鐘周期內(nèi)完成,因此,囫圇浮點數(shù)加法運算可在四個時鐘周期內(nèi)完成。這使得工程不僅有確定的數(shù)據(jù)運算時延(latency),便于流水線實現(xiàn),而且便利占用的時鐘周期盡可能削減,從而極大地提高了運算的實時性。4.1 工程綜合結(jié)果經(jīng)過quartus ii綜合可知,本設(shè)計用法的stratixep2s15f484c3芯片共用法了641個alut(高級查找表)、188個寄存器、0位內(nèi)存和可達到80 mhz的時鐘頻率,因此可證實,本系統(tǒng)利用合理的資源實現(xiàn)了高速浮點數(shù)加法運算。4.2 工程仿真結(jié)果本工程仿真可用法q

11、uartus ii 8.0內(nèi)嵌式仿真工具來編寫matlab程序,以生成大量隨機單精度浮點數(shù)(以便于提高仿真代碼籠罩率,提高仿真的精確度),然后計算它們相加的結(jié)果,并以文本形式存放在磁盤文件中。編寫matlab程序可產(chǎn)生作為仿真輸入的*vec文件,然后通過時序仿真后生成*tbl文件,再編寫matlab程序提取其中實用的結(jié)果數(shù)據(jù),并與從前磁盤文件中的結(jié)果相比較,以驗證設(shè)計的正確性。圖3所示是其仿真的波形圖。從圖3可以看出表1所列的各種運算關(guān)系。表2所列為其實際的測試數(shù)據(jù)。表中“a+b實數(shù)表示(m)”指matlab計算的結(jié)果;“誤差”指浮點處理器計算結(jié)果與matlab計算結(jié)果之差。綜上所述,本工程設(shè)計的浮點加法器所得到的運算結(jié)果與matlab結(jié)果的誤差在10-7左右,可見其精度徹低能夠符合要求。5 結(jié)束語本工程設(shè)計徹低符合ip核設(shè)計的規(guī)范流程,而且完成了 h

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論