基于FPGA的高速流水線浮點(diǎn)乘法器設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第1頁(yè)
基于FPGA的高速流水線浮點(diǎn)乘法器設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第2頁(yè)
基于FPGA的高速流水線浮點(diǎn)乘法器設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第3頁(yè)
基于FPGA的高速流水線浮點(diǎn)乘法器設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第4頁(yè)
基于FPGA的高速流水線浮點(diǎn)乘法器設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

精品文檔-下載后可編輯基于FPGA的高速流水線浮點(diǎn)乘法器設(shè)計(jì)-設(shè)計(jì)應(yīng)用摘要:設(shè)計(jì)了一種支持IEEE754浮點(diǎn)標(biāo)準(zhǔn)的32位高速流水線結(jié)構(gòu)浮點(diǎn)乘法器。該乘法器采用新型的基4布思算法,改進(jìn)的4:2壓縮結(jié)構(gòu)和部分積求和電路,完成CarrySave形式的部分積壓縮,再由CarryLook-ahead加法器求得乘積。時(shí)序仿真結(jié)果表明該乘法器可穩(wěn)定運(yùn)行在80M的頻率上,并已成功運(yùn)用在浮點(diǎn)FFT處理器中。

1引言

在數(shù)字化飛速發(fā)展的今天,人們對(duì)微處理器的性能要求也越來(lái)越高。作為衡量微處理器性能的主要標(biāo)準(zhǔn),主頻和乘法器運(yùn)行乘法的周期息息相關(guān)。因此,為了進(jìn)一步提高微處理器性能,開發(fā)高速高精度的乘法器勢(shì)在必行。同時(shí)由于基于IEEE754標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算具有動(dòng)態(tài)范圍大,可實(shí)現(xiàn)高精度,運(yùn)算規(guī)律較定點(diǎn)運(yùn)算更為簡(jiǎn)捷等特點(diǎn),浮點(diǎn)運(yùn)算單元的設(shè)計(jì)研究已獲得廣泛的重視。本文介紹了32位浮點(diǎn)乘法器的設(shè)計(jì),采用了基4布思算法,改進(jìn)的4:2壓縮器及布思編碼算法,并結(jié)合FPGA自身特點(diǎn),使用流水線設(shè)計(jì)技術(shù),在實(shí)現(xiàn)高速浮點(diǎn)乘法的同時(shí),也使是系統(tǒng)具有了高穩(wěn)定性、規(guī)則的結(jié)構(gòu)、易于FPGA實(shí)現(xiàn)及ASIC的HardCopy等特點(diǎn)。

2運(yùn)算規(guī)則及系統(tǒng)結(jié)構(gòu)

2.1浮點(diǎn)數(shù)的表示規(guī)則

本設(shè)計(jì)采用單精度IEEE754格式【2】。設(shè)參與運(yùn)算的兩個(gè)數(shù)A、B均為單精度浮點(diǎn)數(shù),即:

2.2浮點(diǎn)乘法器的硬件系統(tǒng)結(jié)構(gòu)

本設(shè)計(jì)用于專用浮點(diǎn)FFT處理器,因此對(duì)運(yùn)算速度有較高要求。為了保證浮點(diǎn)乘法器可以穩(wěn)定運(yùn)行在80M以下,本設(shè)計(jì)采用了流水線技術(shù)。流水線技術(shù)可提高同步電路的運(yùn)行速度,加大數(shù)據(jù)吞吐量。而FPGA的內(nèi)部結(jié)構(gòu)特點(diǎn)很適合在其中采用流水線設(shè)計(jì),并且只需要極少或者根本不需要額外的成本。綜上所述,根據(jù)系統(tǒng)分割,本設(shè)計(jì)將采用5級(jí)流水處理,圖1為浮點(diǎn)乘法器的硬件結(jié)構(gòu)圖。

3主要模塊設(shè)計(jì)與仿真

3.1指數(shù)處理模塊(E_Adder)設(shè)計(jì)

