欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種除法器及除法運(yùn)算方法

文檔序號(hào):10593818閱讀:720來源:國知局
一種除法器及除法運(yùn)算方法
【專利摘要】本發(fā)明公開了一種除法器及除法運(yùn)算方法,屬于數(shù)字信號(hào)處理電路技術(shù)領(lǐng)域,所述除法器采用基數(shù)N算法,N為2i且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于?N小于等于N;所述除法器包括:符號(hào)位確定單元(1),用于判定初始被除數(shù)與初始除數(shù)的商值結(jié)果的符號(hào)位;除數(shù)倍數(shù)計(jì)算單元(2),用于計(jì)算非零初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值;令P依次在區(qū)間1~N內(nèi)取整數(shù)值,以獲得N個(gè)除數(shù)倍數(shù)值;迭代計(jì)算單元(3),用于對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,以獲得完整商值結(jié)果。實(shí)現(xiàn)了在除法器迭代計(jì)算時(shí)靈活地選擇每次產(chǎn)生的商的位數(shù),在快速運(yùn)算的同時(shí)不占用過多的硬件面積。
【專利說明】
一種除法器及除法運(yùn)算方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)字信號(hào)處理電路技術(shù)領(lǐng)域,尤其涉及一種除法器及除法運(yùn)算方法。
【背景技術(shù)】
[0002]隨著現(xiàn)代信息處理技術(shù)的迅猛發(fā)展,除法器作為微處理器的一個(gè)重要運(yùn)算部件,在電子電路設(shè)計(jì)中得到了廣泛應(yīng)用。除法器的運(yùn)算速度、性能、功耗等都會(huì)影響到整個(gè)微處理器的性能,所以提高除法器的性能是提高整個(gè)微處理器性能的關(guān)鍵因素。
[0003]除法器的硬件實(shí)現(xiàn)方法有多種:一、使用陣列除法器,可以在一個(gè)時(shí)鐘周期內(nèi)做完整個(gè)除法運(yùn)算,但是硬件面積大,邏輯延時(shí)長;二、用乘法器實(shí)現(xiàn),先通過求除數(shù)的倒數(shù),然后乘上被除數(shù),這種方法主要應(yīng)用在浮點(diǎn)運(yùn)算中,是一種近似算法,但其運(yùn)算精度受到位寬的限制;三、循環(huán)相減的多周期除法器,該方法在硬件面積和運(yùn)算速度上有所優(yōu)化,且現(xiàn)在大多數(shù)通用除法器都基于這種基本算法原理開發(fā),但是這種除法器通常需要經(jīng)過多次迭代計(jì)算,且每次迭代計(jì)算只產(chǎn)生一位商數(shù)字,若被除數(shù)與除數(shù)相差較大,則需要進(jìn)行較多次的迭代計(jì)算,耗時(shí)較長。

【發(fā)明內(nèi)容】

