本發(fā)明涉及數(shù)字信號(hào)處理領(lǐng)域,特別涉及一種除法器和求商和余數(shù)的方法。
背景技術(shù):
在數(shù)字信號(hào)處理、通訊、圖像和視頻處理中,經(jīng)常會(huì)涉及求商和余數(shù)的除法運(yùn)算。但是,在集成電路和可編程邏輯器件的算法設(shè)計(jì)中,并沒有實(shí)現(xiàn)除法功能的現(xiàn)有芯片;在硬件描述語言中也沒有可綜合的除法語句。
現(xiàn)有技術(shù)中,通常運(yùn)用移位、比較、減法迭代的操作來實(shí)現(xiàn)除法的運(yùn)算,其基本思想為:從被除數(shù)中重復(fù)地減去除數(shù),直到檢測(cè)到余數(shù)小于除數(shù),主要是進(jìn)行減法和移位操作。公開號(hào)為CN1423189A的專利“一種除法器”就是把除法運(yùn)算化成減法和移位運(yùn)算,利用減法器、比較器、移位加法器完成除法。但是,該類方法每次移位和減法操作后只獲得一位商,當(dāng)被除數(shù)較大時(shí),如被除數(shù)是N位,需要執(zhí)行N次運(yùn)算才能得到商。因此,該方法所需的時(shí)鐘周期長(zhǎng),運(yùn)算速度慢,且電路占用面積大。
為了提高除法器的運(yùn)算速度,可采用一次求得多位商的方法。以一次求得兩位商為例,其基本思想是把被除數(shù)分別減去除數(shù)、2倍的除數(shù)、3倍的除數(shù),通過比較結(jié)果一次確定兩位商。公開號(hào)為CN1287037A的專利“高基除法器及方法”提出了一次得到k位商的除法器,但是該方法需要倍數(shù)發(fā)生器、比較器、加法器和減法器等眾多器件,電路復(fù)雜。
綜上所述,目前的除法器電路復(fù)雜。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種除法器和求商和余數(shù)的方法,用以解決現(xiàn)有技術(shù)中的除法器存電路復(fù)雜的問題。
本發(fā)明實(shí)施例提供了一種除法器,包括:
至少一個(gè)余數(shù)查找器、余數(shù)生成器、至少一個(gè)商查找器、商生成器、第一運(yùn)算結(jié)果輸出器;其中:
所述余數(shù)查找器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找第一余數(shù),其中,所述第一余數(shù)為輸入的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù);
所述余數(shù)生成器,用于對(duì)所述第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果;
所述商查找器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找第一商,其中,所述第一商為所述二進(jìn)制數(shù)對(duì)應(yīng)位的商;
所述商生成器,用于對(duì)所述第一商求和,得到第一商運(yùn)算結(jié)果;
所述第一運(yùn)算結(jié)果輸出器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到并輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及根據(jù)所述第一余數(shù)運(yùn)算結(jié)果查找表查找第二商,并對(duì)所述第二商與所述第一商運(yùn)算結(jié)果求和,得到并輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的商;其中所述第二余數(shù)為所述第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù),所述第二商為所述第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商。
由于該除法器能夠通過預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表、預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表以及所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表實(shí)現(xiàn)除法的運(yùn)算,降低了電路的復(fù)雜性,提高了運(yùn)算的速度,同時(shí)減小了電路占用的面積。
可選的,所述余數(shù)查找器,包括至少一個(gè)二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù)選擇器;
所述二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù)選擇器,用于根據(jù)所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找所述第一余數(shù);
所述余數(shù)生成器,包括至少一個(gè)第一加法器和至少一個(gè)第一觸發(fā)器;
所述第一加法器,用于對(duì)所述第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果;
所述第一觸發(fā)器,用于將所述第一余數(shù)運(yùn)算結(jié)果輸出到所述第一運(yùn)算結(jié)果輸出器。
可選的,所述商查找器,包括至少一個(gè)二進(jìn)制數(shù)對(duì)應(yīng)位的商選擇器;
所述二進(jìn)制數(shù)對(duì)應(yīng)位的商選擇器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找所述第一商;
所述商生成器,包括至少一個(gè)第二加法器和至少一個(gè)第二觸發(fā)器;
所述第二加法器,用于對(duì)所述第一商求和,得到第一商運(yùn)算結(jié)果;
所述第二觸發(fā)器,用于將所述第一商運(yùn)算結(jié)果輸出到所述第一運(yùn)算結(jié)果輸出器。
可選的,所述第一運(yùn)算結(jié)果輸出器,包括至少一個(gè)第一余數(shù)運(yùn)算結(jié)果選擇器、至少一個(gè)第三加法器、至少一個(gè)第三觸發(fā)器和至少一個(gè)第四觸發(fā)器;
所述第一余數(shù)運(yùn)算結(jié)果選擇器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找所述第二商;
所述第三加法器,用于對(duì)所述第二商與所述第一商運(yùn)算結(jié)果求和,得到輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商;
所述第三觸發(fā)器,用于輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù);
所述第四觸發(fā)器,用于輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的商。
可選的,所述余數(shù)查找器和所述商查找器輸入的二進(jìn)制數(shù)為被除數(shù)對(duì)應(yīng)位的部分二進(jìn)制數(shù);
所述除法器還包括:被除數(shù)判斷器和第二運(yùn)算結(jié)果輸出器;
所述被除數(shù)判斷器,用于在被除數(shù)的位數(shù)超過N時(shí),將所述被除數(shù)劃分為一個(gè)低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù),其中所述低位二進(jìn)制數(shù)的位數(shù)等于N,高位二進(jìn)制數(shù)的位數(shù)不大于N;并將高位二進(jìn)制數(shù)移至低位,得到至少一個(gè)新的二進(jìn)制數(shù),并判斷所述低位二進(jìn)制數(shù)以及至少一個(gè)新的二進(jìn)制數(shù)是否都為零,若都為零,則將零輸出到所述第二運(yùn)算結(jié)果輸出器;若不全為零,則將不為零的新的二進(jìn)制數(shù)和低位二進(jìn)制數(shù)分別作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;
其中,N為所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表和所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù);
所述第二運(yùn)算結(jié)果輸出器,用于:
將新的二進(jìn)制數(shù)對(duì)應(yīng)的商,向左移K位,得到第二商運(yùn)算結(jié)果,將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),向左移K位,與MK除以預(yù)設(shè)除數(shù)的商相乘,得到第三商運(yùn)算結(jié)果,其中K為得到所述新的二進(jìn)制數(shù)時(shí)移位的位數(shù),以及將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù)的余數(shù)相乘,得到第二余數(shù)運(yùn)算結(jié)果,將所述第二余數(shù)運(yùn)算結(jié)果作為所述余數(shù)查找器和所述商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;根據(jù)所述所述第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù)確定高位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),并對(duì)所述第二商運(yùn)算結(jié)果、所述第三商運(yùn)算結(jié)果、以及所述第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,得到高位二進(jìn)制數(shù)對(duì)應(yīng)的商;
以及確定低位二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù);
并對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)和所述低位二進(jìn)制數(shù)對(duì)應(yīng)余數(shù)求和,得到第三余數(shù)運(yùn)算結(jié)果,將所述第三余數(shù)運(yùn)算結(jié)果作為余數(shù)查找器和商查找器的輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器,確定所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù),以及對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的商、低位二進(jìn)制數(shù)對(duì)應(yīng)的商以及所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,并輸出運(yùn)算結(jié)果;
其中,M為不為零的正整數(shù)。
由于當(dāng)二進(jìn)制的被除數(shù)較大時(shí),通過將較大的二進(jìn)制劃分為能夠復(fù)用余數(shù)查找器和商查找器的二進(jìn)制數(shù),降低了除法運(yùn)算的復(fù)雜度,提供了運(yùn)算的速度,減小了電路占用的面積。
可選的,所述被除數(shù)判斷器,包括至少一個(gè)移位寄存器,和至少一個(gè)選擇器;
所述移位寄存器,用于在被除數(shù)的位數(shù)超過N時(shí),將所述被除數(shù)劃分為一 個(gè)低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù),其中所述低位二進(jìn)制數(shù)的位數(shù)等于N,高位二進(jìn)制數(shù)的位數(shù)不大于N;并將高位二進(jìn)制數(shù)移至低位,得到至少一個(gè)新的二進(jìn)制數(shù);
所述選擇器,用于判斷所述低位二進(jìn)制數(shù)以及至少一個(gè)新的二進(jìn)制數(shù)是否都為零,若都為零,則將零輸出到所述第二運(yùn)算結(jié)果輸出器;若不全為零,則將不為零的二進(jìn)制數(shù)作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;
其中,N為所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表和所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表對(duì)應(yīng)的二進(jìn)制位數(shù)。
所述第二運(yùn)算結(jié)果輸出器,還包括:至少一個(gè)商判斷的選擇器、至少一個(gè)余數(shù)判斷的選擇器、至少一個(gè)第一乘法器、至少一個(gè)第二乘法器、至少一個(gè)第三乘法器,至少一個(gè)第四加法器、至少一個(gè)第五加法器和至少一個(gè)第六加法器;
其中,所述商判斷的選擇器,用于確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商為新的二進(jìn)制數(shù)對(duì)應(yīng)的商后,將所述新的二進(jìn)制數(shù)對(duì)應(yīng)的商輸出到所述第一乘法器;在確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商為低位二進(jìn)制數(shù)對(duì)應(yīng)的商后,將所述低位二進(jìn)制數(shù)對(duì)應(yīng)的商輸出到所述第六加法器;
所述余數(shù)判斷的選擇器,用于在確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)為新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)后,將所述新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)輸出到所述第二乘法器;在確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)為低位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)后,將所述低位二進(jìn)制數(shù)對(duì)應(yīng)的商輸出到所述第五加法器;
所述第一乘法器,用于根據(jù)得到的所述新的二進(jìn)制數(shù)移位的位數(shù)K,將新的二進(jìn)制數(shù)對(duì)應(yīng)的商向左移K位,得到所述第二商運(yùn)算結(jié)果;
所述第二乘法器,用于將所述新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù)后對(duì)應(yīng)的商相乘,得到第三商運(yùn)算結(jié)果;
所述第三乘法器,用于將所述新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù)后對(duì)應(yīng)的余數(shù)相乘,得到第二余數(shù)運(yùn)算結(jié)果,將所述第二余數(shù)運(yùn)算結(jié)果作為 所述余數(shù)查找器和所述商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;
所述第四加法器,用于對(duì)所述第二商運(yùn)算結(jié)果、所述第三商運(yùn)算結(jié)果、以及所述第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,得到高位二進(jìn)制數(shù)對(duì)應(yīng)的商;
所述第五加法器,用于對(duì)所有不為零的高位二進(jìn)制數(shù)和低位二進(jìn)制數(shù)的余數(shù)求和,得到第三余數(shù)運(yùn)算結(jié)果,以及將所述第三余數(shù)運(yùn)算結(jié)果作為余數(shù)查找器和商查找器的輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和商查找器,確定所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù),并輸出余數(shù)的運(yùn)算結(jié)果;
所述第六加法器,用于對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的商、低位二進(jìn)制數(shù)對(duì)應(yīng)的商以及所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,并輸出商的運(yùn)算結(jié)果。
可選的,所述被除數(shù)為輸入的二進(jìn)制數(shù);所述第一運(yùn)算結(jié)果輸出器還用于:輸出觸發(fā)脈沖信號(hào);
所述被除數(shù)對(duì)應(yīng)位的部分為輸入的二進(jìn)制數(shù),所述第二運(yùn)算結(jié)果輸出器,還用于:輸出觸發(fā)脈沖信號(hào)。
由于能夠輸出觸發(fā)電平,從而使得用戶能夠通過輸出的除法電平信號(hào)判斷輸出的運(yùn)算結(jié)果的有效性。
本發(fā)明實(shí)施例還提供了一種求商和余數(shù)的方法,包括:
除法器接收輸入的二進(jìn)制數(shù);
所述除法器根據(jù)下列方式計(jì)算所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù):
所述除法器中的余數(shù)查找器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找第一余數(shù),其中,所述第一余數(shù)為輸入的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù);
所述除法器中的余數(shù)生成器對(duì)所述第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果;
所述除法器中的第一運(yùn)算結(jié)果輸出器根據(jù)所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到并輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),其中所 述第二余數(shù)為所述第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù);
所述除法器根據(jù)下列方式計(jì)算所述二進(jìn)制數(shù)對(duì)應(yīng)的商:
所述除法器中的商查找器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找第一商,其中,所述第一商為所述二進(jìn)制數(shù)對(duì)應(yīng)位的商;
所述除法器中的商生成器對(duì)所述第一商求和,得到第一商運(yùn)算結(jié)果;
所述除法器中的第一運(yùn)算結(jié)果輸出器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二商,并對(duì)所述第二商與所述第一商運(yùn)算結(jié)果求和,得到并輸出所述二級(jí)制數(shù)對(duì)應(yīng)的商,其中所述第二商為所述第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商。
可選的,所述除法器根據(jù)下列方式計(jì)算所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),具體包括:
所述除法器中的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù)選擇器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找所述第一余數(shù);
所述除法器中的第一加法器對(duì)所述第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果;
所述除法器中的第一觸發(fā)器將所述第一余數(shù)運(yùn)算結(jié)果輸出到所述除法器中的第一余數(shù)運(yùn)算結(jié)果選擇器;
所述除法器中的第一余數(shù)運(yùn)算結(jié)果選擇器根據(jù)所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找所述第二余數(shù),得到所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù);
所述除法器中的第三觸發(fā)器輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)。
可選的,所述除法器根據(jù)下列方式計(jì)算所述二進(jìn)制數(shù)對(duì)應(yīng)的商,具體包括:
所述除法器中的二進(jìn)制數(shù)對(duì)應(yīng)位的商選擇器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找所述第一商;
所述除法器中的第二加法器對(duì)所述第一商求和,得到第一商運(yùn)算結(jié)果;
所述除法器中的第二觸發(fā)器將所述第一商運(yùn)算結(jié)果輸出到所述除法器中的第三加法器;
所述除法器中的第一余數(shù)運(yùn)算結(jié)果選擇器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找所述第二商;
所述除法器中的第三加法器對(duì)所述第二商和所述第一商運(yùn)算結(jié)果求和,得到輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商;
所述除法器中的第四觸發(fā)器輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的商。
可選的,所述余數(shù)查找器和所述商查找器輸入的二進(jìn)制數(shù)為被除數(shù),所述除法器中的第一運(yùn)算結(jié)果輸出器輸出的所述二進(jìn)制數(shù)對(duì)應(yīng)的商為所述被除數(shù)對(duì)應(yīng)的商;所述除法器中的第一運(yùn)算結(jié)果輸出器輸出的所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)為所述被除數(shù)對(duì)應(yīng)的余數(shù)。
可選的,所述除法器中的余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù)為被除數(shù)對(duì)應(yīng)位的部分二進(jìn)制數(shù);
所述除法器在接收輸入的二進(jìn)制數(shù)之后,查找所述第一商和所述第一余數(shù)之前,還包括:
所述除法器中的被除數(shù)判斷器在被除數(shù)的位數(shù)超過N時(shí),將劃分為一個(gè)低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù),其中所述低位二進(jìn)制數(shù)的位數(shù)等于N,高位二進(jìn)制數(shù)的位數(shù)不大于N;并將高位二進(jìn)制數(shù)移至低位,得到至少一個(gè)新的二進(jìn)制數(shù),并判斷所述低位二進(jìn)制數(shù)以及至少一個(gè)新的二進(jìn)制數(shù)是否都為零,若都為零,則將零輸出到所述第二運(yùn)算結(jié)果輸出器;若不全為零,則將不為零的新的二進(jìn)制數(shù)和低位二進(jìn)制數(shù)分別作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;
其中,N為所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表和所述預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表對(duì)應(yīng)的二進(jìn)制位數(shù);
所述除法器的第一運(yùn)算結(jié)果輸出器輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)后,還包括:
所述除法器中的第二運(yùn)算結(jié)果輸出器將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),向左移K位,與MK除以預(yù)設(shè)除數(shù)的商相乘,得到第三商運(yùn)算結(jié)果,其中K為得到所 述新的二進(jìn)制數(shù)時(shí)移位的位數(shù),以及將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù)的余數(shù)相乘,得到第二余數(shù)運(yùn)算結(jié)果,將所述第二余數(shù)運(yùn)算結(jié)果作為所述除法器中的余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;根據(jù)所述第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù)確定高位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及確定低位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù);
并對(duì)所有不為零的高位二進(jìn)制數(shù)和低位二進(jìn)制數(shù)的余數(shù)求和,得到第三余數(shù)運(yùn)算結(jié)果,將所述第三余數(shù)運(yùn)算結(jié)果作為余數(shù)查找器和商查找器的輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器,確定所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù),并輸出余數(shù)運(yùn)算結(jié)果;
其中,M為不為零的正整數(shù)。
所述除法器的第一運(yùn)算結(jié)果輸出器輸出所述二進(jìn)制數(shù)對(duì)應(yīng)的商后,還包括:
所述除法器中的第二運(yùn)算結(jié)果輸出器將新的二進(jìn)制數(shù)對(duì)應(yīng)的商,向左移K位,得到第二商運(yùn)算結(jié)果,對(duì)所述第二商運(yùn)算結(jié)果、所述第三商運(yùn)算結(jié)果和所述第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,得到高位二進(jìn)制數(shù)對(duì)應(yīng)的商;以及確定低位二進(jìn)制數(shù)對(duì)應(yīng)的商;
并對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的商、低位二進(jìn)制數(shù)對(duì)應(yīng)的商以及所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,并輸出商運(yùn)算結(jié)果;
其中,M為不為零的正整數(shù)。
可選的,若所述除法器中的被除數(shù)判斷器確定劃分后的低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù)都為零,該方法還包括:
所述除法器中的被除數(shù)判斷器將零直接輸入到所述除法器中的運(yùn)算結(jié)果輸出器;
所述除法器中的第二運(yùn)算結(jié)果輸出器輸出運(yùn)算結(jié)果。
可選的,該方法還包括:
所述除法器中的被除數(shù)判斷器在被除數(shù)的位數(shù)小于或等于N時(shí),將被除數(shù) 作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù)輸出到所述余數(shù)查找器和所述商查器;
其中,所述除法器中的第一運(yùn)算結(jié)果輸出器輸出的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)為被除數(shù)除以預(yù)設(shè)除數(shù)的運(yùn)算結(jié)果。
可選的,該方法還包括:
所述除法器輸出所述輸入的觸發(fā)脈沖信號(hào)。
附圖說明
圖1為本發(fā)明實(shí)施例一除法器的示意圖;
圖2為本發(fā)明實(shí)施例二除法器中余數(shù)選擇器的示意圖;
圖3為本發(fā)明實(shí)施例三除法器中余數(shù)選擇器的示意圖;
圖4為本發(fā)明實(shí)施例四除法器中余數(shù)查找器與余數(shù)生成器的連接示意圖;
圖5為本發(fā)明實(shí)施例五除法器中余數(shù)查找器與余數(shù)生成器的連接示意圖;
圖6為本發(fā)明實(shí)施例六除法器中商選擇器的示意圖;
圖7為本發(fā)明實(shí)施例七除法器中商選擇器的示意圖;
圖8為本發(fā)明實(shí)施例八除法器中商查找器與商生成器的連接示意圖;
圖9為本發(fā)明實(shí)施例九除法器中商查找器與商生成器的連接示意圖;
圖10為本發(fā)明實(shí)施例十除法器的電路示意圖;
圖11為本發(fā)明實(shí)施例十一除法器的示意圖;
圖12為本發(fā)明實(shí)施例十二除法器第二運(yùn)算結(jié)果輸出器的連接示意圖;
圖13為本發(fā)明實(shí)施例十三被除數(shù)判斷器中選擇器的電路示意圖;
圖14為本發(fā)明實(shí)施例十四除法器的電路示意圖;
圖15為本發(fā)明實(shí)施例十五求商和余數(shù)方法的流程示意圖;
圖16為本發(fā)明實(shí)施例十六求商和余數(shù)方法的流程示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例的除法器包括:至少一個(gè)余數(shù)查找器、余數(shù)生成器、至少一個(gè)商查找器、商生成器、第一運(yùn)算結(jié)果輸出器;其中:余數(shù)查找器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找第一余數(shù),第一余數(shù)為輸入的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù);余數(shù)生成器,用于對(duì)第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果;商查找器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找第一商,第一商為二進(jìn)制數(shù)對(duì)應(yīng)位的商;商生成器,用于對(duì)第一商求和,得到第一商運(yùn)算結(jié)果;第一運(yùn)算結(jié)果輸出器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到并輸出二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及根據(jù)第一余數(shù)運(yùn)算結(jié)果查找表查找第二商,并對(duì)第二商與第一商運(yùn)算結(jié)果求和,得到并輸出二進(jìn)制數(shù)對(duì)應(yīng)的商;第二余數(shù)為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù),第二商為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商。這種技術(shù)方案由于能夠通過預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表、預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表以及預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表實(shí)現(xiàn)除法的運(yùn)算,降低了電路的復(fù)雜性,提高了運(yùn)算的速度,同時(shí)減小了電路占用的面積。
下面結(jié)合說明書附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。
如圖1所示,本發(fā)明實(shí)施例一除法器,包括:
余數(shù)查找器100,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找第一余數(shù),其中,第一余數(shù)為輸入的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù)。
余數(shù)生成器101,用于對(duì)第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果。
商查找器102,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找第一商,其中,第一商為二進(jìn)制數(shù)對(duì)應(yīng)位的商。
商生成器103,用于對(duì)第一商求和,得到第一商運(yùn)算結(jié)果。
第一運(yùn)算結(jié)果輸出器104,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到并輸出二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及根據(jù)第一余數(shù)運(yùn)算結(jié)果查找表查找第二商,并對(duì)第二商與第一商運(yùn)算結(jié)果求和,得到并輸出二進(jìn)制數(shù)對(duì)應(yīng)的商;其中第二余數(shù)為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù),第二商為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商。
本發(fā)明中的除法器適用于被除數(shù)為任意的二進(jìn)制數(shù),除數(shù)為常數(shù)的除法運(yùn)算,其中除數(shù)是根據(jù)用戶需要預(yù)先設(shè)定好的,不同的除數(shù)對(duì)應(yīng)不同的余數(shù)查找表、商查找表以及第一余數(shù)運(yùn)算結(jié)果查找表。
以14位的二進(jìn)制數(shù)s為01010011001101為例,對(duì)二進(jìn)制數(shù)對(duì)應(yīng)的位進(jìn)行說明,即s[0]=1,s[1]=0,s[2]=1,s[3]=1,s[4]=0,s[5]=0,s[6]=1,s[7]=1,s[8]=0,s[9]=0,s[10]=1,s[11]=0,s[12]=1,s[13]=0,其中s[0]表示的是二進(jìn)制數(shù)s中對(duì)應(yīng)的第0位上的數(shù),以此類推,s[12]表示的是二進(jìn)制數(shù)s對(duì)應(yīng)的第12位上的數(shù),其它與此類似,在此不再贅述。
以預(yù)設(shè)除數(shù)為5、輸入的二進(jìn)制數(shù)的位數(shù)為14位為例,預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表如表1所示。
表1
以表1中s[1,0]為例,對(duì)表1進(jìn)行相關(guān)說明,其中,s[1,0]表示二進(jìn)制數(shù)對(duì)應(yīng)第1位和第0位上的數(shù),當(dāng)s[1,0]=00時(shí),除以5得到的余數(shù)為0,當(dāng)s[1,0]=01時(shí),除以5得到的余數(shù)為1,當(dāng)s[1,0]=10時(shí),除以5得到的余數(shù)為2,當(dāng)s[1,0]=11時(shí),除以5得到的余數(shù)為3。
當(dāng)輸入的二進(jìn)制數(shù)s為01010011001101時(shí),通過輸入余數(shù)查找器,將根據(jù)二進(jìn)制數(shù)s對(duì)應(yīng)的位,查找對(duì)應(yīng)的位對(duì)應(yīng)的余數(shù),即s[1,0]=01對(duì)應(yīng)的余數(shù)為1,即s[1,0]的第一余數(shù)為1,s[3,2]=11,的第一余數(shù)為2,s[5,4]=00的第一余數(shù)為0…s[13,12]=01的第一余數(shù)為1。
在本發(fā)明實(shí)施例中,具體來說,一種可選的構(gòu)造余數(shù)查找器100方式為,由至少一個(gè)二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù)選擇器構(gòu)成余數(shù)查找器100,如圖2所示,以預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表中的二進(jìn)制數(shù)的位數(shù)為14位,以每2位為一個(gè)單位,其二進(jìn)制數(shù)對(duì)應(yīng)第0、1位的余數(shù)選擇器的示意圖,根據(jù)需要也可以設(shè)置每個(gè)單位中二進(jìn)制的位數(shù),根據(jù)設(shè)置的每個(gè)單位中二進(jìn)制的位數(shù),構(gòu)建預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表的電路。
其中,預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表中余數(shù)對(duì)應(yīng)的位數(shù)可根據(jù)用戶的需要進(jìn)行相應(yīng)的設(shè)置,本發(fā)明實(shí)施例中余數(shù)對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù)可以相同,也可以不同。
如圖3所示,為當(dāng)二進(jìn)制數(shù)對(duì)應(yīng)第0、1、2位的余數(shù)選擇器示意圖。
在通過預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表的電路查找到所有第一余數(shù)后,輸出到余數(shù)生成器。
其中,在本發(fā)明實(shí)施例中一種可選的構(gòu)成余數(shù)生成器101方式為:由至少一個(gè)第一加法器和至少一個(gè)第一觸發(fā)器構(gòu)成余數(shù)生成器101。
其中,第一加法器的數(shù)目是根據(jù)除法器中包括余數(shù)查找器100的數(shù)量決定的。當(dāng)除法器中僅有一個(gè)余數(shù)查找器100時(shí),余數(shù)生成器101中可以不設(shè)置加法器。
當(dāng)除法器中包含多個(gè)余數(shù)查找器時(shí),較佳地,余數(shù)生成器可以在對(duì)所有查 找到的第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果后,將第一余數(shù)運(yùn)算結(jié)果輸出到第一觸發(fā)器中,其中,第一觸發(fā)器由用戶輸入的觸發(fā)脈沖信號(hào)控制,在第一觸發(fā)器接收到用戶輸入的觸發(fā)脈沖信號(hào)后,觸發(fā)第一觸發(fā)器將第一余數(shù)運(yùn)算結(jié)果輸出到第一運(yùn)算結(jié)果輸出器104,如圖4所示。
還可以如圖5所示,將其中四個(gè)余數(shù)查找器查找到的余數(shù)求和輸出的結(jié)果輸出到第一觸發(fā)器中,其他余數(shù)查找器查找到的余數(shù)求和結(jié)果輸出到另一個(gè)第一觸發(fā)器中,將這兩個(gè)第一觸發(fā)器的輸入結(jié)果的輸出到第一加法器中,通過第一加法器將第一余數(shù)運(yùn)算結(jié)果輸出到第一運(yùn)算結(jié)果輸出器104。
其中,圖4和圖5均是以除法器中包括7個(gè)余數(shù)查找器為例進(jìn)行說明的。
此外,余數(shù)生成器101還可以為其他能夠通過觸發(fā)脈沖信號(hào)觸發(fā)第一觸發(fā)器后輸出第一余數(shù)運(yùn)算結(jié)果到第一運(yùn)算結(jié)果輸出器104的組成形式的電路,在此不再贅述。
以預(yù)設(shè)除數(shù)為5為例,輸入的二進(jìn)制數(shù)的位數(shù)為14位為例,預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表如表2所示。
表2
以表2中s[3,2]為例,對(duì)表2進(jìn)行相關(guān)說明,其中,s[3,2]表示二進(jìn)制數(shù)對(duì)應(yīng)第3位和第2位上的數(shù),當(dāng)s[3,2]=00時(shí),除以5得到的商為0,當(dāng)s[3,2]=01時(shí),除以5得到的商為0,當(dāng)s[3,2]=10時(shí),除以5得到的商為1,當(dāng)s[3,2]=11時(shí),除以5得到的商為2。
當(dāng)輸入的二進(jìn)制數(shù)s為01010011001101時(shí),通過輸入商查找器,將根據(jù)二進(jìn)制數(shù)s對(duì)應(yīng)的位,查找第一商,即s[1,0]=01的第一商為0,s[3,2]=11的第一商為2,s[5,4]=00的第一商為0,……,s[13,12]=01的第一商為819。
其中,在本發(fā)明實(shí)施例中,一種可選的構(gòu)成商查找器102方式為:由至少一個(gè)二進(jìn)制數(shù)對(duì)應(yīng)位的商選擇器構(gòu)成商查找器102,如圖6所示,以預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表中的二進(jìn)制數(shù)的位數(shù)為14位,以每2位為一個(gè)單位,其二進(jìn)制數(shù)對(duì)應(yīng)第0、1位的商選擇器的示意圖,根據(jù)需要也可以設(shè)置每個(gè)單位中二進(jìn)制的位數(shù),根據(jù)設(shè)置的每個(gè)單位中二進(jìn)制的位數(shù),構(gòu)建預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表的電路。
其中,預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表中商對(duì)應(yīng)的位數(shù)可根據(jù)用戶的需要進(jìn)行相應(yīng)的設(shè)置,表中商對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù)可以相同,也可以不同。
如圖7所示,為當(dāng)二進(jìn)制數(shù)對(duì)應(yīng)第0、1、2位的商選擇器示意圖。
在通過預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表的電路查找到所有輸入的二進(jìn)制數(shù)對(duì)應(yīng)位的商后,輸出到商生成器。
在本發(fā)明實(shí)施例中,一種可選的構(gòu)成商生成器103方式為:由至少一個(gè)第二加法器和至少一個(gè)第二觸發(fā)器構(gòu)成商生成器103。
其中,第二加法器的數(shù)目是根據(jù)除法器中包括商查找器102的數(shù)量決定的。當(dāng)除法器中僅有一個(gè)商查找器102時(shí),商生成器103中可以不設(shè)置加法器。
當(dāng)觸發(fā)器中包含多個(gè)商查找器時(shí),第二觸發(fā)器可以在查找到所有的商,并將所有查找到的商求和,得到第一商運(yùn)算結(jié)果,輸出到第二觸發(fā)器中,在第二觸發(fā)器接收到用戶輸入的觸發(fā)脈沖信號(hào)后,觸發(fā)第二觸發(fā)器將第一商運(yùn)算結(jié)果輸出到第一運(yùn)算結(jié)果輸出器104,如圖8所示。
還可以如圖9所示,將其中四個(gè)商查找器查找到的商求和輸出的結(jié)果輸出到第一觸發(fā)器中,其他商查找器查找到的商求和結(jié)果輸出到另一個(gè)第二觸發(fā)器中,將這兩個(gè)第二觸發(fā)器的輸入結(jié)果輸出到第二加法器中,通過第二加法器將第一商運(yùn)算結(jié)果輸出到第一運(yùn)算結(jié)果輸出器104。
在余數(shù)生成器和商生成器中添加多個(gè)觸發(fā)器一方面是為了輸出同步,一方面是為了縮短關(guān)鍵路徑。
其中,圖8和圖9均是以除法器中包括7個(gè)商查找器為例進(jìn)行說明的。
此外,商生成器103還可以為其他能夠通過觸發(fā)脈沖信號(hào)觸發(fā)第二觸發(fā)器后輸出第一商運(yùn)算結(jié)果到第一運(yùn)算結(jié)果輸出器104的組成形式的電路,在此不再贅述。
其中,商的查找表和余數(shù)的查找表是兩張獨(dú)立的表,而兩張表的輸入都為被除數(shù)中對(duì)應(yīng)位的二進(jìn)制數(shù),并且需要說明的是余數(shù)查找表和商查找表中二進(jìn)制數(shù)對(duì)應(yīng)的位數(shù)是相同的,也就是說,在余數(shù)查找表中使用s[1,0]、s[3,2]與余數(shù)相對(duì)應(yīng),則在商查找表中也應(yīng)使用s[1,0]、s[3,2]與商相對(duì)應(yīng),再比如余數(shù)查找表中使用s[2,1,0]、s[3]與余數(shù)相對(duì)應(yīng),則在商查找表中也應(yīng)使用s[2,1,0]、s[3]與商相對(duì)應(yīng),也就是說余數(shù)查找器與商查找器的個(gè)數(shù)是相同的,除特殊情況外,例如:如表1、表2所示,當(dāng)s[1,0]不管是多少,其與除數(shù)5的商都為0,因此在構(gòu)建電路時(shí),商查找器可以只構(gòu)建6個(gè),余數(shù)查找器構(gòu)建7個(gè)。
需要說明的是,商的查找表和余數(shù)的查找表對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù)為除法器能夠索引的最大的二進(jìn)制數(shù)的位數(shù),如表1的余數(shù)查找表對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù)為14,即利用該余數(shù)查找表能夠索引的被除數(shù)最大的位數(shù)為14,當(dāng)被除數(shù)的位數(shù)大于14時(shí),可利用復(fù)用該余數(shù)查找表實(shí)現(xiàn)除法運(yùn)算。商查找表與余 數(shù)查找表的實(shí)現(xiàn)方式類似,在此不再贅述。
在本發(fā)明實(shí)施例中一種可選的構(gòu)成第一運(yùn)算結(jié)果輸出器104的方式為:
由至少一個(gè)第一余數(shù)運(yùn)算結(jié)果選擇器、至少一個(gè)第三加法器、至少一個(gè)第三觸發(fā)器和至少一個(gè)第四觸發(fā)器構(gòu)成第一運(yùn)算結(jié)果輸出器104。
第一余數(shù)運(yùn)算結(jié)果選擇器104可以一個(gè)為多選一的選擇器,也可以為由多個(gè)二選一的選擇器組成。
在將第一余數(shù)運(yùn)算結(jié)果輸出到第一運(yùn)算結(jié)果輸出器104中的第一余數(shù)運(yùn)算結(jié)果輸出器后,所述除法器中的第一余數(shù)運(yùn)算結(jié)果輸出器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),其中第二余數(shù)為輸入的所述第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù),得到輸入的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二商,其中第二商為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商,并將所述第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商輸出到所述第三加法器。
第一運(yùn)算結(jié)果輸出器104中的第三加法器對(duì)第二商與第一商運(yùn)算結(jié)果求和,得到輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商。
其中,當(dāng)輸入的二進(jìn)制數(shù)為被除數(shù)時(shí),則被除數(shù)的位數(shù)不超過預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表和商查找表對(duì)應(yīng)的二進(jìn)制數(shù)對(duì)應(yīng)的位數(shù),則第一運(yùn)算結(jié)果輸出器輸出的輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)為被除數(shù)除以預(yù)設(shè)除數(shù)得到商和余數(shù)。
如表1中,余數(shù)查找表對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù)為14,表2中商查找表對(duì)應(yīng)的位數(shù)也為14。
第一運(yùn)算結(jié)果輸出器104在接收到輸入的觸發(fā)脈沖信號(hào)后,輸出被除數(shù)對(duì)應(yīng)的商和余數(shù)。
具體的,第一運(yùn)算結(jié)果輸出器104中的第三觸發(fā)器在接收到輸入的觸發(fā)脈沖信號(hào)后,輸出被除數(shù)對(duì)應(yīng)的余數(shù);第一運(yùn)算結(jié)果輸出器104中的第四觸發(fā)器在接收到輸入的觸發(fā)脈沖信號(hào)后,輸出被除數(shù)對(duì)應(yīng)的商。
可選的,第一運(yùn)算結(jié)果輸出器104還用于:輸出觸發(fā)脈沖信號(hào)。
具體來說,用戶可以根據(jù)輸出的觸發(fā)脈沖信號(hào)判斷當(dāng)前輸出的被除數(shù)對(duì)應(yīng)的商和余數(shù)是否有效。也就是說,當(dāng)觸發(fā)器為高電平觸發(fā)時(shí),若輸出的是高電平,則當(dāng)前輸出的結(jié)果即為有效結(jié)果,若輸出的是低電平,則當(dāng)前輸出的結(jié)果不是有效結(jié)果。
第一運(yùn)算結(jié)果輸出器104輸出觸發(fā)脈沖信號(hào)一種可選的方式為通過一個(gè)單獨(dú)的用于輸出觸發(fā)脈沖信號(hào)的觸發(fā)器輸出觸發(fā)脈沖信號(hào)。
此外,可以根據(jù)需要在電路中,構(gòu)建多個(gè)除數(shù)對(duì)應(yīng)的余數(shù)查找器和商查找器,從而實(shí)現(xiàn)對(duì)不同除數(shù)的運(yùn)算。
如圖10所示,為當(dāng)除數(shù)為5,余數(shù)查找表和商查找表為14位時(shí)的除法器的電路示意圖。
在圖10中,余數(shù)查找器為1001、1002、1003、1004、1005、1006、1007,由第一加法器1009、1010、1011、1012、1013、1014以及第一觸發(fā)器1008組成余數(shù)生成器,由第一余數(shù)運(yùn)算結(jié)果選擇器1015、第三加法器1020、以及觸發(fā)器1016、第三觸發(fā)器1017、第四觸發(fā)器1018、觸發(fā)器1019組成第一運(yùn)算結(jié)果輸出器,商查找器為1021、1022、1023、1024、1025、1026,由第二加法器1027、1028、1029、1030、1031、第二觸發(fā)器1032、1033組成商生成器;
其中,觸發(fā)器1016用于接收輸入的觸發(fā)脈沖信號(hào);觸發(fā)器1019用于輸出輸入的觸發(fā)脈沖信號(hào)。
本發(fā)明中的除法器還可以實(shí)現(xiàn)在被除數(shù)取值范圍較大時(shí)的運(yùn)算,當(dāng)被除數(shù)的取值范圍較大時(shí),可以復(fù)用低位的除法器(如圖10所示)進(jìn)行除法運(yùn)算,在復(fù)用時(shí),可以使用一個(gè)低位的除法器,也可以使用多個(gè)低位的除法器,根據(jù)被除數(shù)對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù)來確定需要使用幾個(gè)低位的除法器。如圖12所示,本發(fā)明實(shí)施例中被除數(shù)對(duì)應(yīng)的二進(jìn)制位數(shù)為28位的除法器中并行使用了兩個(gè)低14位的除法器的情況。
當(dāng)余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù)為被除數(shù)對(duì)應(yīng)位的部分二進(jìn)制數(shù)時(shí),如圖11所示,除法器還包括:被除數(shù)判斷器1100和第二運(yùn)算結(jié)果輸出 器1101;
被除數(shù)判斷器1100,用于在被除數(shù)的位數(shù)超過N時(shí),將被除數(shù)劃分為一個(gè)低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù),其中低位二進(jìn)制數(shù)的位數(shù)等于N,高位二進(jìn)制數(shù)的位數(shù)不大于N;并將高位二進(jìn)制數(shù)移至低位,得到至少一個(gè)新的二進(jìn)制數(shù),并判斷低位二進(jìn)制數(shù)以及至少一個(gè)新的二進(jìn)制數(shù)是否都為零,若都為零,則將零輸出到第二運(yùn)算結(jié)果輸出器;若不全為零,則將不為零的二進(jìn)制數(shù)作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到余數(shù)查找器和商查找器;
其中,N為預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表和預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù);
第二運(yùn)算結(jié)果輸出器1101,用于:
將新的二進(jìn)制數(shù)對(duì)應(yīng)的商,向左移K位,得到第二商運(yùn)算結(jié)果,將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),向左移K位,與MK除以預(yù)設(shè)除數(shù)的商相乘,得到第三商運(yùn)算結(jié)果,其中K為得到所述新的二進(jìn)制數(shù)時(shí)移位的位數(shù),以及將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù)的余數(shù)相乘,得到第二余數(shù)運(yùn)算結(jié)果,將所述第二余數(shù)運(yùn)算結(jié)果作為所述余數(shù)查找器和所述商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;根據(jù)所述所述第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù)確定高位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),并對(duì)所述第二商運(yùn)算結(jié)果、所述第三商運(yùn)算結(jié)果、以及所述第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,得到高位二進(jìn)制數(shù)對(duì)應(yīng)的商;
以及確定低位二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù);
并對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)和所述低位二進(jìn)制數(shù)對(duì)應(yīng)余數(shù)求和,得到第三余數(shù)運(yùn)算結(jié)果,將所述第三余數(shù)運(yùn)算結(jié)果作為余數(shù)查找器和商查找器的輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器,確定所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù),以及對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的商、低位二進(jìn)制數(shù)對(duì)應(yīng)的商以及所述第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,并輸 出運(yùn)算結(jié)果;
其中,M為不為零的正整數(shù)。
需要說明的是,本發(fā)明實(shí)施例的N值是根據(jù)被除數(shù)的取值范圍和實(shí)際電路的實(shí)現(xiàn)情況來確定的,例如,當(dāng)二進(jìn)制表示的被除數(shù)為25位時(shí),若N值取為25,則用一個(gè)余數(shù)查找表和一個(gè)商查找表即可實(shí)現(xiàn),但是電路所耗費(fèi)的面積太大,將N值取為14,通過復(fù)用兩個(gè)低14位的除法器,可以減小電路所耗費(fèi)的面積,但需要多耗費(fèi)幾個(gè)時(shí)鐘,若在實(shí)際電路的實(shí)現(xiàn)中對(duì)電路所耗費(fèi)的面積要求不高,而對(duì)運(yùn)算耗費(fèi)的時(shí)間的要求較高,可使N值取25,若對(duì)電路所耗費(fèi)的面積要求較高,而對(duì)運(yùn)算耗費(fèi)的時(shí)間的要求不高,可使N值取14。
此外,當(dāng)N取值為14時(shí),還可以擴(kuò)展為求被除數(shù)位數(shù)為0~27位,或0~41位的被除數(shù)。
當(dāng)在被除數(shù)的位數(shù)超過N時(shí),將被除數(shù)劃分為一個(gè)低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù),其中低位二進(jìn)制數(shù)的位數(shù)等于N,高位二進(jìn)制數(shù)的位數(shù)不大于N;例如被除數(shù)為二進(jìn)制數(shù)s=1100101001,若余數(shù)查找表和商查找表對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù)為4,則將被除數(shù)劃分為低位二進(jìn)制數(shù)1001,和高位二進(jìn)制數(shù)0010和11,其中,低位二進(jìn)制數(shù)1001中s[0]=1,s[1]=0,s[2]=0,s[3]=1;高位二進(jìn)制數(shù)0010中s[4]=0,s[5]=1,s[6]=0,s[7]=0,高位二進(jìn)制數(shù)11中s[8]=1,s[9]=1,將高位移至低位即將第4位上的0移至第0位,將第5位上的1移至第1位,第6位上的0移至第2位,第7位上的0移至第3位,即高位二進(jìn)制數(shù)向右平移4位,即K=4,而高位二進(jìn)制數(shù)11向右平移8位,此時(shí)K=8。
本發(fā)明中的M根據(jù)實(shí)際需要進(jìn)行設(shè)定,其中在本發(fā)明實(shí)施例中M的取值為2。
以預(yù)設(shè)除數(shù)為5,余數(shù)查找表如表1和商查找表如表2為例進(jìn)行說明,若輸入的二進(jìn)制數(shù)為28位的二進(jìn)制數(shù),則通過被除數(shù)判斷器1100將二進(jìn)制數(shù)劃分為高14位和低14位,將高14位的二進(jìn)制數(shù)通過移位寄存器1100移至低14位,輸入余數(shù)查找器和商查找器,也就是復(fù)用表1和表2,通過第一運(yùn)算結(jié)果 輸出器確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù),該商和余數(shù)即為輸入的移位后新的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù),其中新的二進(jìn)制數(shù)為高14位的二進(jìn)制數(shù)移至低14位得到的二進(jìn)制數(shù),將輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商向左移14位,得到第二商運(yùn)算結(jié)果,輸入的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)分別與214除以5對(duì)應(yīng)的商和余數(shù)相乘,得到第三商運(yùn)算結(jié)果和第二余數(shù)運(yùn)算結(jié)果,其中第三商運(yùn)算結(jié)果為輸入的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與214除以5的商相乘得到的結(jié)果,第二余數(shù)運(yùn)算結(jié)果為輸入的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與214除以5的余數(shù)相乘得到的結(jié)果,將第二余數(shù)運(yùn)算結(jié)果,將第二余數(shù)運(yùn)算結(jié)果輸出到余數(shù)查找器和商查找器,通過第一運(yùn)算結(jié)果輸出器得到第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù),其中,第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù)為高14位的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),第二商運(yùn)算結(jié)果、第三商運(yùn)算結(jié)果以及第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商相加得到高4位的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)。
第二運(yùn)算結(jié)果輸出器1101將高14位對(duì)應(yīng)的余數(shù)與低14位對(duì)應(yīng)的余數(shù)相加,得到第三余數(shù)運(yùn)算結(jié)果;
第二運(yùn)算結(jié)果輸出器1101將第三余數(shù)運(yùn)算結(jié)果輸出到所述余數(shù)查找器和商查找器,確定第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù)。
其中,第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù)即為28位的被除數(shù)對(duì)應(yīng)的余數(shù)。
運(yùn)算結(jié)果輸出器1101將高14位對(duì)應(yīng)的商、低14位對(duì)應(yīng)的商、以及第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商相加。
其中,高14位對(duì)應(yīng)的商、低14位對(duì)應(yīng)的商、以及第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商的和即為28位的被除數(shù)對(duì)應(yīng)的商。
被除數(shù)判斷器在在輸入的二進(jìn)制數(shù)的位數(shù)未超過14位時(shí),直接將二進(jìn)制數(shù)輸入到余數(shù)查找器和商查找器,通過第一運(yùn)算結(jié)果輸出器輸出該二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)。
對(duì)于由至少一個(gè)余數(shù)查找器、余數(shù)生成器、至少一個(gè)商查找器、商生成器以及第一運(yùn)算結(jié)果輸出器組成的除法器為低位的除法器,其中,低位除法器的被除數(shù)的最大位數(shù)是由余數(shù)查找器和商查找器對(duì)應(yīng)的位數(shù)而決定的,由被除數(shù) 判斷器、低位除法器、第二運(yùn)算結(jié)果輸出器組成的除法器為高位的除法器,能夠在被除數(shù)的位數(shù)大于余數(shù)查找表和商查找表對(duì)應(yīng)的位數(shù)的除法運(yùn)算,其中高位的除法器中可以包括一個(gè)低位除法器,也可以為多個(gè)相同的或不同的低位除法器。
當(dāng)被除數(shù)的二進(jìn)制數(shù)為其他大于14位的二進(jìn)制數(shù)時(shí),其計(jì)算過程與28位的被除數(shù)的計(jì)算過程類似,在此不再贅述。
當(dāng)被除數(shù)大于N時(shí),通過復(fù)用低位的除法器即可實(shí)現(xiàn)被除數(shù)取值范圍比較大時(shí)的除法運(yùn)算,從而提高了除法器的運(yùn)算速度。
可選的,在被除數(shù)的位數(shù)小于或等于N時(shí),被除數(shù)判斷器1101,還用于:將被除數(shù)作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù)輸出到所述余數(shù)查找器和所述商查找器;
其中,所述除法器中的第一運(yùn)算結(jié)果輸出器輸出的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)為被除數(shù)除以預(yù)設(shè)除數(shù)的運(yùn)算結(jié)果。
具體來說,可選的,被除數(shù)判斷器,包括至少一個(gè)移位寄存器,和至少一個(gè)選擇器;
移位寄存器,用于在被除數(shù)的位數(shù)超過N時(shí),將被除數(shù)劃分為一個(gè)低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù),其中低位二進(jìn)制數(shù)的位數(shù)等于N,高位二進(jìn)制數(shù)的位數(shù)不大于N;并將高位二進(jìn)制數(shù)移至低位,得到至少一個(gè)新的二進(jìn)制數(shù);
選擇器,用于判斷低位二進(jìn)制數(shù)以及至少一個(gè)新的二進(jìn)制數(shù)是否都為零,若都為零,則將零輸出到第二運(yùn)算結(jié)果輸出器;若不全為零,則將不為零的二進(jìn)制數(shù)作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到余數(shù)查找器和商查找器;
其中,N為預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表和預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表對(duì)應(yīng)的二進(jìn)制位數(shù)。
第二運(yùn)算結(jié)果輸出器,包括:至少一個(gè)商判斷的選擇器、至少一個(gè)余數(shù)判 斷的選擇器、至少一個(gè)第一乘法器、至少一個(gè)第二乘法器、至少一個(gè)第三乘法器,至少一個(gè)第四加法器、至少一個(gè)第五加法器和至少一個(gè)第六加法器;
其中,商判斷的選擇器,用于確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商為新的二進(jìn)制數(shù)對(duì)應(yīng)的商后,將新的二進(jìn)制數(shù)對(duì)應(yīng)的商輸出到第一乘法器;以及在確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商為低位二進(jìn)制數(shù)對(duì)應(yīng)的商后,將低位二進(jìn)制數(shù)對(duì)應(yīng)的商輸出都第六加法器;
余數(shù)判斷的選擇器,用于在確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)為新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)后,將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)輸出到第二乘法器;在確定輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)為低位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)后,將低位二進(jìn)制數(shù)對(duì)應(yīng)的商輸出到第五加法器;
第一乘法器,用于根據(jù)得到的新的二進(jìn)制數(shù)移位的位數(shù)K,將新的二進(jìn)制數(shù)對(duì)應(yīng)的商向左移K位,得到第二商運(yùn)算結(jié)果;
第二乘法器,用于將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù)后對(duì)應(yīng)的商相乘,得到第三商運(yùn)算結(jié)果;
第三乘法器,用于將所述新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù)后對(duì)應(yīng)的余數(shù)相乘,得到第二余數(shù)運(yùn)算結(jié)果,將所述第二余數(shù)運(yùn)算結(jié)果作為所述余數(shù)查找器和所述商查找器輸入的二進(jìn)制數(shù),輸出到所述余數(shù)查找器和所述商查找器;
第四加法器,用于對(duì)第二商運(yùn)算結(jié)果、第三商運(yùn)算結(jié)果、以及第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,得到高位二進(jìn)制數(shù)對(duì)應(yīng)的商;
第五加法器,用于對(duì)所有不為零的高位二進(jìn)制數(shù)和低位二進(jìn)制數(shù)的余數(shù)求和,得到第三余數(shù)運(yùn)算結(jié)果,以及將第三余數(shù)運(yùn)算結(jié)果作為余數(shù)查找器和商查找器的輸入的二進(jìn)制數(shù),輸出到余數(shù)查找器和商查找器,確定第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù),并輸出余數(shù)的運(yùn)算結(jié)果;
第六加法器,用于對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的商、低位二進(jìn)制數(shù)對(duì)應(yīng)的商以及第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,并輸出商的運(yùn)算結(jié)果。
如圖12所示,第二運(yùn)算結(jié)果輸出器包括:商判斷選擇器1200、余數(shù)判斷選擇器1201、第一乘法器1204、第二乘法器1202、第三乘法器1203、第四加法器1205、1206、第五加法器1207和第六加法器1208。
以預(yù)設(shè)除數(shù)為5,余數(shù)查找表如表1和商查找表如表2為例進(jìn)行說明,若輸入的二進(jìn)制數(shù)為28位的二進(jìn)制數(shù)時(shí),如圖13所示,通過選擇器1300確定二進(jìn)制數(shù)的高14位是否為零,通過選擇器1301確定二進(jìn)制數(shù)的低14位是否為零。
如圖14所示,為當(dāng)除數(shù)為5,余數(shù)查找表和商查找表為14位時(shí),輸入二進(jìn)制數(shù)為28位時(shí)的除法器的電路示意圖。
在圖14中,i_enable為輸入的觸發(fā)脈沖信號(hào),為使得電路的示意圖更加清晰,在圖中省略了由第一觸發(fā)器1401提供的脈沖信號(hào)enable_2與電路中的其他器件的連線。
其中,1403和1402為低14位的除法器,是相同電路,包括余數(shù)查找器1001、1002、1003、1004、1005、1006、1007,由第一加法器1009、1010、1011、1012、1013、1014以及第一觸發(fā)器1008組成余數(shù)生成器,由第一余數(shù)運(yùn)算結(jié)果選擇器1015、第三加法器1020、以及觸發(fā)器1016、第三觸發(fā)器1017、第四觸發(fā)器1018、觸發(fā)器1019組成運(yùn)算結(jié)果輸出器,商查找器1021、1022、1023、1024、1025、1026,由第二加法器1027、1028、1029、1030、1031、第二觸發(fā)器1032、1033組成商生成器;其中,觸發(fā)器1016用于接收輸入的觸發(fā)脈沖信號(hào);
需要說明的是,1402、1403也可以為不同的電路。
1400為選擇器,其中,觸發(fā)器1407用于輸出觸發(fā)脈沖信號(hào)。
第二運(yùn)算結(jié)果輸出器包括余數(shù)判斷的選擇器1404、1406、商判斷選擇器1405、1407、第一乘法器1408、第二乘法器1410、第三乘法器1409、第四加法器1411、1412、1413,第五加法器1415、第六加法器1414。
1401為觸發(fā)器,用于接收輸入的觸發(fā)脈沖信號(hào),用兩個(gè)觸發(fā)器是為了延遲 兩個(gè)時(shí)鐘。
1416為觸發(fā)器,用于在接收到觸發(fā)脈沖信號(hào)后輸出被除數(shù)除以預(yù)設(shè)除數(shù)得到的商。
1417為觸發(fā)器,用于輸出接收到觸發(fā)脈沖信號(hào)。
1418為觸發(fā)器,用于在接收到觸發(fā)脈沖信號(hào)后輸出被除數(shù)除以預(yù)設(shè)除數(shù)得到的余數(shù)。
可選的,若被除數(shù)為輸入的二進(jìn)制數(shù)時(shí),第一運(yùn)算結(jié)果輸出器還用于:
輸出觸發(fā)脈沖信號(hào);
若被除數(shù)對(duì)應(yīng)位的部分為輸入的二進(jìn)制數(shù)時(shí),第二運(yùn)算結(jié)果輸出器,還用于:
輸出觸發(fā)脈沖信號(hào)。
具體來說,當(dāng)被除數(shù)的位數(shù)小于或等于余數(shù)查找表和商查找表對(duì)應(yīng)的位數(shù)時(shí),通過第一運(yùn)算結(jié)果輸出器輸出的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)為被除數(shù)除以預(yù)設(shè)除數(shù)的商和余數(shù)后,通過第一運(yùn)算結(jié)果輸出器輸出觸發(fā)脈沖信號(hào)。
當(dāng)被除數(shù)的位數(shù)大于余數(shù)查找表和商查找表對(duì)應(yīng)的位數(shù),通過第二運(yùn)算結(jié)果輸出器輸出被除數(shù)除以預(yù)設(shè)除數(shù)的商和余數(shù),通過第二運(yùn)算結(jié)果輸出器輸出觸發(fā)脈沖信號(hào)。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種求商和余數(shù)的方法,由于本發(fā)明實(shí)施例除法器對(duì)應(yīng)的方法為求商和余數(shù)的方法,因此本發(fā)明實(shí)施例裝置的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
如圖15所示,本發(fā)明實(shí)施例十二求商和余數(shù)的方法,包括:
步驟1500,除法器接收輸入的二進(jìn)制數(shù);
除法器根據(jù)下列方式計(jì)算二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù):
步驟1501,除法器中的余數(shù)查找器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找第一余數(shù),其中,第一余數(shù)為輸入的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù);
步驟1502,除法器中的余數(shù)生成器對(duì)第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié) 果;
步驟1503,除法器中的第一運(yùn)算結(jié)果輸出器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到并輸出二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),其中第二余數(shù)為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù);
除法器根據(jù)下列方式計(jì)算二進(jìn)制數(shù)對(duì)應(yīng)的商:
步驟1504,除法器中的商查找器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找第一商,其中,第一商為二進(jìn)制數(shù)對(duì)應(yīng)位的商;
步驟1505,除法器中的商生成器對(duì)第一商求和,得到第一商運(yùn)算結(jié)果;
步驟1506,除法器中的第一運(yùn)算結(jié)果輸出器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二商,并對(duì)第二商與第一商運(yùn)算結(jié)果求和,得到并輸出二級(jí)制數(shù)對(duì)應(yīng)的商,其中第二商為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商。
其中,步驟1501、步驟1502、步驟1503與步驟1504之間無必然先后順序,步驟1501、步驟1502、步驟1503與步驟1505之間無必然先后順序,步驟1501、步驟1502、步驟1503與步驟1506之間無必然先后順序。
可選的,除法器根據(jù)下列方式計(jì)算二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),具體包括:
除法器中的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù)選擇器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找第一余數(shù);
除法器中的第一加法器對(duì)第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果;
除法器中的第一觸發(fā)器將第一余數(shù)運(yùn)算結(jié)果輸出到除法器中的第一余數(shù)運(yùn)算結(jié)果選擇器;
除法器中的第一余數(shù)運(yùn)算結(jié)果選擇器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù);
除法器中的第三觸發(fā)器輸出二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)。
可選的,除法器根據(jù)下列方式計(jì)算二進(jìn)制數(shù)對(duì)應(yīng)的商,具體包括:
除法器中的二進(jìn)制數(shù)對(duì)應(yīng)位的商選擇器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找第一商;
除法器中的第二加法器對(duì)第一商求和,得到第一商運(yùn)算結(jié)果;
除法器中的第二觸發(fā)器將第一商運(yùn)算結(jié)果輸出到除法器中的第三加法器;
除法器中的第一余數(shù)運(yùn)算結(jié)果選擇器根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二商;
除法器中的第三加法器對(duì)第二商和第一商運(yùn)算結(jié)果求和,得到輸入的二進(jìn)制數(shù)對(duì)應(yīng)的商;
除法器中的第四觸發(fā)器輸出二進(jìn)制數(shù)對(duì)應(yīng)的商。
可選的,余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù)為被除數(shù),除法器中的第一運(yùn)算結(jié)果輸出器輸出的二進(jìn)制數(shù)對(duì)應(yīng)的商為被除數(shù)對(duì)應(yīng)的商;除法器中的第一運(yùn)算結(jié)果輸出器輸出的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)為被除數(shù)對(duì)應(yīng)的余數(shù)。
可選的,除法器中的余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù)為被除數(shù)對(duì)應(yīng)位的部分二進(jìn)制數(shù);
除法器在接收輸入的二進(jìn)制數(shù)之后,查找第一商和第一余數(shù)之前,還包括:
除法器中的被除數(shù)判斷器在被除數(shù)的位數(shù)超過N時(shí),將劃分為一個(gè)低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù),其中低位二進(jìn)制數(shù)的位數(shù)等于N,高位二進(jìn)制數(shù)的位數(shù)不大于N;并將高位二進(jìn)制數(shù)移至低位,得到至少一個(gè)新的二進(jìn)制數(shù),并判斷低位二進(jìn)制數(shù)以及至少一個(gè)新的二進(jìn)制數(shù)是否都為零,若都為零,則將零輸出到第二運(yùn)算結(jié)果輸出器;若不全為零,則將不為零的新的二進(jìn)制數(shù)和低位二進(jìn)制數(shù)分別作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到余數(shù)查找器和商查找器;
其中,N為預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表和預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表對(duì)應(yīng)的二進(jìn)制位數(shù);
除法器的第一運(yùn)算結(jié)果輸出器輸出二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)后,還包括:
除法器中的第二運(yùn)算結(jié)果輸出器將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),向左移K位,與MK除以預(yù)設(shè)除數(shù)的商相乘,得到第三商運(yùn)算結(jié)果,其中K為得到新的二進(jìn)制數(shù)時(shí)移位的位數(shù),以及將新的二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù)與MK除以預(yù)設(shè)除數(shù) 的余數(shù)相乘,得到第二余數(shù)運(yùn)算結(jié)果,將第二余數(shù)運(yùn)算結(jié)果作為除法器中的余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù),輸出到余數(shù)查找器和商查找器;根據(jù)第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù)確定高位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及確定低位二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù);
并對(duì)所有不為零的高位二進(jìn)制數(shù)和低位二進(jìn)制數(shù)的余數(shù)求和,得到第三余數(shù)運(yùn)算結(jié)果,將第三余數(shù)運(yùn)算結(jié)果作為余數(shù)查找器和商查找器的輸入的二進(jìn)制數(shù),輸出到余數(shù)查找器和商查找器,確定第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商和余數(shù),并輸出余數(shù)運(yùn)算結(jié)果;
其中,M為不為零的正整數(shù)。
除法器的第一運(yùn)算結(jié)果輸出器輸出二進(jìn)制數(shù)對(duì)應(yīng)的商后,還包括:
除法器中的第二運(yùn)算結(jié)果輸出器將新的二進(jìn)制數(shù)對(duì)應(yīng)的商,向左移K位,得到第二商運(yùn)算結(jié)果,對(duì)第二商運(yùn)算結(jié)果、第三商運(yùn)算結(jié)果和第二余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,得到高位二進(jìn)制數(shù)對(duì)應(yīng)的商;以及確定低位二進(jìn)制數(shù)對(duì)應(yīng)的商;
并對(duì)所有不為零的高位二進(jìn)制數(shù)對(duì)應(yīng)的商、低位二進(jìn)制數(shù)對(duì)應(yīng)的商以及第三余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商求和,并輸出商運(yùn)算結(jié)果;
其中,M為不為零的正整數(shù)。
可選的,若除法器中的被除數(shù)判斷器確定劃分后的低位二進(jìn)制數(shù)和至少一個(gè)高位二進(jìn)制數(shù)都為零,該方法還包括:
除法器中的被除數(shù)判斷器將零直接輸入到除法器中的運(yùn)算結(jié)果輸出器;
除法器中的第二運(yùn)算結(jié)果輸出器輸出運(yùn)算結(jié)果。
可選的,該方法還包括:
除法器中的被除數(shù)判斷器在被除數(shù)的位數(shù)小于或等于N時(shí),將被除數(shù)作為余數(shù)查找器和商查找器輸入的二進(jìn)制數(shù)輸出到余數(shù)查找器和商查器;
其中,除法器中的第一運(yùn)算結(jié)果輸出器輸出的二進(jìn)制數(shù)對(duì)應(yīng)的商和余數(shù)為被除數(shù)除以預(yù)設(shè)除數(shù)的運(yùn)算結(jié)果。
可選的,該方法還包括:
除法器輸出輸入的觸發(fā)脈沖信號(hào)。
如圖16所示,以除數(shù)為5,被除數(shù)為28位的二進(jìn)制數(shù)、余數(shù)查找表和商查找表為14位的查找表為例,介紹求商和余數(shù)的方法,包括:
步驟1600,輸入的28位二進(jìn)制數(shù)和觸發(fā)脈沖信號(hào)。
步驟1601,將被除數(shù)劃分為低14位和高14位的二進(jìn)制數(shù),并將高14位的二進(jìn)制數(shù)移至低14位。
步驟1602,分別判斷低14位的二進(jìn)制數(shù)和移位后的高14位的二進(jìn)制數(shù)是否為零,若同時(shí)為零,則執(zhí)行步驟1603,若低14位為零高14位不為零,則執(zhí)行步驟1604,若低14位不為零高14位為零,則執(zhí)行步驟1608,若同時(shí)都不為零,則執(zhí)行步驟1610。
步驟1603,輸出被除數(shù)對(duì)應(yīng)的商為0,被除數(shù)對(duì)應(yīng)的余數(shù)為0,本流程結(jié)束。
步驟1604,計(jì)算移位后的高14位的二進(jìn)制數(shù)對(duì)應(yīng)的商q1和余數(shù)r1。
步驟1605,對(duì)得到的商q1向左移14位,得到商q2;對(duì)得到的余數(shù)r1分別乘以214除以5對(duì)應(yīng)的商和余數(shù),得到余數(shù)r3和商q3。
步驟1606,將r3重新輸入低14位的除法器,得到余數(shù)r3對(duì)應(yīng)的商q4和余數(shù)r4。
步驟1607,輸出被除數(shù)對(duì)應(yīng)的商qH=q2+q3+q4;被除數(shù)對(duì)應(yīng)的余數(shù)為rH=r4,本流程結(jié)束。
步驟1608,計(jì)算低14位二進(jìn)制數(shù)對(duì)應(yīng)的商q5和余數(shù)r5。
步驟1609,輸出被除數(shù)對(duì)應(yīng)的商qL=q5,被除數(shù)對(duì)應(yīng)的余數(shù)rL=r5,本流程即結(jié)束。
步驟1610,依次執(zhí)行步驟1604至步驟1607得到高14位二進(jìn)制數(shù)對(duì)應(yīng)的商qH和高14位對(duì)應(yīng)的余數(shù)rH,依次執(zhí)行步驟1609至步驟1610得到低14位二進(jìn)制數(shù)對(duì)應(yīng)的商qL和低14位對(duì)應(yīng)的余數(shù)rL,對(duì)rH和rL求和得到r0,將 其r0重新低14位的除法器,得到商q6和余數(shù)r6;
步驟1611,輸出被除數(shù)對(duì)應(yīng)的商q=qH+qL+q6;輸出被除數(shù)對(duì)應(yīng)的商r=r6,本流程結(jié)束。
從上述內(nèi)容可以看出:本發(fā)明實(shí)施例的除法器包括:至少一個(gè)余數(shù)查找器、余數(shù)生成器、至少一個(gè)商查找器、商生成器、第一運(yùn)算結(jié)果輸出器;其中:余數(shù)查找器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表查找第一余數(shù),第一余數(shù)為輸入的二進(jìn)制數(shù)對(duì)應(yīng)位的余數(shù);余數(shù)生成器,用于對(duì)第一余數(shù)求和,得到第一余數(shù)運(yùn)算結(jié)果;商查找器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表查找第一商,第一商為二進(jìn)制數(shù)對(duì)應(yīng)位的商;商生成器,用于對(duì)第一商求和,得到第一商運(yùn)算結(jié)果;第一運(yùn)算結(jié)果輸出器,用于根據(jù)預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表查找第二余數(shù),得到并輸出二進(jìn)制數(shù)對(duì)應(yīng)的余數(shù),以及根據(jù)第一余數(shù)運(yùn)算結(jié)果查找表查找第二商,并對(duì)第二商與第一商運(yùn)算結(jié)果求和,得到并輸出二進(jìn)制數(shù)對(duì)應(yīng)的商;第二余數(shù)為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的余數(shù),第二商為第一余數(shù)運(yùn)算結(jié)果對(duì)應(yīng)的商。這種技術(shù)方案由于能夠通過預(yù)設(shè)除數(shù)對(duì)應(yīng)的余數(shù)查找表、預(yù)設(shè)除數(shù)對(duì)應(yīng)的商查找表以及預(yù)設(shè)除數(shù)對(duì)應(yīng)的第一余數(shù)運(yùn)算結(jié)果查找表實(shí)現(xiàn)除法的運(yùn)算,降低了電路的復(fù)雜性,提高了運(yùn)算的速度,同時(shí)減小了電路占用的面積。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。