32位浮點(diǎn)數(shù)格式如文獻(xiàn)【2】中定義。由前述可知,浮點(diǎn)乘法的主要過(guò)程是兩個(gè)尾數(shù)相乘,同時(shí)并行處理指數(shù)相加及溢出檢測(cè)。對(duì)于32位的浮點(diǎn)乘法器而言,其指數(shù)為8位,因而本設(shè)計(jì)采用帶進(jìn)位輸出的8位超前進(jìn)位加法器完成指數(shù)相加、去偏移等操作,具體過(guò)程如下。

E_Adder模塊負(fù)責(zé)完成浮點(diǎn)乘法器運(yùn)算中指數(shù)域的求和運(yùn)算,如下式所示:

其中,E[8]為MSB位產(chǎn)生的進(jìn)位。Bias=127是IEEE754標(biāo)準(zhǔn)中定義的指數(shù)偏移值。Normalization完成規(guī)格化操作,因?yàn)橹笖?shù)求和結(jié)果與尾數(shù)相乘結(jié)果有關(guān)。在本次設(shè)計(jì)中,通過(guò)選擇的方法,幾乎可以在Normalization標(biāo)志產(chǎn)生后立刻獲得積的指數(shù)部分,使E_Adder不處于關(guān)鍵路徑。

本設(shè)計(jì)收集三級(jí)進(jìn)位信號(hào),配合尾數(shù)相乘單元的Normalization信號(hào),對(duì)計(jì)算結(jié)果進(jìn)行規(guī)格化處理,并決定是否輸出無(wú)窮大、無(wú)窮小或正常值。

根據(jù)E_Adder的時(shí)序仿真視圖,可看出設(shè)計(jì)完全符合應(yīng)用需求。

3.2改進(jìn)的Booth編碼器設(shè)計(jì)

由于整個(gè)乘法器的延遲主要決定于相加的部分積個(gè)數(shù),因此必須減少部分積的數(shù)目才能進(jìn)而縮短整個(gè)乘法器的運(yùn)算延遲。本設(shè)計(jì)采用基4布思編碼器,使得部分積減少到13個(gè),并對(duì)傳統(tǒng)的編碼方案進(jìn)行改進(jìn)。編碼算法如表1所示。

由于FPGA具有豐富的與、或門資源,使得該方法在保證速度和準(zhǔn)確性的前提下,充分利用了FPGA內(nèi)部資源,節(jié)省了面積,同時(shí)符合低功耗的要求。

3.3部分積產(chǎn)生與壓縮結(jié)構(gòu)設(shè)計(jì)

3.3.1部分積產(chǎn)生結(jié)構(gòu)

根據(jù)布思編碼器輸出結(jié)果,部分積產(chǎn)生遵循以下公式【4】:

其中,PPi為部分積;Ai為被乘數(shù)。經(jīng)過(guò)隱藏位和符號(hào)位的擴(kuò)展后,26位的被乘數(shù)尾數(shù)將產(chǎn)生13個(gè)部分積。在浮點(diǎn)乘法器中,尾數(shù)運(yùn)算采用的是二進(jìn)制補(bǔ)碼運(yùn)算。因此,當(dāng)NEG=1時(shí)要在部分積的位加1,因?yàn)镻Pi只完成了取反操作。而為了加強(qiáng)設(shè)計(jì)的并行性,部分積位加1操作在部分積壓縮結(jié)構(gòu)中實(shí)現(xiàn)。另外,為了完成有符號(hào)數(shù)相加,需對(duì)部分積的符號(hào)位進(jìn)行擴(kuò)展,其結(jié)果如圖4所示。13個(gè)部分積中,除個(gè)部分積是29位以外,其余部分積擴(kuò)展為32位。其中,個(gè)部分積包括3位符號(hào)擴(kuò)展位“SSS”,第2至13個(gè)部分積的符號(hào)擴(kuò)展位為“SS”,加一操作位為“NN”,遵循如下公式:

