數(shù)據(jù)項(xiàng)相鄰的數(shù) 據(jù)項(xiàng)的倒數(shù),M為第一數(shù)據(jù)項(xiàng),(N<<X)為第二數(shù)據(jù)項(xiàng)反向移位X后得到的數(shù)據(jù)項(xiàng),>> (X*2)表示正向移位2X位,X為移位的位數(shù);
[0048] 將所述基準(zhǔn)值與所述校正值的和,作為所述第一數(shù)據(jù)項(xiàng)的倒數(shù)。
[0049] 本發(fā)明中在將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制,并進(jìn)行反向相同位數(shù)的移位 操作后,將得到的數(shù)據(jù)項(xiàng)作為第一數(shù)據(jù)項(xiàng)倒數(shù)的基準(zhǔn)值,并采用線性插值的方式獲取校正 值,進(jìn)一步提1? 了計(jì)算精度。
【附圖說明】
[0050] 圖1為本發(fā)明實(shí)施例提供的基于FPGA進(jìn)行除法操作的方法流程圖;
[0051] 圖2為本發(fā)明實(shí)施例中進(jìn)行除法操作的誤差示意圖;
[0052] 圖3為本發(fā)明實(shí)施例提供的基于FPGA進(jìn)行除法操作的裝置構(gòu)成示意圖。
【具體實(shí)施方式】
[0053] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,并不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0054] 本發(fā)明實(shí)施例提供一種基于FPGA進(jìn)行除法操作的方法,如圖1所示,該方法包 括:
[0055] SlOl :獲取進(jìn)行除法操作中作為除數(shù)、并以十進(jìn)制表示的第一數(shù)據(jù)項(xiàng)。
[0056] S102:判斷第一數(shù)據(jù)項(xiàng)是否與預(yù)設(shè)的、包含有設(shè)定數(shù)據(jù)項(xiàng)倒數(shù)的存儲(chǔ)表中的數(shù)據(jù) 項(xiàng)相同,若是,則進(jìn)行S103,若否,則進(jìn)行S104。
[0057] 具體的,本發(fā)明實(shí)施例中,預(yù)先設(shè)置存儲(chǔ)有設(shè)定數(shù)據(jù)項(xiàng)倒數(shù)的存儲(chǔ)表,該存儲(chǔ)表中 存儲(chǔ)的數(shù)據(jù)項(xiàng)的范圍根據(jù)實(shí)際所需的計(jì)算精度可靈活調(diào)整,本發(fā)明實(shí)施例中為使存儲(chǔ)的數(shù) 據(jù)項(xiàng)盡可能少,并使計(jì)算結(jié)果唯一,將21至2i+1-l之間的整數(shù)的倒數(shù)作為存儲(chǔ)表中的設(shè)定數(shù) 據(jù)項(xiàng)的倒數(shù),存儲(chǔ)在存儲(chǔ)表中,其中i為存儲(chǔ)表中確定存儲(chǔ)數(shù)據(jù)項(xiàng)時(shí)對(duì)應(yīng)的冪值,i的取值 為 i=0,l,2,3,…,32。
[0058] 進(jìn)一步的,本發(fā)明實(shí)施例中表1中列出了可能選擇的數(shù)據(jù)范圍,表1中列出了所選 數(shù)據(jù)范圍,存儲(chǔ)數(shù)據(jù)項(xiàng)的數(shù)目,以及計(jì)算誤差之間的對(duì)應(yīng)關(guān)系,綜合考慮存儲(chǔ)數(shù)據(jù)項(xiàng)與計(jì)算 誤差之間的關(guān)系,本發(fā)明實(shí)施例中優(yōu)選將2 5至26_1 (32到63)之間的整數(shù)的倒數(shù)作為存儲(chǔ) 表中的設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù),存儲(chǔ)在存儲(chǔ)表中,當(dāng)然本發(fā)明實(shí)施例并不做限定,若需要更高的 計(jì)算精度,則可以使用(64到127)或者(128到255)之間的整數(shù)的倒數(shù)作為存儲(chǔ)表中設(shè)定 數(shù)據(jù)項(xiàng)的倒數(shù)。
[0059]
【主權(quán)項(xiàng)】
1. 一種基于FPGA進(jìn)行除法操作的方法,其特征在于,包括: 獲取進(jìn)行除法操作中作為除數(shù)、并以十進(jìn)制表示的第一數(shù)據(jù)項(xiàng); 判斷所述第一數(shù)據(jù)項(xiàng)是否與預(yù)設(shè)的、包含有設(shè)定數(shù)據(jù)項(xiàng)倒數(shù)的存儲(chǔ)表中的數(shù)據(jù)項(xiàng)相 同; 若是,則直接調(diào)用所述存儲(chǔ)表中與所述第一數(shù)據(jù)項(xiàng)相同的數(shù)據(jù)項(xiàng)的倒數(shù),作為所述第 一數(shù)據(jù)項(xiàng)的倒數(shù); 若否,則將所述第一數(shù)據(jù)項(xiàng)轉(zhuǎn)換為二進(jìn)制并進(jìn)行移位操作,使得移位操作后對(duì)應(yīng)的十 進(jìn)制數(shù)據(jù)項(xiàng)能夠在所述存儲(chǔ)表中查找到對(duì)應(yīng)的第二數(shù)據(jù)項(xiàng),調(diào)用所述存儲(chǔ)表中所述第二數(shù) 據(jù)項(xiàng)的倒數(shù),將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制并進(jìn)行反向相同位數(shù)的移位操作,得 到所述第一數(shù)據(jù)項(xiàng)的倒數(shù); 將所述第一數(shù)據(jù)項(xiàng)的倒數(shù)與進(jìn)行除法操作中作為被除數(shù)的數(shù)據(jù)項(xiàng)相乘,完成除法操 作。
2. 如權(quán)利要求1所述的方法,其特征在于,獲取進(jìn)行除法操作中作為除數(shù)的第一數(shù)據(jù) 項(xiàng)之前,該方法還包括: 將21至2i+1-l之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù),存儲(chǔ)在所述存 儲(chǔ)表中,其中i為存儲(chǔ)表中確定存儲(chǔ)數(shù)據(jù)項(xiàng)時(shí)對(duì)應(yīng)的冪值,i的取值為i=〇,l,2, 3,…,32。
3. 如權(quán)利要求2所述的方法,其特征在于,所述將21至2i+1-l之間的整數(shù)的倒數(shù)作為 所述存儲(chǔ)表中的設(shè)定數(shù)據(jù)項(xiàng)倒數(shù),存儲(chǔ)在所述存儲(chǔ)表中,具體包括: 將25至26-1之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù),存儲(chǔ)在所述存儲(chǔ) 表中。
4. 如權(quán)利要求2所述的方法,其特征在于,將所述第一數(shù)據(jù)項(xiàng)轉(zhuǎn)換為二進(jìn)制并進(jìn)行移 位操作,使得移位操作后對(duì)應(yīng)的十進(jìn)制數(shù)據(jù)項(xiàng)能夠在所述存儲(chǔ)表中查找到對(duì)應(yīng)的第二數(shù)據(jù) 項(xiàng),具體包括: 將所述第一數(shù)據(jù)項(xiàng)進(jìn)行二進(jìn)制轉(zhuǎn)換,得到二進(jìn)制表示的第一數(shù)據(jù)項(xiàng); 采用公式X= [log2M]-i,確定移位的位數(shù),其中M為第一數(shù)據(jù)項(xiàng),X為移位的位數(shù),符 號(hào)□表不向下取整; 將二進(jìn)制表示的第一數(shù)據(jù)項(xiàng)正向移位X位,將移位后得到的二進(jìn)制數(shù)據(jù)項(xiàng)轉(zhuǎn)換為十進(jìn) 制數(shù)據(jù)項(xiàng),得到第二數(shù)據(jù)項(xiàng)。
5. 如權(quán)利要求4所述的方法,其特征在于,將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制,并 進(jìn)行反向相同位數(shù)的移位操作后,該方法還包括: 將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制,并進(jìn)行反向相同位數(shù)的移位操作后得到的數(shù) 據(jù)項(xiàng),作為第一數(shù)據(jù)項(xiàng)倒數(shù)的基準(zhǔn)值; 采用((a[N+l]-a[N])*(n-(N<<X))) >> (X*2)方式進(jìn)行線性插值,得到第一數(shù)據(jù) 項(xiàng)倒數(shù)的校正值,其中a[N]為第二數(shù)據(jù)項(xiàng)的倒數(shù),a[N+l]為與第二數(shù)據(jù)項(xiàng)相鄰的數(shù)據(jù)項(xiàng)的 倒數(shù),M為第一數(shù)據(jù)項(xiàng),(N<<X)為第二數(shù)據(jù)項(xiàng)反向移位X后得到的數(shù)據(jù)項(xiàng),>> (X*2)表 示正向移位2X位,X為移位的位數(shù); 將所述基準(zhǔn)值與所述校正值的和,作為所述第一數(shù)據(jù)項(xiàng)的倒數(shù)。
6. -種基于FPGA進(jìn)行除法操作的裝置,其特征在于,包括: 存儲(chǔ)單元,用于預(yù)先將設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù)存儲(chǔ)在存儲(chǔ)表中; 除數(shù)獲取單元,用于獲取進(jìn)行除法操作中作為除數(shù)、并以十進(jìn)制表示的第一數(shù)據(jù)項(xiàng); 倒數(shù)確定單元,用于判斷所述第一數(shù)據(jù)項(xiàng)是否與所述存儲(chǔ)單元中預(yù)設(shè)的、包含有設(shè)定 數(shù)據(jù)項(xiàng)倒數(shù)的存儲(chǔ)表中的數(shù)據(jù)項(xiàng)相同,若是,則直接調(diào)用所述存儲(chǔ)表中與所述第一數(shù)據(jù)項(xiàng) 相同的數(shù)據(jù)項(xiàng)的倒數(shù),作為所述第一數(shù)據(jù)項(xiàng)的倒數(shù);若否,將所述第一數(shù)據(jù)項(xiàng)轉(zhuǎn)換為二進(jìn)制 并進(jìn)行移位操作,使得移位操作后對(duì)應(yīng)的十進(jìn)制數(shù)據(jù)項(xiàng)能夠在所述存儲(chǔ)表中查找到對(duì)應(yīng)的 第二數(shù)據(jù)項(xiàng),調(diào)用所述存儲(chǔ)表中所述第二數(shù)據(jù)項(xiàng)的倒數(shù),將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為 二進(jìn)制并進(jìn)行反向相同位數(shù)的移位操作,得到所述第一數(shù)據(jù)項(xiàng)的倒數(shù); 運(yùn)算單元,用于將所述第一數(shù)據(jù)項(xiàng)的倒數(shù)與進(jìn)行除法操作中作為被除數(shù)的數(shù)據(jù)項(xiàng)相 乘,完成除法操作。
7. 如權(quán)利要求6所述的裝置,其特征在于,所述存儲(chǔ)單元,具體用于: 將21至2i+1-l之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中的設(shè)定數(shù)據(jù)項(xiàng)倒數(shù),存儲(chǔ)在所述存 儲(chǔ)表中,其中i為存儲(chǔ)表中確定存儲(chǔ)數(shù)據(jù)項(xiàng)時(shí)對(duì)應(yīng)的冪值,i的取值為i=〇,l,2, 3,…,32。
8. 如權(quán)利要求7所述的裝置,其特征在于,所述存儲(chǔ)單元,具體用于: 將25至26-1之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中的設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù),存儲(chǔ)在所述存 儲(chǔ)表中。
9. 如權(quán)利要求7所述的裝置,其特征在于,所述倒數(shù)確定單元,具體用于: 將所述第一數(shù)據(jù)項(xiàng)進(jìn)行二進(jìn)制轉(zhuǎn)換,得到二進(jìn)制表示的第一數(shù)據(jù)項(xiàng); 采用公式X= [log2M]-i,確定移位的位數(shù),其中M為第一數(shù)據(jù)項(xiàng),X為移位的位數(shù),符 號(hào)□表不向下取整; 將二進(jìn)制表示的第一數(shù)據(jù)項(xiàng)正向移位X位,將移位后得到的二進(jìn)制數(shù)據(jù)項(xiàng)轉(zhuǎn)換為十進(jìn) 制數(shù)據(jù)項(xiàng),得到第二數(shù)據(jù)項(xiàng)。
10. 如權(quán)利要求9所述的裝置,其特征在于,所述倒數(shù)確定單元,具體用于: 將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制,并進(jìn)行反向相同位數(shù)的移位操作后得到的數(shù) 據(jù)項(xiàng),作為第一數(shù)據(jù)項(xiàng)倒數(shù)的基準(zhǔn)值; 采用((a[N+l]-a[N])*(M-(N<<X))) >> (X*2)方式進(jìn)行線性插值,得到第一數(shù)據(jù) 項(xiàng)倒數(shù)的校正值,其中a[N]為第二數(shù)據(jù)項(xiàng)的倒數(shù),a[N+l]為與第二數(shù)據(jù)項(xiàng)相鄰的數(shù)據(jù)項(xiàng)的 倒數(shù),M為第一數(shù)據(jù)項(xiàng),(N<<X)為第二數(shù)據(jù)項(xiàng)反向移位X后得到的數(shù)據(jù)項(xiàng),>> (X*2)表 示正向移位2X位,X為移位的位數(shù); 將所述基準(zhǔn)值與所述校正值的和,作為所述第一數(shù)據(jù)項(xiàng)的倒數(shù)。
【專利摘要】本發(fā)明公開了一種基于FPGA進(jìn)行除法操作的方法及裝置,以減少資源消耗,并擴(kuò)大進(jìn)行除法運(yùn)算的數(shù)值計(jì)算范圍。本發(fā)明中獲取進(jìn)行除法操作中作為除數(shù)的第一數(shù)據(jù)項(xiàng);判斷所述第一數(shù)據(jù)項(xiàng)是否與預(yù)設(shè)的、包含有設(shè)定數(shù)據(jù)項(xiàng)倒數(shù)的存儲(chǔ)表中的數(shù)據(jù)項(xiàng)相同;若是,則直接調(diào)用所述存儲(chǔ)表中與所述第一數(shù)據(jù)項(xiàng)相同的數(shù)據(jù)項(xiàng)的倒數(shù),得到所述第一數(shù)據(jù)項(xiàng)的倒數(shù);若否,則將所述第一數(shù)據(jù)項(xiàng)進(jìn)行移位運(yùn)算,得到能夠在所述存儲(chǔ)表中查找到的第二數(shù)據(jù)項(xiàng),并根據(jù)所述第二數(shù)據(jù)項(xiàng)確定所述第一數(shù)據(jù)項(xiàng)的倒數(shù);將所述第一數(shù)據(jù)項(xiàng)的倒數(shù)與進(jìn)行除法操作中作為被除數(shù)的數(shù)據(jù)項(xiàng)相乘,完成除法操作。通過本發(fā)明能夠減少資源消耗,并擴(kuò)大進(jìn)行除法運(yùn)算的數(shù)值計(jì)算范圍。
【IPC分類】G06F7-535
【公開號(hào)】CN104731551
【申請(qǐng)?zhí)枴緾N201310719231
【發(fā)明人】劉曉沐, 張興明
【申請(qǐng)人】浙江大華技術(shù)股份有限公司
【公開日】2015年6月24日
【申請(qǐng)日】2013年12月23日