亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種高速自定義浮點復(fù)數(shù)除法器的制作方法

文檔序號:11386120閱讀:348來源:國知局
本發(fā)明涉及高速實時數(shù)字信號處理領(lǐng)域,特別涉及一種除法器的實現(xiàn)方法,具體是高速自定義浮點復(fù)數(shù)除法器的實現(xiàn)。
背景技術(shù)
::在科學(xué)計算、數(shù)字信號處理尤其是通信數(shù)字信號處理等領(lǐng)域,浮點除法是其中一種重要的運算。相對于其它加(減)乘運算,除法運算的設(shè)計更加復(fù)雜,而且需要更多的時間用于計算商,因此,對于那些有高速實時要求的應(yīng)用,高性能浮點除法器是非常重要的。經(jīng)典除法算法中主要有三大類:查表法(lut),數(shù)字遞歸算法(digitalrecurrence)和函數(shù)迭代算法(functionaliteration)。其中l(wèi)ut方法用于對商精度要求不高的除法中;數(shù)字遞歸算法中最重要的是srt算法,該算法基于減法操作完成除法功能,每進(jìn)行一次減法迭代可以將商精度提高一位,這樣的商收斂過程是線性的,滿足不了高性能要求。函數(shù)迭代算法則是基于乘法迭代過程,商精度能進(jìn)行非線性快速收斂。復(fù)數(shù)除法器至今提出了基于cordic算法,基于goldschmidt算法,以及直接求除數(shù)倒數(shù)的方法?;赾ordic算法對資源消耗及其嚴(yán)重,基本上適用于定點除法器。直接求除數(shù)倒數(shù)的方法是直接求出除數(shù)的倒數(shù),然后再用倒數(shù)分別乘以被除數(shù)的實部和虛部,這樣雖然可以省略一次除法操作,但在全流水實現(xiàn)中,乘法只能在除法完成之后操作,這樣大大增加流水線長度,耗費大量寄存器資源?;趃oldschmidt算法在滿足高精度要求時需消耗大量資源,且基于標(biāo)準(zhǔn)的ieee754格式,因此只能采用雙精度和單精度兩種格式方法,無法在精度要求和資源消耗中進(jìn)行優(yōu)化取舍。目前,針對自定義浮點復(fù)數(shù)的除法器尚未見報道。技術(shù)實現(xiàn)要素:本發(fā)明要解決的技術(shù)問題是:針對現(xiàn)有浮點復(fù)數(shù)除法器中僅適用于雙精度和單精度兩種格式,且在滿足高精度要求時需消耗大量資源等不足,提供一種自定義浮點復(fù)數(shù)除法器的實現(xiàn)方法。本發(fā)明技術(shù)方案的基本思路是:將復(fù)數(shù)除法操作轉(zhuǎn)換成實數(shù)除法操作,并利用乘法迭代中除數(shù)倒數(shù)迭代過程的獨立性,對實部和虛部并行進(jìn)行除法運算,同時得到商的實部和虛部。轉(zhuǎn)換過程表示為:其中a=a×c+b×d,c=b×c-a×d,b=a×a+b×b。本發(fā)明的技術(shù)方案是:一種高速自定義浮點復(fù)數(shù)除法器,其特征在于,包括下述步驟:第一步,利用自定義浮點乘法單元和加法單元計算除數(shù)、被除數(shù)的實部和虛部;以計算a=a×c+b×d來說明計算過程。將參與運算的自定義浮點數(shù)定義為a=man(a)×2exp(a),man(a)為尾數(shù)部分,exp(a)為指數(shù)部分。自定義浮點乘法單元將相應(yīng)乘數(shù)的指數(shù)用基本加法單元作相加運算,尾數(shù)用基本乘法單元作相乘運算。用這種方法分別得到a×c和b×d,作為基本加法器的輸入。然后對基本加法器的和進(jìn)行高位截取,將截取后的指數(shù)和尾數(shù)部分進(jìn)行格式化操作,得到的結(jié)果即為a的指數(shù)和尾數(shù)。所述的格式化操作,是指首先對待格式化數(shù)值的指數(shù)和尾數(shù)部分對齊并調(diào)整好時序;接著,計算尾數(shù)中的符號位個數(shù),同時從指數(shù)部分減去符號位個數(shù)作為格式化后的指數(shù)輸出,而尾數(shù)部分則根據(jù)符號位個數(shù)進(jìn)行左移操作,得到的結(jié)果就是格式化后的指數(shù)和尾數(shù)。第二步,并行計算實部和虛部的除法;步驟(一),對除法輸入的操作數(shù)進(jìn)行預(yù)處理:將操作數(shù)中的尾數(shù)部分取絕對值,并對相應(yīng)的指數(shù)進(jìn)行相減操作,相應(yīng)的符號位進(jìn)行異或操作。同時,在該階段中,需對異常情況進(jìn)行判斷,如判斷除數(shù)是否為0等情況。步驟(二),采用查找表操作計算除數(shù)倒數(shù)近似值1/b:進(jìn)行除數(shù)倒數(shù)近似值的查表操作,將查表所得的結(jié)果應(yīng)用于步驟(三),并對其余輸入數(shù)作相應(yīng)的延時操作;本發(fā)明利用rom實現(xiàn)直接查找表方式。設(shè)計的查找表大小為:tablesize=2n×m(2)采用中點倒數(shù)法,表中每一項對應(yīng)的值如下等式:其中,floor(·)表示向下取整,d等于0.1d1d2...dn,表的輸入索引值為d1d2-...dn,當(dāng)m=n+g,g=0,1,2,3時,則輸出的倒數(shù)的最小精度表示如下:步驟(三),復(fù)數(shù)除法操作實現(xiàn):對其余輸入數(shù)作相應(yīng)時間對齊操作后,進(jìn)行以下迭代過程:na,i+1=na,i×fb,inc,i+1=nc,i×fb,i(5)db,i+1=db,i×fb,i(6)fb,i+1=2-db,i+1(7)其中a和c分別表示被除數(shù)的實部和虛部,b表示除數(shù);ni和di的初始值分別為被除數(shù)和除數(shù)的尾數(shù)部分,fi的初始值則為除數(shù)倒數(shù)的近似值。fi分成了尾數(shù)和指數(shù)兩部分,其中尾數(shù)部分的初始值是2倍除數(shù)的倒數(shù)近似值,即查表所得的結(jié)果,同時,指數(shù)部分相應(yīng)地變成整數(shù)1。將虛部和實部同時并行進(jìn)行求解,同時只利用一次除數(shù)的倒數(shù)值。由于自定義浮點格式設(shè)計的因素,需引入指數(shù)計算。同時在這個過程中進(jìn)行乘法器設(shè)計時,積的位寬為乘數(shù)位寬之和再減去1。第三步,標(biāo)準(zhǔn)格式化輸出;將前面得到的結(jié)果進(jìn)行格式化,再將得到的商格式化成標(biāo)準(zhǔn)格式,然后根據(jù)對異常情況判斷的結(jié)果以及相應(yīng)符號位異或得到的結(jié)果,來判斷格式化后的數(shù)值,并進(jìn)行輸出操作。本發(fā)明的效益效果是:(1)運用fpga的全流水計算能力,實現(xiàn)自定義浮點除法器的快速運算,彌補了除法器運算效率低的問題;(2)結(jié)合算法特點,通過并行實現(xiàn)策略,在不增加除法操作次數(shù)的情況下,將復(fù)數(shù)浮點運算轉(zhuǎn)化為了實數(shù)浮點運算;(3)通過所提出的自定義浮點格式算法,平衡算法精度和資源消耗之間的要求,使得需要用到除法器的算法總體性能大大加強。發(fā)明附圖圖1是本發(fā)明的總體流程圖圖2是a=a×c+b×d的示例說明圖圖3是(a+jc)/b的示例說明圖具體實施方式下面以一個64-bit的自定義浮點格式的復(fù)數(shù)除法器這一具體實例說明本發(fā)明的實施方式,其中指數(shù)部分的位寬為12,尾數(shù)部分的位寬為52。圖1是本發(fā)明的總體流程圖,整個流程可以分為三大步驟:第一步,利用自定義浮點乘加單元實現(xiàn)a、b和c:圖2是a=a×c+b×d的示例說明。a=man(a)×2exp(a),b=man(b)×2exp(b),c=man(c)×2exp(c),d=man(d)×2exp(d)。對尾數(shù)進(jìn)行乘法之后,再對所得的積作高位截取52位,將得到的結(jié)果與指數(shù)部分同時作為基本加法器的輸入,即基本加法器的尾數(shù)部分的位寬為52,指數(shù)部分的位寬為12。然后對基本加法器的和進(jìn)行高位截取52位,得到格式化后的自定義浮點表示數(shù)的尾數(shù)和指數(shù)部分。用這種方法得到最終進(jìn)行除法的除數(shù)b,被除數(shù)的實部a和虛部c的值。第二步,(a+jc)/b的實現(xiàn):步驟(一):對b、a、c的尾數(shù)進(jìn)行預(yù)處理,判斷它們是否為0,再對尾數(shù)部分取絕對值進(jìn)行下一步運算,同時對尾數(shù)的符號位進(jìn)行異或操作,再將異或得到的結(jié)果作為最后輸出的數(shù)值的符號位;而指數(shù)部分則對應(yīng)地進(jìn)行減法操作;步驟(二),采用查找表操作技術(shù)除數(shù)倒數(shù)近似值;本發(fā)明采用直接查找表形式,對于64-bit自定義浮點除法器,初始倒數(shù)值的輸出精度需要達(dá)到14位左右,故設(shè)定輸入索引n為13,g為3,這樣m為16,這個設(shè)定主要是依據(jù)xilinx的塊ram設(shè)定,即m的值取13到16中的任意一個,所消耗的塊ram值是一樣的,故選取最大值16,這樣可獲得的初始倒數(shù)值的最小精度為13.912,塊ram的大小則為tablesize=213×16(8)即需要4個36k的塊ram。在這個階段中,其它的變量作延時寄存。步驟(三):復(fù)數(shù)除法操作實現(xiàn);圖3是(a+jc)/b的示例說明。對于64-bit浮點除法器,只需要兩次迭代。第一次迭代需要兩個16x52的乘法器,乘法器輸出的位寬為67-bit,將得到的67-bit的積截取高52位,同時,第一次迭代還需要相應(yīng)的定點減法。第二次迭代需要兩個52x52的乘法器,得到的結(jié)果同樣做高位截取,即截取52位,最后需要一個52x52的乘法器,以便獲得最終的商的尾數(shù)。因此,整個過程需要2個16x52的乘法器和3個52x52的乘法器。第三步,標(biāo)準(zhǔn)格式化輸出:在這一步驟中,將上一步驟中得到的商進(jìn)行標(biāo)準(zhǔn)格式化,進(jìn)而得到ieee754格式的輸出商,并根據(jù)異常結(jié)果和經(jīng)過異或操作所得到的符號,輸出相應(yīng)的復(fù)數(shù)商。64-bit自定義浮點格式的復(fù)數(shù)除法器在xilinxvirtex-7系列fpga上實現(xiàn)速度可達(dá)300mhz以上,表1顯示了相應(yīng)的資源消耗情況。表的第一列表示寄存器消耗情況,第二列表示查找表消耗情況,第三列表示乘法器消耗情況,第四列表示ram消耗情況。表1資源消耗情況當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1