其中,i為部分積的行數(shù),sign(i)為第i行部分積的符號(hào)。

3.3.2部分積壓縮結(jié)構(gòu)

本設(shè)計(jì)混合使用4:2壓縮器、3:2壓縮器、全加器和半加器,實(shí)現(xiàn)了13個(gè)部分積的快速壓縮,并保證了精度。本文部分積壓縮結(jié)構(gòu)的劃分如圖2所示。

圖2中,虛線給出了傳統(tǒng)部分積的壓縮劃分,而實(shí)線描述的是本文采用的部分積壓縮結(jié)構(gòu)劃分,這樣的劃分有利于簡(jiǎn)化第二級(jí)的壓縮結(jié)構(gòu),從而在保證速度的基礎(chǔ)上,節(jié)省FPGA內(nèi)部資源。從圖2中可看出,有些位不必計(jì)算,因?yàn)檫@些位是由Booth編碼時(shí)引入的乘數(shù)尾數(shù)的符號(hào)位產(chǎn)生的,48位足以表達(dá)運(yùn)算結(jié)果。

3.3.3改進(jìn)的4:2壓縮器

本設(shè)計(jì)采用廣泛使用的4:2壓縮器,并針對(duì)FPGA內(nèi)部資源特點(diǎn),對(duì)其進(jìn)行了改進(jìn)。如圖3所示。傳統(tǒng)的4:2壓縮器即兩個(gè)全加器級(jí)聯(lián),共需要四個(gè)異或門和8個(gè)與非門。而改進(jìn)的4:2壓縮器需要四個(gè)異或門和兩個(gè)選擇器(MUX)。8個(gè)與非門需要36個(gè)晶體管,而兩個(gè)MUX需要20個(gè)晶體管。同時(shí),F(xiàn)PGA內(nèi)部集成了大量的異或門和選擇器資源,這種設(shè)計(jì)方法也是對(duì)FPGA的一個(gè)充分利用。

由于壓縮部分積需要大量的4:2壓縮器,所以改進(jìn)的電路能在一定程度上減小版圖的面積,也為該乘法器的ASIC后端設(shè)計(jì)帶來(lái)了優(yōu)勢(shì)。另外,改進(jìn)的壓縮器的4個(gè)輸入到輸出S的延時(shí)相同,都是3級(jí)XOR門延時(shí)。

432位浮點(diǎn)乘法器的實(shí)現(xiàn)與仿真

圖4顯示了本設(shè)計(jì)的FPGA時(shí)序仿真結(jié)果,時(shí)序仿真環(huán)境為QuartusII7.0,目標(biāo)芯片為Cyclone系列的EP1C6Q240C8,功能仿真環(huán)境為Modelsim6.0b。整個(gè)設(shè)計(jì)采用VHDL語(yǔ)言進(jìn)行結(jié)構(gòu)描述,綜合策略為面積優(yōu)先。由仿真視圖可看出,該浮點(diǎn)乘法器可穩(wěn)定運(yùn)行在80M及以下頻率,在延時(shí)5個(gè)周期后,以后每一個(gè)周期可穩(wěn)定輸出乘法運(yùn)算結(jié)果,實(shí)現(xiàn)了高吞吐量。如果采用全定制進(jìn)行后端版圖布局布線,乘法器的性能將更加優(yōu)越。

5結(jié)語(yǔ)

本文作者創(chuàng)新點(diǎn):針對(duì)FPGA器件內(nèi)部資源特性,獨(dú)創(chuàng)地提出了一種適合FPGA實(shí)現(xiàn)的5級(jí)流水高速浮點(diǎn)乘法器。該乘法器支持IEEE754標(biāo)準(zhǔn)32位單精度浮點(diǎn)數(shù),采用了基4布思算法、改進(jìn)的布思編碼器、部份積壓縮結(jié)構(gòu)等組件,從而在保

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論