專利名稱:一種高速除法器的制作方法
技術(shù)領(lǐng)域:
本實用新型涉及通信、電子技術(shù)領(lǐng)域的數(shù)字信號處理領(lǐng)域,具體涉及一種 高速除法器。
背景技術(shù):
在數(shù)字信號處理領(lǐng)域,除法運算是一個必不可少的處理。尤其是涉及到自 適應(yīng)信號處理,經(jīng)常會遇到歸一化或矩陣運算等處理,而這些都必須通過除法 運算才得以實現(xiàn)。隨著移動通信技術(shù)的發(fā)展,以及數(shù)字信號處理技術(shù)的不斷進 步,在如今的通信、電子設(shè)備中,越來越多的運用了基于信號處理技術(shù)實現(xiàn)的 子系統(tǒng)或模塊,因此,很多算法運算,如加法、減法、乘法和除法運算,都必 須在硬件電路上實現(xiàn),通過固定的硬件電路或是采用一定的算法,結(jié)合己有的 一些硬件電路,而擴展實現(xiàn)應(yīng)有的功能。對于加法、減法處理,硬件電路都是完全支持的;對于乘法運算,很多硬件電路是通過查找表(LUT)來實現(xiàn)的, 一些特殊的器件,還嵌入了專門的乘法處理模塊,如可編程邏輯器件廠商開發(fā) 的高性能FPGA芯片,都具有專門的DSP模塊,可以實現(xiàn)高速的乘法運算。加 法、減法、乘法運算在實際應(yīng)用中,都比較容易實現(xiàn)。但對于除法運算,硬件 電路都是不具備專門的除法模塊的,基本都是通過一定的算法,在現(xiàn)有的硬件 電路資源情況下,通過組合不同資源得以實現(xiàn)除法處理。在專利公開號為CN1423189A的中國申請專利"一種除法器"中,采用移 位加減法的處理方式實現(xiàn)除法器,也是通過利用相應(yīng)算法,控制硬件電路中固 有的加法和減法資源,而得以實現(xiàn)除法處理。該除法器的優(yōu)點在于運算較為精 確,但處理的時鐘周期較長,如一個簡單的32bit除16bit的運算,需要16個時 鐘周期。在數(shù)字信號處理中,處理時鐘周期的拉長,會引入額外的處理延時, 給系統(tǒng)帶來不利的映像。在專利公開號為CN1979411A的中國專利公開了 "一種高速除法器的實現(xiàn) 方法與裝置",其整體處理結(jié)構(gòu)圖如圖l所示,該高速除法器的實現(xiàn)裝置由預(yù) 處理模塊、査找表模塊、插值擬合模塊、乘法器和后處理模塊依次連接組成,預(yù)處理模塊主要是將輸入的除數(shù)和被除數(shù)都轉(zhuǎn)換為無符號數(shù),并記錄商的符號;查找表模塊主要是將區(qū)間[A,B]內(nèi)依據(jù)等分或不等分的間隔分成N段,然 后計算出各分隔點的對應(yīng)倒數(shù),做成表格;插值擬合模塊主要采用插值的方法 得到其余各點處倒數(shù)值的估算;乘法器主要是實現(xiàn)乘法運算,得到商的中間結(jié) 果;后處理模塊是對上述步驟中的數(shù)進行擴大或縮小K倍,得到最后的商。該 方法避免了常規(guī)乘法器結(jié)構(gòu)中的多次移位運算和減法操作,結(jié)構(gòu)簡單,可行性 好、運算速度比較快,大大減少了除法運算的時鐘周期。但該實用新型的運算 精度受限,只比較適合對運算速度要求較高,而對運算精度要求不是很高的場實用新型內(nèi)容本實用新型的目的在于克服上述現(xiàn)有技術(shù)的缺點和不足,提供一種高速除 法器,本實用新型高速除法器為一種運算精度可控的高'速除法器,即可以根據(jù) 實際應(yīng)用要求任意設(shè)定相應(yīng)運算精度,而且,本實用新型高速除法器可以應(yīng)用 在高速數(shù)學(xué)運算處理中,而且運算時間短,處理延時小,結(jié)構(gòu)簡單,可行性好。本實用新型目的通過下述技術(shù)方案實現(xiàn) 一種高速除法器,包括編碼轉(zhuǎn)換 模塊、符號位判決模塊、非零bit位搜索模塊、倒數(shù)值査表模塊、修正調(diào)節(jié)模塊 和乘法處理模塊,所述編碼轉(zhuǎn)換模塊與符號位判決模塊、非零bit位搜索模塊、 倒數(shù)值查表模塊、修正調(diào)節(jié)模塊和乘法處理模塊依次連接,編碼轉(zhuǎn)換模塊、符 號位判決模塊還分別與乘法處理模塊相連接,乘法處理模塊的輸出端輸出除法 運算的結(jié)果。所述乘法處理模塊由LUT、加法模塊或?qū)S贸朔K組成。對于乘法運算, 很多硬件電路是通過LUT實現(xiàn), 一些特殊的器件,還嵌入了專門的乘法處理模 塊,在實際應(yīng)用中,都比較容易實現(xiàn)。本實用新型高速除法器實現(xiàn)高速除法運算,其方法包括下述步驟(1) 編碼轉(zhuǎn)換模塊對除數(shù)和被除數(shù)分別進行碼制轉(zhuǎn)換處理,即將非二進制 補碼的除數(shù)、被除數(shù)分別轉(zhuǎn)換為二進制補碼編碼的除數(shù)、被除數(shù);(2) 符號位判決模塊對二進制補碼編碼的除數(shù)進行分部分解處理,確定分 部分解處理后的二進制補碼編碼的除數(shù)的符號位,作為最后商的正負的參考準(zhǔn) 則;同時,對二進制補碼編碼的除數(shù)進行絕對化處理,以利于進行相應(yīng)的搜索 和查表等處理;(3) 非零bit位搜索模塊從最高bit位開始搜索絕對化處理后的除數(shù)的第一 個非零bit位,同時記錄該非零bit位,并從該非零bit位開始擴展Nbit的數(shù);(4) 倒數(shù)值査表模塊根據(jù)上述非零bit位,并結(jié)合擴展Nbit的數(shù),組成一個數(shù),將該數(shù)作為倒數(shù)值查表模塊中的查找表的地址,査詢該地址,獲得該地址對應(yīng)的倒數(shù)值;(5) 修正調(diào)節(jié)模塊對步驟(4)所述的倒數(shù)值進行修正調(diào)節(jié)處理,即對該 倒數(shù)值進行相應(yīng)的不同倍數(shù)的放大處理;(6) 乘法處理模塊將輸入數(shù)據(jù),即輸入的被除數(shù)與修正調(diào)節(jié)模塊輸入的倒 數(shù)值進行乘法運算處理,并將乘法運算處理后的數(shù)值與步驟(2)所述除數(shù)的符 號位結(jié)合起來,輸出最后的商;也即,由于二進制補碼編碼的除數(shù)已經(jīng)經(jīng)過符 號位判決模塊分部分解處理和絕對化處理,因此,乘法運算處理后的數(shù)值不能 簡單作為高速除法器的最后結(jié)果,需要結(jié)合除數(shù)的符號位才能確定;當(dāng)除數(shù)為 正數(shù)的時候,乘法運算處理后的數(shù)值即為高速除法器的商;當(dāng)除法為負數(shù)的時 候,乘法運算處理后的數(shù)值的相反數(shù)才是高速除法器的商。上述方法中,步驟(4)所述的倒數(shù)值查表模塊根據(jù)上述非零bit位,并結(jié) 合擴展Nbit的數(shù),組成一個數(shù),將該數(shù)作為倒數(shù)值査表模塊中的査找表的地址, 査詢該地址,獲得該地址對應(yīng)的倒數(shù)值;該倒數(shù)值的運算精度可以通過在步驟 (3)中擴大或減少N的數(shù)值來提高或降低査找表的深度來控制,進而控制高速 除法器的運算精度;也可以通過擴大或減少查找表的寬度,以加大或減少查找 表中數(shù)據(jù)的位寬來控制,進而控制高速除法器的運算精度;也還可以將擴大或 減少N的數(shù)值、擴大或減少査找表的寬度這兩種處理方式結(jié)合起來,也即將提 高或降低査找表的深度和以加大或減少査找表中數(shù)據(jù)的位寬結(jié)合起來,更好地 控制該倒數(shù)值的運算精度,進而更好地控制高速除法器的運算精度。上述方法中,步驟(6)所述乘法處理模塊進行乘法運算處理的運算精度,可以通過控制乘法處理模塊輸入數(shù)據(jù)和輸出的商的位寬來控制。本實用新型的基本原理如下為了獲得除法運算后的結(jié)果Quotient = ^E4,將其除法運算轉(zhuǎn)化為乘法運算,也即 DivisorQuotient = Dividend x——^——=Dividend x [(D/v&or的符號位)-^-],Divisor abs(Divisor)其中,abs(Divisor)表示Divisor的絕對值。由上式可知,為了實現(xiàn)除法運算,計算_^_的時候,先將Divisor進行分部分解處理,得到Divisor的符號位,Divisor再對Divisor進行絕對化處理得到abs(Divisor), -^-通過對abs(Divisor)abs(Divisor)進行搜索、控制和查找表(具體操作如步驟(4)、 (5)和(6))來獲得。然后將^^——和Dividend進行乘法運算,進而將乘法運算結(jié)果與步驟(2)所述 abs(Divisor)Divisor的符號位結(jié)合起來,最后得到的結(jié)果即為商Quotient 。其中,倒數(shù)值^的運算精度可以通過查找表的深度和寬度來精確 abs(Divisor)控制,該倒數(shù)值的運算精度也直接影響到商Quotient的精確度。乘法運算處理 可以通過LUT、加法模塊或是通過專用乘法模塊實現(xiàn)。本實用新型相對于現(xiàn)有技術(shù)具有以下優(yōu)點(1) 本實用新型的除法運算的精度可以根據(jù)要求任意控制和調(diào)整可以滿 足多種應(yīng)用場合的要求;(2) 本實用新型避免了常規(guī)的移位、加減法運算,也避免近似擬合的處 理思路,而直接采用查表和乘法的處理,大大減少了除法運算的時鐘周期,簡 化了設(shè)計,適合硬件電路實現(xiàn);(3) 本實用新型的除法運算基于乘法結(jié)構(gòu),確保高速除法器可以工作在 高速時鐘頻率下,因此,適合高速數(shù)字信號處理場合;(4) 本實用新型一種高速除法器的結(jié)構(gòu)簡單,可行性好,易于設(shè)計和實現(xiàn)。
圖1是專利公開號CN1979411A的中國專利"一種高速除法器的實現(xiàn)方法 與裝置"的結(jié)構(gòu)圖;圖2是本實用新型一種高速除法器的結(jié)構(gòu)示意圖;圖3是本實用新型中的非零bit位搜索算法模塊的工作流程圖;圖4是本實用新型中修正調(diào)節(jié)模塊對倒數(shù)值的修正調(diào)節(jié)處理的示意圖具體實施方式
下面結(jié)合實施例及附圖,對本實用新型作進一步地詳細說明,但本實用新型的實施方式不限于此。 實施例本實用新型的基本原理如下為了獲得除法運算后的結(jié)果Quotient = ^£^,將其除法運算轉(zhuǎn)化為乘法運算,也即 DivisorQuotient = Dividend x——^——=Dividend x [(Z)/v&or的符號位),,工.~~7],Divisor abs(Divisor)其中,abs(Divisor)表示Divisor的絕對值。由上式可知,為了實現(xiàn)除法運算,計算_^的時候,先將Divisor進行分部分解處理,得到Divisor的符號位,Divisor再對Divisor進行絕對化處理得到abs(Divisor), -^-通過對abs(Divisor)abs(Divisor)進行搜索、控制和査找表(具體操作如步驟(4)、 (5)和(6))來獲得。然后將——^——和Dividend進行乘法運算,進而將乘法運算結(jié)果與步驟(2)所述 abs(Divisor)Divisor的符號位結(jié)合起來(即進行乘法運算),最后得到的結(jié)果即為商Quotient 。其中,倒數(shù)值~~^~~^的運算精度可以通過査找表的深度和寬度來精確 abs(Divisor)控制,該倒數(shù)值的運算精度也直接影響到商Quotient的精確度。乘法運算處理 可以通過LUT、加法模塊或是通過專用乘法模塊實現(xiàn)。圖2所示為本實用新型的具體結(jié)構(gòu), 一種高速除法器包括編碼轉(zhuǎn)換模塊、 符號位判決模塊、非零bit位搜索模塊、倒數(shù)值查表模塊、修正調(diào)節(jié)模塊和乘 法處理模塊,所述編碼轉(zhuǎn)換模塊與符號位判決模塊、非零bit位搜索模塊、倒 數(shù)值查表模塊、修正調(diào)節(jié)模塊和乘法處理模塊依次連接,編碼轉(zhuǎn)換模塊、符號 位判決模塊還分別與乘法處理模塊相連接,乘法處理模塊的輸出端輸出除法運 算的結(jié)果。所述乘法處理模塊由LUT、加法模塊或?qū)S贸朔K組成。對于乘法運算, 很多硬件電路是通過LUT實現(xiàn), 一些特殊的器件,還嵌入了專門的乘法處理模 塊,在實際應(yīng)用中,都比較容易實現(xiàn)。上述高速除法器實現(xiàn)高速除法運算的方法,包括下述步驟 (1)編碼轉(zhuǎn)換模塊對特定數(shù)值(包括除數(shù)和被除數(shù))分別進行碼制轉(zhuǎn)換處理,即將非二進制補碼的除數(shù)、被除數(shù)分別轉(zhuǎn)換為二進制補碼編碼的除數(shù)、 被除數(shù);由于編碼的方式很多,有偏移碼、二進制補碼、二進制無極性碼、1 的補碼等,在本實用新型中,編碼轉(zhuǎn)換模塊將非二進制補碼的數(shù)值轉(zhuǎn)換為二進制補碼編碼的數(shù)值,以便于后續(xù)的運算處理;二進制補碼的編碼方式,對于數(shù) 學(xué)運算非常有利,便于數(shù)字信號處理和運算,本實用新型的乘法運算處理也是 基于二進制補碼的編碼方式的;(2) 根據(jù)如下處理"PM,的符號位)——^——",可知,要計算出_^_abs(Divisor) Divisor的值,先要進行Divisor的符號位分離處理;因此,所述符號位判決模塊對二 進制補碼編碼的除數(shù)進行分部分解處理,確定分部分解處理后的二進制補碼編 碼的除數(shù)的符號位即除數(shù)的正負情況,作為最后商的正負的參考準(zhǔn)則;同時, 對二進制補碼編碼的除數(shù)進行絕對化處理,以利于進行相應(yīng)的搜索和查表等處 理;(3) 所述非零bit位搜索模塊是本實用新型中的一個重要組成部分,它主 要確定了本實用新型中的除法運算的運算精度;由于經(jīng)過絕對值化處理后的除 數(shù),己經(jīng)轉(zhuǎn)變?yōu)橐粋€無符號數(shù),其直接表現(xiàn)就是除數(shù)對應(yīng)的倒數(shù)己經(jīng)是一個非 負數(shù),因此,通過二進制碼表示,其最高bit位已經(jīng)是一個O;非零bit位搜索 模塊從最高bit位開始搜索絕對化處理后的除數(shù)的第一個非零bit位,同時記錄 該非零bit位,并從該非零bit位開始,擴展Nbit的數(shù)作為步驟(4)中的查找 表的深度參考,顯然,N越大,相應(yīng)的查找表深度越深,倒數(shù)值的運算精度也 越高,這樣就可以通過控制查找表的深度,來控制倒數(shù)值的運算精度,進而控 制整個除法運算的精度;圖3是本實用新型中的非零bit位搜索算法模塊的工作流程圖。對于Mbit 的一個數(shù),由于本實用新型中的符號位判決模塊己經(jīng)對除數(shù)進行了絕對值化處 理,因此,對于Mbit的數(shù),其最高bit位是為0的,囪此,從第M-lbit位開 始搜索,直至搜索到第一個非零bit位,記錄該bit位所對應(yīng)的位置,便于后續(xù) 的修正調(diào)節(jié)處理,搜索到第一個非零bit位之后,再擴展Nbit的數(shù)。(4) 倒數(shù)值查表模塊根據(jù)上述非零bit位,并結(jié)合擴展Nbit的數(shù),組成 一個N+1 bit的數(shù),將該數(shù)作為倒數(shù)值査表模塊中的查找表的地址,查詢該地 址,獲得該地址對應(yīng)的倒數(shù)值;因此,查找表中的數(shù)據(jù)要根據(jù)每個數(shù)A,在地址A存放對應(yīng)的Z數(shù)值,這樣,以使得查表運算簡單、容易控制和實現(xiàn);(5) 修正調(diào)節(jié)模塊對步驟(4)所述的倒數(shù)值進行修正調(diào)節(jié)處理,即對該倒數(shù)值進行相應(yīng)的不同倍數(shù)的放大處理;由于對于不同的數(shù)A和B,其非零bit 位的起始點是不同的,但其對應(yīng)擴展的N bit數(shù)值是完全一樣的,這樣,直接 查表后的數(shù)值,對于A和B來說都是一樣的,顯然,這個時候的數(shù)值是不對應(yīng)于丄和丄,因此,需要進行相應(yīng)的修正調(diào)節(jié)處理,才能獲得對應(yīng)的丄和丄; A B A B圖4是修正調(diào)節(jié)模塊對倒數(shù)值的修正調(diào)節(jié)處理的示意圖。如圖所示,對于 同為libit的A和B兩個數(shù),各自找到第一個非零bit位之后,同時擴展4bit, 也即結(jié)合非零bit位,組成一個5bit的數(shù)值,由圖可知,對于A和B來說,5bit 數(shù)同為"10111",因此,如果以"10111"作為查找表地址,得到對應(yīng)的倒數(shù) 值C,如果不加以修正處理,A和B得到的倒數(shù)值都為C,顯然,這個結(jié)果是 不正確的。因此,要結(jié)合A和B對應(yīng)的非零bit位的起始點,對査表后得到的 C值進行修正,也即進行不同倍數(shù)的放大處理,分別得到D和E,而修正后的 D和E分別對應(yīng)A和B的正確倒數(shù)值。具體的放大倍數(shù),根據(jù)非零bit位的起 始點,進行確定即可。(6) 乘法處理模塊將輸入數(shù)據(jù),即輸入的被除數(shù)與修正調(diào)節(jié)模塊輸入的倒 數(shù)值進行乘法運算處理,并將乘法運算處理后的數(shù)值與步驟(2)所述除數(shù)的符 號位結(jié)合起來,輸出最后的商;也即,由于二進制補碼編碼的除數(shù)已經(jīng)經(jīng)過符 號位判決模塊分部分解處理和絕對化處理,因此,乘法運算處理后的數(shù)值不能 簡單作為高速除法器的最后結(jié)果,需要結(jié)合除數(shù)的符號位才能確定;當(dāng)除數(shù)為 正數(shù)的時候,乘法運算處理后的數(shù)值即為高速除法器的商;當(dāng)除法為負數(shù)的時 候,乘法運算處理后的數(shù)值的相反數(shù)才是高速除法器的商。上述方法中,步驟(4)所述的倒數(shù)值查表模塊根據(jù)上述非零bit位,并結(jié) 合擴展Nbit的數(shù),組成一個數(shù),將該數(shù)作為倒數(shù)值査表模塊中的查找表的地址, 查詢該地址,獲得該地址對應(yīng)的倒數(shù)值;該倒數(shù)值的運算精度可以通過在步驟 (3)中擴大或減少N的數(shù)值來提高或降低查找表的深度來控制,進而控制高速 除法器的運算精度;也可以通過擴大或減少査找表的寬度,以加大或減少査找 表中數(shù)據(jù)的位寬來控制,進而控制高速除法器的運算精度;也還可以將擴大或 減少N的數(shù)值、擴大或減少查找表的寬度這兩種處理方式結(jié)合起來,也即將提高或降低査找表的深度和以加大或減少査找表中數(shù)據(jù)的位寬結(jié)合起來,更好地 控制該倒數(shù)值的運算精度,進而更好地控制高速除法器的運算精度。上述方法中,步驟(6)所述乘法處理模塊進行乘法運算處理的運算精度,可以通過控制乘法處理模塊輸入數(shù)據(jù)和輸出的商的位寬來控制。由上述方法可知,本實用新型除法運算的精度,主要受控于倒數(shù)值的運算 精度以及乘法處理模塊的運算精度,對于倒數(shù)值的運算精度,可以通過控制查 找表的深度和寬帶來實現(xiàn)對運算精度的控制,而乘法處理模塊的運算精度,也 可以通過控制乘法處理模塊的位寬來控制,因此,本實用新型的除法運算的精 度,可以根據(jù)需求,任意控制。上述實施例為本實用新型較佳的實施方式,但本實用新型的實施方式并不 受上述實施例的限制,其他的任何未背離本實用新型的精神實質(zhì)與原理下所作 的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本實用 新型的保護范圍之內(nèi)。
權(quán)利要求1、一種高速除法器,其特征在于包括編碼轉(zhuǎn)換模塊、符號位判決模塊、非零bit位搜索模塊、倒數(shù)值查表模塊、修正調(diào)節(jié)模塊和乘法處理模塊,所述編碼轉(zhuǎn)換模塊與符號位判決模塊、非零bit位搜索模塊、倒數(shù)值查表模塊、修正調(diào)節(jié)模塊和乘法處理模塊依次連接,編碼轉(zhuǎn)換模塊、符號位判決模塊還分別與乘法處理模塊相連接。
2、 根據(jù)權(quán)利要求1所述的一種高速除法運算,其特征在于所述乘法處理 模塊由LUT、加法模塊或?qū)S贸朔K組成。
專利摘要本實用新型提供了一種高速除法器,包括編碼轉(zhuǎn)換模塊、符號位判決模塊、非零bit位搜索模塊、倒數(shù)值查表模塊、修正調(diào)節(jié)模塊和乘法處理模塊,所述編碼轉(zhuǎn)換模塊與符號位判決模塊、非零bit位搜索模塊、倒數(shù)值查表模塊、修正調(diào)節(jié)模塊和乘法處理模塊依次連接,編碼轉(zhuǎn)換模塊、符號位判決模塊還分別與乘法處理模塊相連接,乘法處理模塊的輸出端輸出除法運算的結(jié)果。本實用新型高速除法器為一種運算精度可控的高速除法器,即可以根據(jù)實際應(yīng)用要求任意設(shè)定相應(yīng)運算精度,而且,本實用新型高速除法器可以應(yīng)用在高速數(shù)學(xué)運算處理中,而且運算時間短,處理延時小,結(jié)構(gòu)簡單,可行性好。
文檔編號G06F7/52GK201359721SQ20082020598
公開日2009年12月9日 申請日期2008年12月24日 優(yōu)先權(quán)日2008年12月24日
發(fā)明者羅漫江, 胡應(yīng)添 申請人:京信通信系統(tǒng)(中國)有限公司