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

基于fpga進(jìn)行除法操作的方法及裝置的制造方法

文檔序號(hào):8412299閱讀:524來源:國知局
基于fpga進(jìn)行除法操作的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字信號(hào)處理技術(shù)領(lǐng)域,尤其涉及一種基于FPGA進(jìn)行除法操作的方 法及裝置。
【背景技術(shù)】
[0002] 隨著FPGA (現(xiàn)場(chǎng)可編程門陣列)技術(shù)的成熟,采用FPGA實(shí)現(xiàn)數(shù)字信號(hào)處理的方法 應(yīng)用越來越廣泛。
[0003] FPGA其內(nèi)部由大量的門陣列組成,可以進(jìn)行各種復(fù)雜的數(shù)字信號(hào)運(yùn)算處理,只能 對(duì)定點(diǎn)數(shù)值進(jìn)行運(yùn)算,并且除法運(yùn)算要求除數(shù)必須是2的指數(shù)冪的形式,即除法運(yùn)算只能 是對(duì)1至2 32范圍內(nèi)的整數(shù)進(jìn)行除法運(yùn)算,對(duì)于其它數(shù)值,由于不能映射到實(shí)際物理器件中, 故無法完成除法運(yùn)算。
[0004] 一般的,F(xiàn)PGA采用單獨(dú)設(shè)置除法模塊,由除法模塊直接完成除法操作,或者直接存 儲(chǔ)2 32個(gè)需要進(jìn)行除法操作的除數(shù)的倒數(shù),然后采用乘法操作的方式,完成除法操作。
[0005] 然而采用上述單獨(dú)設(shè)置除法模塊的方式,對(duì)于不同的應(yīng)用場(chǎng)景,需要設(shè)置不同的 除法模塊,即每次都需要重新設(shè)計(jì)除法模塊,并且占用的邏輯資源較多。采用直接存儲(chǔ)2 32 個(gè)需要計(jì)算的除數(shù)的倒數(shù)的方式,一般需要消耗〇 (232)量級(jí)的邏輯資源,占用的邏輯資源 也比較多。
[0006] 現(xiàn)有FPGA中實(shí)現(xiàn)除法操作時(shí),需要占用較多的邏輯資源,并且由于硬件資源的限 制,現(xiàn)有的FPGA實(shí)現(xiàn)除法操作的方法,進(jìn)行除法操作的數(shù)值范圍有限,例如存儲(chǔ)2 32個(gè)需要 計(jì)算的除數(shù)的倒數(shù)的方式,只能實(shí)現(xiàn)232個(gè)數(shù)值的除法運(yùn)算,故如何提供一種資源消耗少, 數(shù)據(jù)范圍大的除法計(jì)算方法,亟待解決。

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