[0004]本發(fā)明針對(duì)現(xiàn)有技術(shù)中存在的,循環(huán)相減的多周期除法器每次迭代計(jì)算只產(chǎn)生一位商數(shù)字,在被除數(shù)與除數(shù)相差較大時(shí),需要耗費(fèi)大量時(shí)間計(jì)算獲得完整的商值,而無法實(shí)現(xiàn)硬件面積與運(yùn)算速度的有效折衷的技術(shù)問題,提供了一種除法器及除法運(yùn)算方法,可根據(jù)實(shí)際應(yīng)用中硬件面積與運(yùn)算速度的要求,通過選取不同的N值,靈活地選擇每次迭代計(jì)算產(chǎn)生的商的位數(shù),且在每次迭代計(jì)算時(shí)至少產(chǎn)生三位商數(shù)字,縮短了除法的計(jì)算時(shí)間。該除法器能夠?qū)崿F(xiàn)在除法運(yùn)算時(shí)的硬件面積與運(yùn)算速度的有效折衷,即在快速運(yùn)算的同時(shí)不占用過多的硬件面積。
[0005]—方面,本發(fā)明提供了一種除法器,所述除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;所述除法器包括:
[0006]符號(hào)位確定單元,用于讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位;
[0007]除數(shù)倍數(shù)計(jì)算單元,用于讀入初始除數(shù)的數(shù)值位,并計(jì)算所述初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值,其中,所述初始除數(shù)非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值;
[0008]迭代計(jì)算單元,用于讀入初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值,并對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和所述初始被除數(shù)的二進(jìn)制位數(shù)而定。
[0009]可選的,所述除數(shù)倍數(shù)計(jì)算單元包括:
[0010]第一除數(shù)倍數(shù)計(jì)算模塊,用于當(dāng)P取值為2的m次方倍時(shí),通過將所述初始除數(shù)的數(shù)值位左移m位,以獲得第一組除數(shù)倍數(shù)值;其中,m為大于等于O小于等于i的整數(shù);
[0011 ]第二除數(shù)倍數(shù)計(jì)算模塊,用于當(dāng)P取值為大于等于3的奇數(shù)時(shí),通過將所述第一組除數(shù)倍數(shù)值與所述初始除數(shù)的數(shù)值位進(jìn)行加、減法運(yùn)算,以獲得第二組除數(shù)倍數(shù)值;
[0012]第三除數(shù)倍數(shù)計(jì)算模塊,用于當(dāng)P取值為偶數(shù)且不為2的m次方倍時(shí),通過將所述第二組除數(shù)倍數(shù)值進(jìn)行移位,以獲得第三組除數(shù)倍數(shù)值;
[0013]其中,所述第一組除數(shù)倍數(shù)值、所述第二組除數(shù)倍數(shù)值和所述第三組除數(shù)倍數(shù)值組成所述N個(gè)除數(shù)倍數(shù)值。
[0014]可選的,所述迭代計(jì)算單元包括:
[0015]迭代控制模塊,用于控制j依次在區(qū)間I?K內(nèi)取值;還用于當(dāng)j取定一值時(shí),控制P依次在區(qū)間I?N內(nèi)取值;
[0016]被除數(shù)移位模塊,用于當(dāng)j大于等于2且小于等于K時(shí),基于所述原始被除數(shù)的數(shù)值位確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù);
[0017]余數(shù)獲取模塊,用于當(dāng)j取值為I時(shí),對(duì)所述原始被除數(shù)的數(shù)值位與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);還用于當(dāng)j在區(qū)間2?K內(nèi)取定一值時(shí),對(duì)所述第j移位被除數(shù)與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);
[0018]部分商值確定模塊,用于當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,獲得第j比較結(jié)果,并基于所述第j比較結(jié)果確定第j部分商值;其中,所述第j部分商值的二進(jìn)制位數(shù)為i位;
[0019]完整商值確定模塊,用于當(dāng)j依次在區(qū)間I?K內(nèi)取值時(shí),將第j部分商值從寄存器的高位到低位依次寫入商值寄存器中,并添加所述商值結(jié)果的符號(hào)位,以獲得完整商值結(jié)果O
[0020]可選的,所述被除數(shù)移位模塊具體用于當(dāng)j大于等于2且小于等于K時(shí),且在進(jìn)行第j次迭代計(jì)算時(shí),基于第j-Ι次迭代計(jì)算獲得的第j-Ι比較結(jié)果,確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù)。
[0021]可選的,所述部分商值確定模塊具體用于當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,當(dāng)所述N個(gè)第j余數(shù)中第一個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為零;或者
[0022]當(dāng)P大于等于2,在所述N個(gè)第j余數(shù)中第P-1個(gè)第j余數(shù)大于等于零、且第P個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為P-ι。
[0023]另一方面,本發(fā)明還提供了一種除法運(yùn)算方法,應(yīng)用于除法器中,所述除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;所述方法包括以下步驟:
[0024]S1、讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位;
[0025]S2、讀入初始除數(shù)的數(shù)值位,并計(jì)算所述初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值;其中,所述初始除數(shù)非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值;
[0026]S3、讀入初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值,并對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和所述初始被除數(shù)的二進(jìn)制位數(shù)而定。
[0027]可選的,所述步驟S2包括:
[0028]當(dāng)P取值為2的m次方倍時(shí),通過將所述初始除數(shù)的數(shù)值位左移m位,以獲得第一組除數(shù)倍數(shù)值;其中,m為大于等于O小于等于i的整數(shù);
[0029]當(dāng)P取值為大于等于3的奇數(shù)時(shí),通過將所述第一組除數(shù)倍數(shù)值與所述初始除數(shù)的數(shù)值位進(jìn)行加、減法運(yùn)算,以獲得第二組除數(shù)倍數(shù)值;
[0030]當(dāng)P取值為偶數(shù)且不為2的m次方倍時(shí),通過將所述第二組除數(shù)倍數(shù)值進(jìn)行移位,以獲得第三組除數(shù)倍數(shù)值;其中,所述第一組除數(shù)倍數(shù)值、所述第二組除數(shù)倍數(shù)值、所述第三組除數(shù)倍數(shù)值和所述單倍除數(shù)值組成所述N個(gè)除數(shù)倍數(shù)值。
[0031]可選的,所述步驟S3包括:
[0032]控制j依次在區(qū)間I?K內(nèi)取值;并且當(dāng)j取定一值時(shí),控制P依次在區(qū)間I?N內(nèi)取值;
[0033]當(dāng)j大于等于2且小于等于K時(shí),基于所述原始被除數(shù)的數(shù)值位確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù);
[0034]當(dāng)j取值為I時(shí),對(duì)所述原始被除數(shù)的數(shù)值位與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);并且當(dāng)j在區(qū)間2?K內(nèi)取定一值時(shí),對(duì)所述第j移位被除數(shù)與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);
[0035]當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,獲得第j比較結(jié)果,并基于所述第j比較結(jié)果確定第j部分商值;其中,所述第j部分商值的二進(jìn)制位數(shù)為i位;
[0036]當(dāng)j依次在區(qū)間I?K內(nèi)取值時(shí),將第j部分商值從寄存器的高位到低位依次寫入商值寄存器中,并添加所述商值結(jié)果的符號(hào)位,以獲得完整商值結(jié)果。
[0037]可選的,當(dāng)j大于等于2且小于等于K時(shí),且在進(jìn)行第j次迭代計(jì)算時(shí),基于第j-Ι次迭代計(jì)算獲得的第j-1比較結(jié)果,確定第j迭代被除數(shù)。
[0038]可選的,當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,當(dāng)所述N個(gè)第j余數(shù)中第一個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為零;或者當(dāng)P大于等于2,在所述N個(gè)第j余數(shù)中第P-1個(gè)第j余數(shù)大于等于零、且第P個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為P-1。
[0039]本發(fā)明中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):
[0040]由于在本發(fā)明中,除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;該除法器包括:符號(hào)位確定單元,用于讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位;除數(shù)倍數(shù)計(jì)算單元,用于讀入初始除數(shù)的數(shù)值位,并計(jì)算所述初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值,其中,所述初始除數(shù)非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值;迭代計(jì)算單元,用于讀入初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值,并對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和所述初始被除數(shù)的二進(jìn)制位數(shù)而定。也就是說,本除法器可根據(jù)實(shí)際應(yīng)用中硬件面積與運(yùn)算速度的要求,通過選取不同的N值,靈活地選擇每次產(chǎn)生的商的位數(shù),且在每次迭代計(jì)算時(shí)產(chǎn)生至少三位商數(shù)字,縮短了除法的計(jì)算時(shí)間。有效地解決了現(xiàn)有技術(shù)中循環(huán)相減的多周期除法器每次迭代計(jì)算只產(chǎn)生一位商數(shù)字,在被除數(shù)與除數(shù)相差較大時(shí),需要耗費(fèi)大量時(shí)間計(jì)算獲得完整的商值,而無法實(shí)現(xiàn)硬件面積與運(yùn)算速度的有效折衷的技術(shù)問題,實(shí)現(xiàn)了除法器在除法運(yùn)算時(shí)的硬件面積與運(yùn)算速度的有效折衷,能夠在快速運(yùn)算的同時(shí)不占用過多的硬件面積。另外,本方案除法器適用于在專用集成電路(ASIC,Applicat1n Specific Integrated Circuit)上實(shí)現(xiàn)。
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其它的附圖。
[0042]圖1為本發(fā)明實(shí)施例提供的一種除法器結(jié)構(gòu)示意圖;
[0043]圖2為本發(fā)明實(shí)施例提供的另一種除法器結(jié)構(gòu)示意圖;
[0044]圖3為本發(fā)明實(shí)施例提供的一種除法運(yùn)算方法流程圖。
【具體實(shí)施方式】
[0045]本發(fā)明實(shí)施例通過提供一種除法器,解決了現(xiàn)有技術(shù)中存在的,循環(huán)相減的多周期除法器每次迭代計(jì)算只產(chǎn)生一位商數(shù)字,在被除數(shù)與除數(shù)相差較大時(shí),需要耗費(fèi)大量時(shí)間計(jì)算獲得完整的商值,而無法實(shí)現(xiàn)硬件面積與運(yùn)算速度的有效折衷的技術(shù)問題??筛鶕?jù)實(shí)際應(yīng)用中硬件面積與運(yùn)算速度的要求,通過選取不同的N值,靈活地選擇每次迭代計(jì)算產(chǎn)生的商的位數(shù),且在每次迭代計(jì)算時(shí)至少產(chǎn)生三位商數(shù)字,縮短了除法的計(jì)算時(shí)間。該除法器能夠?qū)崿F(xiàn)在除法運(yùn)算時(shí)的硬件面積與運(yùn)算速度的有效折衷,即在快速運(yùn)算的同時(shí)不占用過多的硬件面積。
[0046]本發(fā)明實(shí)施例的技術(shù)方案為解決上述技術(shù)問題,總體思路如下:
[0047]本發(fā)明實(shí)施例提供了一種除法器,所述除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;所述除法器包括:符號(hào)位確定單元,用于讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位;除數(shù)倍數(shù)計(jì)算單元,用于讀入初始除數(shù)的數(shù)值位,并計(jì)算所述初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值,其中,所述初始除數(shù)非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值;迭代計(jì)算單元,用于讀入初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值,并對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和所述初始被除數(shù)的二進(jìn)制位數(shù)而定。
[0048]可見,在本發(fā)明方案中的除法器可根據(jù)實(shí)際應(yīng)用中硬件面積與運(yùn)算速度的要求,通過選取不同的N值,靈活地選擇每次產(chǎn)生的商的位數(shù),且在每次迭代計(jì)算時(shí)產(chǎn)生至少三位商數(shù)字,縮短了除法的計(jì)算時(shí)間。有效地解決了現(xiàn)有技術(shù)中循環(huán)相減的多周期除法器每次迭代計(jì)算只產(chǎn)生一位商數(shù)字,在被除數(shù)與除數(shù)相差較大時(shí),需要耗費(fèi)大量時(shí)間計(jì)算獲得完整的商值,而無法實(shí)現(xiàn)硬件面積與運(yùn)算速度的有效折衷的技術(shù)問題,實(shí)現(xiàn)了除法器在除法運(yùn)算時(shí)的硬件面積與運(yùn)算速度的有效折衷,能夠在快速運(yùn)算的同時(shí)不占用過多的硬件面積。另外,本方案除法器適用于在專用集成電路(ASIC,Applicat1n Specific IntegratedCircuit)上實(shí)現(xiàn)。
[0049]為了更好的理解上述技術(shù)方案,下面將結(jié)合說明書附圖以及具體的實(shí)施方式對(duì)上述技術(shù)方案進(jìn)行詳細(xì)的說明,應(yīng)當(dāng)理解本發(fā)明實(shí)施例以及實(shí)施例中的具體特征是對(duì)本申請(qǐng)技術(shù)方案的詳細(xì)的說明,而不是對(duì)本申請(qǐng)技術(shù)方案的限定,在不沖突的情況下,本發(fā)明實(shí)施例以及實(shí)施例中的技術(shù)特征可以相互組合。
[0050]實(shí)施例一
[0051]請(qǐng)參考圖1,本發(fā)明實(shí)施例提供了一種除法器,所述除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;所述除法器包括:
[0052]符號(hào)位確定單元I,用于讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位;
[0053]具體的,符號(hào)位確定單元I讀取所述初始被除數(shù)的最高位和所述初始除數(shù)的最高位,并判斷所述初始被除數(shù)的最高位和所述初始除數(shù)的最高位分別為O或I;當(dāng)所述初始被除數(shù)的最高位為O時(shí),確定所述初始被除數(shù)為負(fù)數(shù),當(dāng)所述初始被除數(shù)的最高位為I時(shí),確定所述初始被除數(shù)為正數(shù),當(dāng)所述初始除數(shù)的最高位為O時(shí),確定所述初始除數(shù)為負(fù)數(shù),當(dāng)所述初始除數(shù)的最高位為I時(shí),確定所述初始除數(shù)為正數(shù);進(jìn)一步,當(dāng)所述初始被除數(shù)和所述初始除數(shù)同為正數(shù)或負(fù)數(shù)時(shí),確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位為I,當(dāng)所述初始被除數(shù)和所述初始除數(shù)一個(gè)為正數(shù)、一個(gè)為負(fù)數(shù)時(shí),確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位為O。
[0054]除數(shù)倍數(shù)計(jì)算單元2,用于讀入初始除數(shù)的數(shù)值位Ds,并計(jì)算初始除數(shù)的數(shù)值位Ds的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值P X Ds,其中,初始除數(shù)的數(shù)值位Ds非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值;
[0055]例如,所述除法器采用基數(shù)8算法,則N= S且i = 3,P依次在區(qū)間I?8內(nèi)取值,除數(shù)倍數(shù)計(jì)算單元2讀入初始除數(shù)的數(shù)值位Ds,在判斷確定初始除數(shù)的數(shù)值位Ds非零時(shí),依次計(jì)算獲得初始除數(shù)的數(shù)值位Ds的I?8倍(S卩:Ds,2XDs,3XDs,...,8XDs)。
[0056]迭代計(jì)算單元3,用于讀入初始被除數(shù)的數(shù)值位Dd和所述N個(gè)除數(shù)倍數(shù)值(PXDs,P依次在區(qū)間I?N內(nèi)取值),并對(duì)初始被除數(shù)的數(shù)值位Dd和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和初始被除數(shù)的數(shù)值位Dd的二進(jìn)制位數(shù)Q而定。具體的,K = Q/i,當(dāng)Q與i相除后存在小數(shù)點(diǎn)后的余數(shù)時(shí)直接進(jìn)位。
[0057]具體的,仍以基數(shù)8算法為例,迭代計(jì)算單元3讀入初始被除數(shù)的數(shù)值位Dd和初始除數(shù)的數(shù)值位Ds的I?8倍(Ds,2 X Ds,3 X Ds,...,8 X Ds),對(duì)其進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得3位的部分商值。其中,當(dāng)初始被除數(shù)的數(shù)值位Dd的二進(jìn)制位數(shù)為15位時(shí),在每次迭代計(jì)算獲得3位的部分商值時(shí),需要進(jìn)行K= 15/3 = 5次迭代計(jì)算;當(dāng)初始被除數(shù)的數(shù)值位Dd的二進(jìn)制位數(shù)為31位時(shí),在每次迭代計(jì)算獲得3位的部分商值時(shí),需要進(jìn)行K = 31/3?11次迭代計(jì)算。當(dāng)然,在具體實(shí)施過程中,當(dāng)初始被除數(shù)的數(shù)值位Dd的位數(shù)較大時(shí),可選擇不同的N值,來減小迭代次數(shù),如選擇N = 31,則i = 5,在每次迭代計(jì)算獲得5位的部分商值時(shí),對(duì)于上述31位的初始被除數(shù)的數(shù)值位Dd而言,則只需進(jìn)行K = 31/5?7次迭代計(jì)算即可,相比于N=8時(shí),迭代計(jì)算的次數(shù)減少了 4次,縮短了運(yùn)算時(shí)間。
[0058]需要指出的是,本方案也適用于無符號(hào)數(shù)之間的除法運(yùn)算,當(dāng)初始被除數(shù)和初始除數(shù)為無符號(hào)數(shù)時(shí),初始被除數(shù)和初始除數(shù)各自的二進(jìn)制位數(shù)即分別為二者的數(shù)值位。
[0059]進(jìn)一步,在具體實(shí)施過程中,在進(jìn)行除數(shù)倍數(shù)的計(jì)算時(shí),為了避免或減少使用乘法器,并通過移位器和加法器來計(jì)算除數(shù)倍數(shù),從而減少硬件資源消耗,請(qǐng)參考圖2,除數(shù)倍數(shù)計(jì)算單元2包括:
[0060]第一除數(shù)倍數(shù)計(jì)算模塊21,用于當(dāng)P取值為2的m次方倍時(shí),通過將初始除數(shù)的數(shù)值位Ds左移m位,以獲得第一組除數(shù)倍數(shù)值;其中,m為大于等于O小于等于i的整數(shù);
[0061 ]第二除數(shù)倍數(shù)計(jì)算模塊22,用于當(dāng)P取值為大于等于3的奇數(shù)時(shí),通過將所述第一組除數(shù)倍數(shù)值與所述初始除數(shù)的數(shù)值位Ds進(jìn)行加、減法運(yùn)算,以獲得第二組除數(shù)倍數(shù)值;
[0062]第三除數(shù)倍數(shù)計(jì)算模塊23,用于當(dāng)P取值為偶數(shù)且不為2的m次方倍時(shí),通過將所述第二組除數(shù)倍數(shù)值進(jìn)行移位以獲得第三組除數(shù)倍數(shù)值;
[0063]其中,所述第一組除數(shù)倍數(shù)值、所述第二組除數(shù)倍數(shù)值和所述第三組除數(shù)倍數(shù)值組成所述N個(gè)除數(shù)倍數(shù)值。
[0064]具體的,仍以所述除法器采用基數(shù)8算法為例,P依次在區(qū)間I?8內(nèi)取值。m為大于等于O小于等于3的整數(shù),P取值為2*3= 1、21 = 2、22 = 4、23 = 8 (S卩2的m次方倍)時(shí),將Ds左移O位、I位、2位或3位來獲得Ds、2 XDs、4 XDs、8 XDs(即所述第一組除數(shù)倍數(shù)值);當(dāng)P取值為3、
5、7(即大于等于3的奇數(shù))時(shí),通過2\08+08、4\08 — 08、8\08 — 08來獲得3\08、5\08、7XDs(即所述第二組除數(shù)倍數(shù)值);當(dāng)P取值為6(即偶數(shù)且不為2的m次方倍)時(shí),通過對(duì)3XDs進(jìn)行移位來獲得6 X Ds (S卩所述第三組除數(shù)倍數(shù)值)。
[0065]在具體實(shí)施過程中,仍請(qǐng)參考圖2,迭代計(jì)算單元3包括:
[0066]迭代控制模塊31,用于控制j依次在區(qū)間I?K內(nèi)取值;還用于當(dāng)j取定一值時(shí),控制P依次在區(qū)間I?N內(nèi)取值;
[0067]被除數(shù)移位模塊32,用于當(dāng)j大于等于2且小于等于K時(shí),基于所述原始被除數(shù)的數(shù)值位確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù);
[0068]余數(shù)獲取模塊33,用于當(dāng)j取值為I時(shí),對(duì)所述原始被除數(shù)的數(shù)值位與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);還用于當(dāng)j在區(qū)間2?K內(nèi)取定一值時(shí),對(duì)所述第j移位被除數(shù)與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);
[0069]部分商值確定模塊34,用于當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,獲得第j比較結(jié)果,并基于所述第j比較結(jié)果確定第j部分商值;其中,所述第j部分商值的二進(jìn)制位數(shù)為i位;
[0070]完整商值確定模塊35,用于當(dāng)j依次在區(qū)間I?K內(nèi)取值時(shí),將第j部分商值從寄存器的高位到低位依次寫入商值寄存器中,并添加所述商值結(jié)果的符號(hào)位,以獲得完整商值結(jié)果。
[0071]其中,當(dāng)j大于等于2且小于等于K時(shí),在進(jìn)行第j次迭代計(jì)算時(shí),基于第j-Ι次迭代計(jì)算獲得的第j-Ι比較結(jié)果,確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù)。
[0072]具體的,在j等于2時(shí),I)當(dāng)所述N個(gè)第一余數(shù)中第一個(gè)第一余數(shù)小于零時(shí),重新進(jìn)行第一次迭代計(jì)算;2)當(dāng)P大于等于2,在所述N個(gè)第一余數(shù)中第P-1個(gè)第j-Ι余數(shù)大于等于零、且第P個(gè)第一余數(shù)小于零時(shí),確定第二部分商值為第P-1個(gè)第一余數(shù)。
[0073]在j大于等于3時(shí),可通過以下兩種實(shí)施方案來確定第j迭代被除數(shù):I)當(dāng)所述N個(gè)第j-Ι余數(shù)中第一個(gè)第j-Ι余數(shù)小于零時(shí),確定第j迭代被除數(shù)等于第j-Ι迭代被除數(shù);2)當(dāng)P大于等于2,在所述N個(gè)第j-Ι余數(shù)中第P-1個(gè)第j-Ι余數(shù)大于等于零、且第P個(gè)第j-Ι余數(shù)小于零時(shí),確定第j部分商值為第P-1個(gè)第j-Ι余數(shù)。
[0074]進(jìn)一步,在具體實(shí)施過程中,當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,當(dāng)所述N個(gè)第j余數(shù)中第一個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為零;或者當(dāng)P大于等于2,在所述N個(gè)第j余數(shù)中第P-1個(gè)第j余數(shù)大于等于零、且第P個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為P-1。
[0075]具體的,以所述除法器采用基數(shù)8算法、原始被除數(shù)的數(shù)值位Dd為16位有符號(hào)數(shù)為例,可確定在進(jìn)行除法運(yùn)算時(shí)的迭代計(jì)算次數(shù)K為5。迭代計(jì)算單元3的處理流程如下:
[0076](I)在進(jìn)行第一次迭代計(jì)算時(shí):
[0077]余數(shù)獲取模塊33對(duì)原始被除數(shù)的數(shù)值位Dd與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第一余數(shù),令P依次在區(qū)間I?8內(nèi)取值,以獲得8個(gè)第一余數(shù)(Re 11?Re 18),其中,Re 11 = Dd —Ds,Rel2 = Dd — 2 XDs,Rel3 = Dd — 3 XDs,...,Rel8 = Dd — 8 XDs;
[0078]部分商值確定模塊34依次將8個(gè)第一余數(shù)(Rell?Rel8)與零進(jìn)行比較,獲得第一比較結(jié)果;當(dāng)所述第一比較結(jié)果表明第I個(gè)第一余數(shù)Rell小于零時(shí),確定第一次迭代計(jì)算獲得的第一部分商值為0( 二進(jìn)制表示為000);或者當(dāng)該比較結(jié)果表明第4個(gè)第一余數(shù)Rel4小于零且第3個(gè)第一余數(shù)Rel3大于等于零時(shí),確定第一次迭代計(jì)算獲得的第一部分商值為3(二進(jìn)制表示為011);或者當(dāng)該比較結(jié)果表明第7個(gè)第一余數(shù)Rel7小于零且第6個(gè)第一余數(shù)Re 16大于等于零時(shí),確定第一次迭代計(jì)算獲得的第一部分商值為6 ( 二進(jìn)制表示為110) ;其它情況依次類推,這里不再一一贅述。
[0079](2)在進(jìn)行第二次迭代計(jì)算時(shí):
[0080]被除數(shù)移位模塊32基于第一次迭代計(jì)算的第一比較結(jié)果,確定第二迭代被除數(shù)。當(dāng)所述第一比較結(jié)果表明第I個(gè)第一余數(shù)Rell小于O時(shí),重新進(jìn)行第一次迭代計(jì)算;或者當(dāng)該比較結(jié)果表明第4個(gè)第一余數(shù)Rel4小于零且第3個(gè)第一余數(shù)Rel3大于等于零時(shí),確定第二次迭代計(jì)算時(shí)的第二迭代被除數(shù)Dd2’等于Rel3;或者當(dāng)該比較結(jié)果表明第7個(gè)第一余數(shù)Rel7小于零且第6個(gè)第一余數(shù)Rel6大于等于零時(shí),確定第二次迭代計(jì)算時(shí)的第二迭代被除數(shù)Dd2’等于Rel6;...;其它情況依次類推,這里不再一一贅述;進(jìn)一步,被除數(shù)移位模塊32將第二迭代被除數(shù)Dd2’左移3位,獲得第二移位被除數(shù)Dd2” ;
[0081 ]余數(shù)獲取模塊33對(duì)第二移位被除數(shù)Dd2”與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第二余數(shù),令P依次在區(qū)間I?8內(nèi)取值,以獲得8個(gè)第二余數(shù)(Re21?Re28),其中,Re21=Dd2” 一Ds,Re22 = Dd2” 一2 XDs,Re23 = Dd2” 一3 XDs,...,Re28 = Dd2” 一8 XDs ;
[0082]部分商值確定模塊34依次將8個(gè)第二余數(shù)(Re21?Re28)與零進(jìn)行比較,獲得第二比較結(jié)果;當(dāng)所述第二比較結(jié)果表明第I個(gè)第二余數(shù)Re21小于零時(shí),確定第二次迭代計(jì)算獲得的第二部分商值為0( 二進(jìn)制表示為000);或者當(dāng)該比較結(jié)果表明第4個(gè)第二余數(shù)Re24小于零且第3個(gè)第二余數(shù)Re23大于等于零時(shí),確定第二次迭代計(jì)算獲得的第二部分商值為3(二進(jìn)制表示為011);或者當(dāng)該比較結(jié)果表明第7個(gè)第二余數(shù)Re27小于零且第6個(gè)第二余數(shù)Re26大于等于零時(shí),確定第二次迭代計(jì)算獲得的第二部分商值為6 ( 二進(jìn)制表示為110);...;其它情況依次類推,這里不再一一贅述;
[0083](3)第三至第五次迭代計(jì)算獲得第三至第五部分商值的流程可依照上述第二次迭代計(jì)算流程進(jìn)行類推,這里不再一一贅述;
[0084](4)完整商值確定模塊35將5次迭代計(jì)算獲得的第一至第五部分商值,從寄存器的高位到低位依次寫入商值寄存器中,以獲得完整商值結(jié)果。例如,第一部分商值為“001”、第二部分商值為“011”、第三部分商值為“101”、第四部分商值為“001”、第五部分商值為“100”,則所述完整的商值結(jié)果的數(shù)值位二進(jìn)制序列為“001011101001100”。進(jìn)一步,將通過符號(hào)位確定單元I確定的商值結(jié)果的符號(hào)位添加在該二進(jìn)制序列的最高位,即獲得完整商值結(jié)果。
[0085]在具體實(shí)施過程中,在進(jìn)行除法運(yùn)算時(shí),為了采用本方案除法器對(duì)被除數(shù)和除數(shù)進(jìn)行除法計(jì)算,需滿足被除數(shù)和除數(shù)的商大于等于-N小于等于N的條件,若被除數(shù)和除數(shù)的商不滿足此條件,可通過將被除數(shù)或除數(shù)進(jìn)行移位,以使獲得滿足此條件的初始被除數(shù)和初始除數(shù),并在通過初始被除數(shù)和初始除數(shù)獲得商值結(jié)果后,將該商值結(jié)果進(jìn)行逆向移位,以獲得移位前的被除數(shù)和除數(shù)的商。
[0086]綜上所述,在本發(fā)明方案中的除法器可根據(jù)實(shí)際應(yīng)用中硬件面積與運(yùn)算速度的要求,通過選取不同的N值,靈活地選擇每次產(chǎn)生的商的位數(shù),且在每次迭代計(jì)算時(shí)產(chǎn)生至少三位商數(shù)字,縮短了除法的計(jì)算時(shí)間。有效地解決了現(xiàn)有技術(shù)中循環(huán)相減的多周期除法器每次迭代計(jì)算只產(chǎn)生一位商數(shù)字,在被除數(shù)與除數(shù)相差較大時(shí),需要耗費(fèi)大量時(shí)間計(jì)算獲得完整的商值,而無法實(shí)現(xiàn)硬件面積與運(yùn)算速度的有效折衷的技術(shù)問題,實(shí)現(xiàn)了除法器在除法運(yùn)算時(shí)的硬件面積與運(yùn)算速度的有效折衷,能夠在快速運(yùn)算的同時(shí)不占用過多的硬件面積。另外,本方案除法器適用于在專用集成電路(ASIC,Applicat1n SpecificIntegrated Circuit)上實(shí)現(xiàn)。
[0087]實(shí)施例二
[0088]基于同一發(fā)明構(gòu)思,請(qǐng)參考圖3,本發(fā)明實(shí)施例還提供了一種除法運(yùn)算方法,應(yīng)用于除法器中,所述除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;所述方法包括以下步驟:
[0089]S1、讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位;
[0090]S2、讀入初始除數(shù)的數(shù)值位,并計(jì)算所述初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值;其中,所述初始除數(shù)非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值;
[0091]S3、讀入初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值,并對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和所述初始被除數(shù)的二進(jìn)制位數(shù)而定。
[0092]在具體實(shí)施過程中,所述步驟S2包括:
[0093]當(dāng)P取值為2的m次方倍時(shí),通過將所述初始除數(shù)的數(shù)值位左移m位,以獲得第一組除數(shù)倍數(shù)值;其中,m為大于等于O小于等于i的整數(shù);
[0094]當(dāng)P取值為大于等于3的奇數(shù)時(shí),通過將所述第一組除數(shù)倍數(shù)值與所述初始除數(shù)的數(shù)值位進(jìn)行加、減法運(yùn)算,以獲得第二組除數(shù)倍數(shù)值;
[0095]當(dāng)P取值為偶數(shù)且不為2的m次方倍時(shí),通過將所述第二組除數(shù)倍數(shù)值進(jìn)行移位,以獲得第三組除數(shù)倍數(shù)值;
[0096]其中,所述第一組除數(shù)倍數(shù)值、所述第二組除數(shù)倍數(shù)值、所述第三組除數(shù)倍數(shù)值和所述單倍除數(shù)值組成所述N個(gè)除數(shù)倍數(shù)值。
[0097]在具體實(shí)施過程中,所述步驟S3包括:
[0098]控制j依次在區(qū)間I?K內(nèi)取值;并且當(dāng)j取定一值時(shí),控制P依次在區(qū)間I?N內(nèi)取值;
[0099]當(dāng)j大于等于2且小于等于K時(shí),基于所述原始被除數(shù)的數(shù)值位確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù);
[0100]當(dāng)j取值為I時(shí),對(duì)所述原始被除數(shù)的數(shù)值位與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);并且當(dāng)j在區(qū)間2?K內(nèi)取定一值時(shí),對(duì)所述第j移位被除數(shù)與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);
[0101]當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,獲得第j比較結(jié)果,并基于所述第j比較結(jié)果確定第j部分商值;其中,所述第j部分商值的二進(jìn)制位數(shù)為i位;
[0102]當(dāng)j依次在區(qū)間I?K內(nèi)取值時(shí),將第j部分商值從寄存器的高位到低位依次寫入商值寄存器中,并添加所述商值結(jié)果的符號(hào)位,以獲得完整商值結(jié)果。
[0103]在具體實(shí)施過程中,
[0104]當(dāng)j大于等于2且小于等于K時(shí),且在進(jìn)行第j次迭代計(jì)算時(shí),基于第j-Ι次迭代計(jì)算獲得的第j-1比較結(jié)果,確定第j迭代被除數(shù)。
[0105]在具體實(shí)施過程中,當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,當(dāng)所述N個(gè)第j余數(shù)中第一個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為零;或者
[0106]當(dāng)P大于等于2,在所述N個(gè)第j余數(shù)中第P-1個(gè)第j余數(shù)大于等于零、且第P個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為P-1。
[0107]根據(jù)上面的描述,上述除法運(yùn)算方法應(yīng)用于上述除法器中,所以,該除法運(yùn)算方法與上述除法器的一個(gè)或多個(gè)實(shí)施例一致,在此就不再一一贅述了。
[0108]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0109]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【主權(quán)項(xiàng)】
1.一種除法器,其特征在于,所述除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;所述除法器包括: 符號(hào)位確定單元(I),用于讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位; 除數(shù)倍數(shù)計(jì)算單元(2),用于讀入初始除數(shù)的數(shù)值位,并計(jì)算所述初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值,其中,所述初始除數(shù)非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值; 迭代計(jì)算單元(3),用于讀入初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值,并對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和所述初始被除數(shù)的二進(jìn)制位數(shù)而定。2.如權(quán)利要求1所述的除法器,其特征在于,所述除數(shù)倍數(shù)計(jì)算單元(2)包括: 第一除數(shù)倍數(shù)計(jì)算模塊(21 ),用于當(dāng)P取值為2的m次方倍時(shí),通過將所述初始除數(shù)的數(shù)值位左移m位,以獲得第一組除數(shù)倍數(shù)值;其中,m為大于等于O小于等于i的整數(shù); 第二除數(shù)倍數(shù)計(jì)算模塊(22),用于當(dāng)P取值為大于等于3的奇數(shù)時(shí),通過將所述第一組除數(shù)倍數(shù)值與所述初始除數(shù)的數(shù)值位進(jìn)行加、減法運(yùn)算,以獲得第二組除數(shù)倍數(shù)值; 第三除數(shù)倍數(shù)計(jì)算模塊(23),用于當(dāng)P取值為偶數(shù)且不為2的m次方倍時(shí),通過將所述第二組除數(shù)倍數(shù)值進(jìn)行移位,以獲得第三組除數(shù)倍數(shù)值; 其中,所述第一組除數(shù)倍數(shù)值、所述第二組除數(shù)倍數(shù)值和所述第三組除數(shù)倍數(shù)值組成所述N個(gè)除數(shù)倍數(shù)值。3.如權(quán)利要求1所述的除法器,其特征在于,所述迭代計(jì)算單元(3)包括: 迭代控制模塊(31),用于控制j依次在區(qū)間I?K內(nèi)取值;還用于當(dāng)j取定一值時(shí),控制P依次在區(qū)間I?N內(nèi)取值; 被除數(shù)移位模塊(32),用于當(dāng)j大于等于2且小于等于K時(shí),基于所述原始被除數(shù)的數(shù)值位確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù); 余數(shù)獲取模塊(33),用于當(dāng)j取值為I時(shí),對(duì)所述原始被除數(shù)的數(shù)值位與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);還用于當(dāng)j在區(qū)間2?K內(nèi)取定一值時(shí),對(duì)所述第j移位被除數(shù)與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù); 部分商值確定模塊(34),用于當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,獲得第j比較結(jié)果,并基于所述第j比較結(jié)果確定第j部分商值;其中,所述第j部分商值的二進(jìn)制位數(shù)為i位; 完整商值確定模塊(35),用于當(dāng)j依次在區(qū)間I?K內(nèi)取值時(shí),將第j部分商值從寄存器的高位到低位依次寫入商值寄存器中,并添加所述商值結(jié)果的符號(hào)位,以獲得完整商值結(jié)果O4.如權(quán)利要求3所述的除法器,其特征在于,所述被除數(shù)移位模塊(32)具體用于當(dāng)j大于等于2且小于等于K時(shí),且在進(jìn)行第j次迭代計(jì)算時(shí),基于第j-Ι次迭代計(jì)算獲得的第j-Ι比較結(jié)果,確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù)。5.如權(quán)利要求3所述的除法器,其特征在于,所述部分商值確定模塊(34)具體用于當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,當(dāng)所述N個(gè)第j余數(shù)中第一個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為零;或者 當(dāng)P大于等于2,在所述N個(gè)第j余數(shù)中第P-1個(gè)第j余數(shù)大于等于零、且第P個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為P-1。6.—種除法運(yùn)算方法,應(yīng)用于除法器中,所述除法器采用基數(shù)N算法,其中,N為21且i為大于等于3的正整數(shù),初始被除數(shù)和初始除數(shù)的商大于等于-N小于等于N;其特征在于,所述方法包括以下步驟: 51、讀入初始被除數(shù)的符號(hào)位和初始除數(shù)的符號(hào)位,分別判斷所述初始被除數(shù)和所述初始除數(shù)為正數(shù)或負(fù)數(shù),獲得一判斷結(jié)果,并基于所述判斷結(jié)果確定所述初始被除數(shù)與所述初始除數(shù)的商值結(jié)果的符號(hào)位; 52、讀入初始除數(shù)的數(shù)值位,并計(jì)算所述初始除數(shù)的數(shù)值位的P倍,以獲得第P個(gè)除數(shù)倍數(shù)值;其中,所述初始除數(shù)非零,P為整數(shù);令P依次在區(qū)間I?N內(nèi)取值,以獲得N個(gè)除數(shù)倍數(shù)值; 53、讀入初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值,并對(duì)所述初始被除數(shù)的數(shù)值位和所述N個(gè)除數(shù)倍數(shù)值進(jìn)行K次迭代計(jì)算,每次迭代計(jì)算獲得i位的部分商值,在K次迭代計(jì)算之后,獲得K組i位的部分商值,并基于所述商值結(jié)果的符號(hào)位和所述K組i位的部分商值獲得完整商值結(jié)果;其中,K為正整數(shù)且依據(jù)i值和所述初始被除數(shù)的二進(jìn)制位數(shù)而定。7.如權(quán)利要求6所述的除法運(yùn)算方法,其特征在于,所述步驟S2包括: 當(dāng)P取值為2的m次方倍時(shí),通過將所述初始除數(shù)的數(shù)值位左移m位,以獲得第一組除數(shù)倍數(shù)值;其中,m為大于等于O小于等于i的整數(shù); 當(dāng)P取值為大于等于3的奇數(shù)時(shí),通過將所述第一組除數(shù)倍數(shù)值與所述初始除數(shù)的數(shù)值位進(jìn)行加、減法運(yùn)算,以獲得第二組除數(shù)倍數(shù)值; 當(dāng)P取值為偶數(shù)且不為2的m次方倍時(shí),通過將所述第二組除數(shù)倍數(shù)值進(jìn)行移位,以獲得第三組除數(shù)倍數(shù)值; 其中,所述第一組除數(shù)倍數(shù)值、所述第二組除數(shù)倍數(shù)值、所述第三組除數(shù)倍數(shù)值和所述單倍除數(shù)值組成所述N個(gè)除數(shù)倍數(shù)值。8.如權(quán)利要求7所述的除法運(yùn)算方法,其特征在于,所述步驟S3包括: 控制j依次在區(qū)間I?K內(nèi)取值;并且當(dāng)j取定一值時(shí),控制P依次在區(qū)間I?N內(nèi)取值; 當(dāng)j大于等于2且小于等于K時(shí),基于所述原始被除數(shù)的數(shù)值位確定第j迭代被除數(shù),并將所述第j迭代被除數(shù)左移i位,獲得第j移位被除數(shù); 當(dāng)j取值為I時(shí),對(duì)所述原始被除數(shù)的數(shù)值位與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù);并且當(dāng)j在區(qū)間2?K內(nèi)取定一值時(shí),對(duì)所述第j移位被除數(shù)與第P個(gè)除數(shù)倍數(shù)值求差,獲得第P個(gè)第j余數(shù),并當(dāng)P依次在區(qū)間I?N內(nèi)取值完成后,獲得N個(gè)第j余數(shù); 當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,獲得第j比較結(jié)果,并基于所述第j比較結(jié)果確定第j部分商值;其中,所述第j部分商值的二進(jìn)制位數(shù)為i位; 當(dāng)j依次在區(qū)間I?K內(nèi)取值時(shí),將第j部分商值從寄存器的高位到低位依次寫入商值寄存器中,并添加所述商值結(jié)果的符號(hào)位,以獲得完整商值結(jié)果。9.如權(quán)利要求7所述的除法運(yùn)算方法,其特征在于, 當(dāng)j大于等于2且小于等于K時(shí),且在進(jìn)行第j次迭代計(jì)算時(shí),基于第j-Ι次迭代計(jì)算獲得的第j-Ι比較結(jié)果,確定第j迭代被除數(shù)。10.如權(quán)利要求7所述的除法運(yùn)算方法,其特征在于,當(dāng)j在區(qū)間I?K內(nèi)取定一值、且獲得N個(gè)第j余數(shù)后,依次將所述N個(gè)第j余數(shù)與零進(jìn)行比較,當(dāng)所述N個(gè)第j余數(shù)中第一個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為零;或者當(dāng)P大于等于2,在所述N個(gè)第j余數(shù)中第P-1個(gè)第j余數(shù)大于等于零、且第P個(gè)第j余數(shù)小于零時(shí),確定第j部分商值為P-1。
【文檔編號(hào)】G06F7/535GK105955706SQ201610435062
【公開日】2016年9月21日
【申請(qǐng)日】2016年6月16日
【發(fā)明人】張科峰, 王龔志
【申請(qǐng)人】武漢芯泰科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
金门县| 汕头市| 西宁市| 通道| 淮安市| 专栏| 若尔盖县| 澜沧| 巫山县| 丹江口市| 宾阳县| 柘城县| 广元市| 苍山县| 灌南县| 洞口县| 清水河县| 宣化县| 石首市| 古浪县| 塔河县| 钟祥市| 龙州县| 保康县| 南川市| 都安| 清苑县| 清镇市| 新宁县| 云梦县| 常熟市| 金门县| 陈巴尔虎旗| 海丰县| 洪泽县| 富民县| 华亭县| 大庆市| 鄂伦春自治旗| 大同市| 石楼县|