基于Verilog計算可調(diào)的整數(shù)除法器的設(shè)計-設(shè)計應(yīng)用_第1頁
基于Verilog計算可調(diào)的整數(shù)除法器的設(shè)計-設(shè)計應(yīng)用_第2頁
基于Verilog計算可調(diào)的整數(shù)除法器的設(shè)計-設(shè)計應(yīng)用_第3頁
基于Verilog計算可調(diào)的整數(shù)除法器的設(shè)計-設(shè)計應(yīng)用_第4頁
基于Verilog計算可調(diào)的整數(shù)除法器的設(shè)計-設(shè)計應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯基于Verilog計算可調(diào)的整數(shù)除法器的設(shè)計-設(shè)計應(yīng)用0引言

除法器是電子技術(shù)領(lǐng)域的基礎(chǔ)模塊,在電子電路設(shè)計中得到廣泛應(yīng)用。目前,實現(xiàn)除法器的方法有硬件實現(xiàn)和軟件實現(xiàn)兩種方法。硬件實現(xiàn)的方法主要是以硬件的消耗為代價,從而有實現(xiàn)速度快的特點。用硬件的方法來實現(xiàn)除法器的研究很多,如利用微處理器實現(xiàn)快速乘除法運(yùn)算,F(xiàn)PGA實現(xiàn)二進(jìn)制除法運(yùn)算,模擬除法器等;而通過軟件實現(xiàn)的除法器算法,可以大大提高器件的工作頻率和設(shè)計的靈活性,可以從總體上提高設(shè)計性能,而設(shè)計高效實用的算法是除法器的關(guān)鍵,故除法器的算法研究成為現(xiàn)今熱點。

目前,軟件方面主要是通過減法算法來實現(xiàn)除法運(yùn)算,把被除數(shù)作為被減數(shù),除數(shù)作為減數(shù),作減法,直到被減數(shù)小于減數(shù)為止,記錄能夠相減的次數(shù)即得到商的整數(shù)部分。將所得的余數(shù)乘以10作為被減數(shù),除數(shù)作為減數(shù),作減法,差重新置入被減數(shù),反復(fù)相減,直到被減數(shù)小于減數(shù)為止,記錄能夠相減的次數(shù)即得到商的十分位數(shù)值。依此繼續(xù)下去,可得到商的百分位數(shù)值,千分位數(shù)值,……,要到哪一位,就依次做到哪一位。此方法的缺點是速度慢,而且一位的精度不高,為了克服以上的缺點,這里設(shè)計一種算法在軟件上改進(jìn)了除法器運(yùn)算的準(zhǔn)確性和處理速度。

1設(shè)計方法

對于任意給定的兩個整數(shù)fenzi和fenmu,設(shè)fenzi為被除數(shù),fenmu為除數(shù)。為了得到兩個數(shù)相除的十進(jìn)制結(jié)果,本設(shè)計主要通過下面的算法來實現(xiàn),假如要保留小數(shù)點后面的n位有效數(shù)字,首先把fenzi乘以10的n次方,賦值給寄存器變量dataO;接著把fenmu分別乘以10的(n+m),(n+m一1),(n+m一2),…,1,O次方分別賦值給(n+m+1)個不同的變量data(n+m+1),data(n+m),…,datal,其中m是fenzi和fenmu的位數(shù)之差(當(dāng)fenzi的位數(shù)多于fenmu時,m為正,否則為負(fù));先求出商的位的值,如果dataO大于data(n+m+1),則計數(shù)器自動加1,再把dataO和data(n+m+1)的差值賦給data0,再相減直到data0的值小于data(n+m+1),此時計數(shù)器的計數(shù)值就是位的值;依此用同樣的方法繼續(xù)下去,就可得到各個位上的值。對一位進(jìn)行四舍五入處理,當(dāng)相減后的dataOdatal時,再通過比較dataO*2是否大于datal,如果大于datal,則一位計數(shù)器的值加1,否則不變,把得到的整體值除以10的n次方,也就是小數(shù)點往左移動n位。傳統(tǒng)除法算法由于采用多次相減的過程來實現(xiàn),相減的過程耗費了大量時鐘脈沖,而且對運(yùn)算結(jié)果的一位沒有進(jìn)行處理;而本設(shè)計是通過采用位擴(kuò)展使除數(shù)和被除數(shù)位數(shù)相同,進(jìn)而對每一位進(jìn)行分開處理,減少了做減法運(yùn)算的次數(shù),從而提高運(yùn)算速度;同時采用四舍五入的方法對運(yùn)算結(jié)果進(jìn)行處理,提高準(zhǔn)確性。上面算法是一種順序方式,用Verilog硬件描述語言很容易實現(xiàn),圖1為流程圖,其中假定fenzi為3位的整數(shù),fenmu為2位的整數(shù),除法運(yùn)算到百分位。

2仿真結(jié)果及分析

對上述的流程圖用Verilog描述語言編程,在Ca—dence的NC—Verilog仿真器下仿真,設(shè)輸入的Ienzi和fenmu的值分別為128和11,仿真波形如圖2所示。

從圖2的波形可以看出,輸出結(jié)果為1164,除法運(yùn)算要到百分位,所以往左移動2位,其終的值為11.64,而實際的值為11.63636……,經(jīng)過四舍五入得到的結(jié)果完成正確。從仿真時間來看,對于相同的數(shù)值輸入,本設(shè)計只用了12個脈沖,而普通除法器至少需要20個脈沖(128/11=11余7,70/11=*,40/11=3余7,1l+6+3=20),相比之下本設(shè)計的除法算法有很大的優(yōu)勢。

然而對于兩個位數(shù)相差很大的數(shù)相除,則本設(shè)計的速度優(yōu)勢更加的明顯,本設(shè)計每一位的運(yùn)行時間都不會超過9個時鐘脈沖,因此進(jìn)行,z位計算的總脈沖也不會超過9n個,而傳統(tǒng)的除法運(yùn)算需要多個時鐘脈沖,一般會是本設(shè)計時鐘脈沖的數(shù)倍。該算法同樣適合小數(shù)的運(yùn)算,只要把小數(shù)化成整數(shù),再做同樣的處理,就可以得到的結(jié)果。

3結(jié)語

通過對除法器算法的改進(jìn),用四舍五入

溫馨提示

  • 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

提交評論