[0007] 本發(fā)明的目的是提供一種基于FPGA進(jìn)行除法操作的方法及裝置,以減少資源消 耗,并擴(kuò)大進(jìn)行除法運(yùn)算的數(shù)值計(jì)算范圍。
[0008] 本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0009] 本發(fā)明一方面提供了一種基于FPGA進(jìn)行除法操作的方法,包括:
[0010] 獲取進(jìn)行除法操作中作為除數(shù)、并以十進(jìn)制表示的第一數(shù)據(jù)項(xiàng);
[0011] 判斷所述第一數(shù)據(jù)項(xiàng)是否與預(yù)設(shè)的、包含有設(shè)定數(shù)據(jù)項(xiàng)倒數(shù)的存儲(chǔ)表中的數(shù)據(jù)項(xiàng) 相同;
[0012] 若是,則直接調(diào)用所述存儲(chǔ)表中與所述第一數(shù)據(jù)項(xiàng)相同的數(shù)據(jù)項(xiàng)的倒數(shù),作為所 述第一數(shù)據(jù)項(xiàng)的倒數(shù);
[0013] 若否,則將所述第一數(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ù);
[0014] 將所述第一數(shù)據(jù)項(xiàng)的倒數(shù)與進(jìn)行除法操作中作為被除數(shù)的數(shù)據(jù)項(xiàng)相乘,完成除法 操作。
[0015] 本發(fā)明提供的基于FPGA進(jìn)行除法操作的方法,通過在存儲(chǔ)表中存儲(chǔ)預(yù)設(shè)數(shù)據(jù)項(xiàng) 的倒數(shù),無需存儲(chǔ)全部的數(shù)據(jù)項(xiàng),減少了資源消耗,并且在進(jìn)行除法操作時(shí),通過判斷作為 除數(shù)的第一數(shù)據(jù)項(xiàng)是否在預(yù)設(shè)的存儲(chǔ)表中,若是,則直接調(diào)用存儲(chǔ)表中存儲(chǔ)的數(shù)據(jù)項(xiàng)的倒 數(shù),若不是,則采用移位運(yùn)算方式在存儲(chǔ)表中確定第二數(shù)據(jù)項(xiàng),通過第二數(shù)據(jù)項(xiàng)確定作為除 數(shù)的第一數(shù)據(jù)項(xiàng)的倒數(shù),擴(kuò)大了 FPGA中進(jìn)行除法操作的數(shù)值范圍。
[0016] 優(yōu)選的,獲取進(jìn)行除法操作中作為除數(shù)的第一數(shù)據(jù)項(xiàng)之前,該方法還包括:
[0017] 將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,以使存儲(chǔ)的數(shù)據(jù)項(xiàng)盡可能少,并使計(jì)算結(jié)果唯一。
[0018] 進(jìn)一步優(yōu)選的,所述將21至2i+1-l之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中的設(shè)定數(shù) 據(jù)項(xiàng)倒數(shù),存儲(chǔ)在所述存儲(chǔ)表中,具體包括:
[0019] 將25至26-1之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù),存儲(chǔ)在所述 存儲(chǔ)表中。
[0020] 本發(fā)明中選擇25至26_1之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù), 能夠較好的滿足存儲(chǔ)數(shù)據(jù)項(xiàng)目少,計(jì)算精度高的要求。
[0021] 具體的,將所述第一數(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),具體包括:
[0022] 將所述第一數(shù)據(jù)項(xiàng)進(jìn)行二進(jìn)制轉(zhuǎn)換,得到二進(jìn)制表示的第一數(shù)據(jù)項(xiàng);
[0023] 采用公式X= [log2M]_i,確定移位的位數(shù),其中M為第一數(shù)據(jù)項(xiàng),X為移位的位 數(shù),符號(hào)□表示向下取整;
[0024] 將二進(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)。
[0025] 進(jìn)一步的,將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制,并進(jìn)行反向相同位數(shù)的移位 操作后,該方法還包括:
[0026] 將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制,并進(jìn)行反向相同位數(shù)的移位操作后得到 的數(shù)據(jù)項(xiàng),作為第一數(shù)據(jù)項(xiàng)倒數(shù)的基準(zhǔn)值;
[0027] 采用((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ù);
[0028] 將所述基準(zhǔn)值與所述校正值的和,作為所述第一數(shù)據(jù)項(xiàng)的倒數(shù)。
[0029] 本發(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ì)算精度。
[0030] 本發(fā)明另一方面,還提供了一種基于FPGA進(jìn)行除法操作的裝置,包括:
[0031] 存儲(chǔ)單元,用于預(yù)先將設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù)存儲(chǔ)在存儲(chǔ)表中;
[0032] 除數(shù)獲取單元,用于獲取進(jìn)行除法操作中作為除數(shù)、并以十進(jìn)制表示的第一數(shù)據(jù) 項(xiàng);
[0033] 倒數(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ù);
[0034] 運(yùn)算單元,用于將所述第一數(shù)據(jù)項(xiàng)的倒數(shù)與進(jìn)行除法操作中作為被除數(shù)的數(shù)據(jù)項(xiàng) 相乘,完成除法操作。
[0035] 本發(fā)明提供的基于FPGA進(jìn)行除法操作的裝置,通過在存儲(chǔ)表中存儲(chǔ)預(yù)設(shè)數(shù)據(jù)項(xiàng) 的倒數(shù),無需存儲(chǔ)全部的數(shù)據(jù)項(xiàng),減少了資源消耗,并且在進(jìn)行除法操作時(shí),通過判斷作為 除數(shù)的第一數(shù)據(jù)項(xiàng)是否在預(yù)設(shè)的存儲(chǔ)表中,若是,則直接調(diào)用存儲(chǔ)表中存儲(chǔ)的數(shù)據(jù)項(xiàng)的倒 數(shù),若不是,則采用移位運(yùn)算方式在存儲(chǔ)表中確定第二數(shù)據(jù)項(xiàng),通過第二數(shù)據(jù)項(xiàng)確定作為除 數(shù)的第一數(shù)據(jù)項(xiàng)的倒數(shù),擴(kuò)大了 FPGA中進(jìn)行除法操作的數(shù)值范圍。
[0036] 優(yōu)選的,所述存儲(chǔ)單元,具體用于:
[0037] 將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,以使存儲(chǔ)的數(shù)據(jù)項(xiàng)盡可能少,并使計(jì)算結(jié)果唯一。
[0038] 更為優(yōu)選的,所述存儲(chǔ)單元,具體用于:
[0039] 將25至26_1之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中的設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù),存儲(chǔ)在所 述存儲(chǔ)表中。
[0040] 本發(fā)明中選擇25至26-1之間的整數(shù)的倒數(shù)作為所述存儲(chǔ)表中設(shè)定數(shù)據(jù)項(xiàng)的倒數(shù), 能夠較好的滿足存儲(chǔ)數(shù)據(jù)項(xiàng)目少,計(jì)算精度高的要求。
[0041] 具體的,所述倒數(shù)確定單元,具體用于:
[0042] 將所述第一數(shù)據(jù)項(xiàng)進(jìn)行二進(jìn)制轉(zhuǎn)換,得到二進(jìn)制表示的第一數(shù)據(jù)項(xiàng);
[0043] 采用公式X= [log2M]_i,確定移位的位數(shù),其中M為第一數(shù)據(jù)項(xiàng),X為移位的位 數(shù),符號(hào)□表示向下取整;
[0044] 將二進(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)。
[0045] 進(jìn)一步的,所述倒數(shù)確定單元,具體用于:
[0046] 將所述第二數(shù)據(jù)項(xiàng)的倒數(shù)轉(zhuǎn)換為二進(jìn)制,并進(jìn)行反向相同位數(shù)的移位操作后得到 的數(shù)據(jù)項(xiàng),作為第一數(shù)據(jù)項(xiàng)倒數(shù)的基準(zhǔn)值;
[0047] 采用((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]為與第二
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
恭城| 伽师县| 临猗县| 东乡族自治县| 曲麻莱县| 浠水县| 台州市| 大姚县| 麻城市| 忻州市| 沛县| 临江市| 永德县| 台中市| 会泽县| 云浮市| 三台县| 苏州市| 邹平县| 比如县| 遂昌县| 临澧县| 和田县| 定州市| 彰化县| 合作市| 扎鲁特旗| 淮滨县| 霍邱县| 平度市| 区。| 昆山市| 繁峙县| 昭平县| 上犹县| 连州市| 剑阁县| 随州市| 阿坝| 武胜县| 铜陵市|