基于StratixⅡEP2S30484C5芯片的乘除法和開方運(yùn)算算法的實(shí)現(xiàn)_第1頁
基于StratixⅡEP2S30484C5芯片的乘除法和開方運(yùn)算算法的實(shí)現(xiàn)_第2頁
基于StratixⅡEP2S30484C5芯片的乘除法和開方運(yùn)算算法的實(shí)現(xiàn)_第3頁
基于StratixⅡEP2S30484C5芯片的乘除法和開方運(yùn)算算法的實(shí)現(xiàn)_第4頁
基于StratixⅡEP2S30484C5芯片的乘除法和開方運(yùn)算算法的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于StratixⅡEP2S30484C5芯片的乘除法和開方運(yùn)算算法的實(shí)現(xiàn)1、引言在FPGA的開發(fā)應(yīng)用中,大多數(shù)EDA軟件(后面以alteraQuartursII為例)都提供乘除法、開方運(yùn)算的設(shè)計向?qū)?,或提供LPM宏函數(shù),但普遍占用資源量大。而在許多信號處理應(yīng)用中,要求計算精度高、資源敏感而計算時延要求并不高,這時我們需要一種保證計算正確且資源開銷最低的FPGA實(shí)現(xiàn)方法,本文給出了實(shí)現(xiàn)乘除法、開方運(yùn)算的FPGA串行實(shí)現(xiàn)算法,并與LPM宏函數(shù)進(jìn)行了性價比比較。結(jié)果表明,本文給出的各算法計算準(zhǔn)確,資源量遠(yuǎn)小于調(diào)用LPM宏函數(shù)。2、算法描述2.1、乘法向左移位操作,那么乘積右移一位,相對而言可以認(rèn)為乘數(shù)被放大兩倍??梢夿ooth算法只采用加法、減法和右移操作便可計算補(bǔ)碼數(shù)據(jù)的乘積。對乘數(shù)從低位開始判斷,根據(jù)兩個數(shù)據(jù)位的情況決定進(jìn)行加法或減法運(yùn)算,每次將乘積項向右移一位。圖1實(shí)現(xiàn)結(jié)構(gòu)如圖1??梢?,本算法將乘法轉(zhuǎn)化為串行的加減和移位運(yùn)算,從而節(jié)省了大量邏輯資源。2.2、除法除法計算我們采用經(jīng)典的計算的方式,這種算法的實(shí)現(xiàn)思路清晰,實(shí)現(xiàn)的結(jié)構(gòu)也很簡單。我們首先介紹原碼除法的實(shí)現(xiàn)。設(shè):A、B均為無符號數(shù),A=1011,B=0011,求A/B。其計算如下圖:圖2其特點(diǎn)可歸納如下:(1)、每次比較余數(shù)(被除數(shù))和除數(shù)的大小,確定商為1還是0;(2)、每做一次減法,保持余數(shù)不動,低位由被除數(shù)低位補(bǔ)進(jìn),再減去右移后的除數(shù)。對于補(bǔ)碼除法運(yùn)算,為了簡化中間判斷過程,我們可以先將除數(shù)和被除數(shù)取模,然后按照原碼的計算方法求出商和余數(shù),再根據(jù)除數(shù)和被除數(shù)的符號對計算結(jié)果進(jìn)行修正即可。由此可見,有符號除法包含了無符號除法的運(yùn)算過程,所以我們這里也著重介紹有符號除法的計算過程。設(shè):被除數(shù)(x)為56位,除數(shù)(y)為28位,考慮所有可能性,則商(q)取56位,余數(shù)(r)取28位。具體實(shí)現(xiàn)步驟如下:(1)、56位余數(shù)移位寄存器shx=mod(x),28位余數(shù)寄存器reg=mod(y),被除數(shù)符號flagx=sign(x),除數(shù)符號flagy=sign(y),29位余數(shù)移位寄存器shr=0,56位余數(shù)移位寄存器shq=0,k=112;(2)、若k為奇數(shù),shr左移一位低位補(bǔ)shx最高位,shx左移一位低位補(bǔ)0;若k為偶數(shù),則ifshrelseshq左移一位低位補(bǔ)1,shr=shr-reg;(3)、重復(fù)步驟2,直到;(4)、結(jié)果修正(如表2)。說明:最后需要根據(jù)A、D的符號和shQ、shR、regD的值對計算結(jié)果進(jìn)行修正。修正方法如下表。表2本算法由于基于經(jīng)典方式實(shí)現(xiàn),思路清晰,同時全串行操作也很大程度上降低了資源量。2.3、開方非冗余算法是經(jīng)典的開方算法,其基于如下計算:圖33、FPGA實(shí)現(xiàn)我們在Altera公司的QuartusⅡ5.1軟件環(huán)境下使用VHDL語言完成了上述各算法,并在StratixⅡEP2S30484C5芯片中實(shí)現(xiàn)。下面給出了各算法的資源消耗情況,并與IP_core作了比較(如表3)。表3可以看出本文中提出的算法對二進(jìn)制數(shù)的乘除法以及開方占用資源很少,而且保證了計算精度;IP_core所用時間最短(輸出時延可調(diào)),但占用邏輯單元隨著位寬的增加急劇上升。由此可見,當(dāng)實(shí)際設(shè)計對邏輯單元使用要求不苛刻時,便可以使用IP_core,其設(shè)計簡單且計算時延小。若對邏輯單元使用有要求且對計算時延不敏感時,使用串行乘除法和開方是很好的選擇。4、結(jié)束語本文給出了乘除法、開方運(yùn)算的FPG

溫馨提示

  • 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

提交評論