專利名稱:一種集成電路中除法器商的處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路中數(shù)字信號處理電路,具體涉及一種集成電路中除法器商的
處理裝置。
背景技術(shù):
在集成電路的設(shè)計中,對某些運算邏輯,會用到除法器,目前,利用除法器運算得 到商的方式主要有以下兩種第一種,將被除數(shù)和除數(shù)輸入到除法器,將除法器運算得到的商直接作為最終除 法器的商;第二種,在被除數(shù)的最低位之后擴(kuò)展一個比特0,將得到的商通過四舍五入的方式 截掉最低比特。例如除法器的被除數(shù)為a,位寬為m比特,除數(shù)為b,位寬為η比特,商為q, 位寬為t,則對a進(jìn)行位寬擴(kuò)展,得到al[m:0] = {a[m_l :0],l’b0},并得到商的位寬為t+1, 即q[t:0]。通過四舍五入的方式,最終得到商為ql[t_l:0];對于第一種方式,由于沒有對商進(jìn)行四舍五入的操作,會使運算的精度降低,對性 能要求比較高的系統(tǒng),可能影響系統(tǒng)的性能;而對于第二種方式,由于被除數(shù)的位寬擴(kuò)展了 一個比特,使得除法器運算的位寬增加了一個比特,對于除法器這種比較復(fù)雜的運算單元, 增加一個比特會大幅度的增加邏輯資源,從而使芯片面積變大,并且由于得到的t+ι位的 商已經(jīng)是經(jīng)過截位的數(shù)據(jù),并不能得到真正準(zhǔn)確的四舍五入結(jié)果?;谝陨系脑?,采用本發(fā)明的裝置,可以提高除法器的精度,并在保證精度的前 提下使用較少的邏輯資源。
發(fā)明內(nèi)容
本發(fā)明提供了對集成電路中有符號二進(jìn)制補碼以及無符號除法器的商進(jìn)行處理 的裝置。利用這種裝置,能以較少的邏輯資源實現(xiàn)對除法器的商進(jìn)行處理。具體實現(xiàn)方法如下所述對集成電路中有符號二進(jìn)制補碼的除法器的商進(jìn)行處理的裝置,包括絕對值比較 單元,不進(jìn)位判決單元,正向進(jìn)位判決單元,負(fù)向進(jìn)位判決單元,商運算結(jié)果輸出單元;其 中絕對值比較單元通過分別判斷余數(shù)和除數(shù)的符號位,實現(xiàn)余數(shù)絕對值和除數(shù)絕對 值運算,并對余數(shù)和除數(shù)的絕對值進(jìn)行比較,將比較的結(jié)果指示信號分別輸出到不進(jìn)位判 決單元,正向進(jìn)位判決單元和負(fù)向進(jìn)位判決單元;不進(jìn)位判決單元通過對來自IP核除法器的商進(jìn)行最大正數(shù)與最小負(fù)數(shù)的判斷, 并結(jié)合來自絕對值比較單元輸出的指示信號,輸出不進(jìn)位指示信號到商運算結(jié)果輸出單 元;正向進(jìn)位判決單元判斷被除數(shù)與除數(shù)的符號的差異,并將判斷的指示信號輸出到 負(fù)向進(jìn)位判決單元,并結(jié)合絕對值比較單元的輸出指示信號,輸出正向進(jìn)位指示信號到商運算結(jié)果輸出單元;負(fù)向進(jìn)位判決單元的功能為根據(jù)來自正向判決單元的判斷被除數(shù)和除數(shù)符號差 異的指示信號和絕對值比較單元的輸出指示信號,輸出負(fù)向進(jìn)位指示信號到商運算結(jié)果輸 出單元;商運算結(jié)果輸出單元通過對來自不進(jìn)位判決單元,正向進(jìn)位判決單元與負(fù)向進(jìn)位 判決單元的指示信號進(jìn)行判斷,并利用輸入的除法器的商,輸出經(jīng)過四舍五入運算的最終 除法器的商。實現(xiàn)原理如下判斷除法器的商是否為其位寬所能表示的最大正數(shù)或最小負(fù)數(shù), 如果是,則不對除法器的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除法器的商;否則,將余 數(shù)絕對值與除數(shù)絕對值進(jìn)行比較。如果余數(shù)絕對值小于除數(shù)絕對值的一半,則不對除法器 的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除法器的商;如果余數(shù)絕對值大于或等于除數(shù) 絕對值的一半,則對被除數(shù)與除數(shù)的符號進(jìn)行判斷。如果被除數(shù)與除數(shù)符號不相同,則對除 法器的商進(jìn)行負(fù)向進(jìn)位,即將除法器的商進(jìn)行減1的運算,否則,對除法器的商進(jìn)行正向進(jìn) 位,即將除法器的商進(jìn)行加1的運算。如果除法器商的最高位為0,并且除了最高位以外的其余各位均為1,則除法器的 商為其位寬所能表示的最大正數(shù);如果除法器商的最高位為1,并且除了最高位以外的其 余各位均為0,則除法器的商為其位寬所能表示的最小負(fù)數(shù)。將余數(shù)絕對值與除數(shù)絕對值進(jìn)行比較的一種方法為首先分別判斷余數(shù)和除數(shù)的 符號,如果相應(yīng)的符號位為0,則將相應(yīng)的余數(shù)或除數(shù)的值作為其絕對值;如果相應(yīng)的符號 位為1,則將相應(yīng)的余數(shù)或除數(shù)的每一位先取反,再加上1,從而得到相應(yīng)的余數(shù)絕對值或 除數(shù)絕對值,然后在余數(shù)絕對值的最低位補上一比特0 (等效于將余數(shù)絕對值乘以2),并將 此值與除數(shù)絕對值進(jìn)行比較,如果此值大于或等于除數(shù)絕對值,則表明余數(shù)絕對值大于或 等于除數(shù)絕對值的一半,否則,表明余數(shù)絕對值小于除數(shù)絕對值的一半。判斷被除數(shù)與除數(shù)的符號是否相同,如果被除數(shù)的最高位為1并且除數(shù)的最高位 為0,或被除數(shù)的最高位為0并且除數(shù)的最高位為1,則表明被除數(shù)和除數(shù)的符號不相同,如 果被除數(shù)和除數(shù)的最高位均為O或均為1,則表明被除數(shù)和除數(shù)的符號相同,此判斷可以通 過將被除數(shù)和除數(shù)的最高位進(jìn)行異或操作來實現(xiàn)。對集成電路中無符號除法器的商進(jìn)行處理的裝置,包括比較單元,不進(jìn)位判決單 元,商運算結(jié)果輸出單元。比較單元通過對余數(shù)和除數(shù)進(jìn)行比較,將比較的結(jié)果指示信號分別輸出到不進(jìn)位 判決單元,進(jìn)位判決單元;不進(jìn)位判決單元通過對來自IP核除法器的商進(jìn)行最大數(shù)的判斷,并結(jié)合來自比 較單元輸出的指示信號,輸出不進(jìn)位指示信號到商運算結(jié)果輸出單元。商運算結(jié)果輸出單元通過對來自不進(jìn)位判決單元和比較單元的指示信號進(jìn)行判 斷,并利用輸入的除法器的商,輸出經(jīng)過四舍五入運算的最終除法器的商。實現(xiàn)原理如下判斷除法器的商是否為其位寬所能表示的最大數(shù),如果是,則不對 除法器的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除法器的商;否則,將余數(shù)與除數(shù)進(jìn)行比 較如果余數(shù)小于除數(shù)的一半,則不對除法器的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除 法器的商;如果余數(shù)大于或等于除數(shù)的一半,則對除法器的商進(jìn)行進(jìn)位,即將除法器的商進(jìn)行加1的運算。如果除法器商各位均為1,則除法器的商為最大數(shù)。將余數(shù)與除數(shù)進(jìn)行比較的一種方法為在余數(shù)的最低位補上一個比特0(等效于 將余數(shù)乘以2),并將此值與除數(shù)進(jìn)行比較,如果此值大于或等于除數(shù),則表明余數(shù)大于或等 于除數(shù)的一半,否則,表明余數(shù)小于除數(shù)的一半。
圖1為本發(fā)明中對有符號二進(jìn)制補碼的除法器商進(jìn)行處理的裝置實施例結(jié)構(gòu)示 意圖。圖2為本發(fā)明中對有符號二進(jìn)制補碼的除法器商進(jìn)行處理的裝置的工作原理圖。圖3為本發(fā)明中對無符號除法器商進(jìn)行處理的裝置實施例結(jié)構(gòu)示意4為本發(fā)明中對無符號除法器商進(jìn)行處理的裝置的工作原理圖。
具體實施例方式以下結(jié)合附圖,具體說明本發(fā)明。圖1為本發(fā)明中對有符號二進(jìn)制補碼的除法器商進(jìn)行處理的裝置結(jié)構(gòu)示意圖,如 圖ι所示,其中絕對值比較單元101,不進(jìn)位判決單元102,正向進(jìn)位判決單元103,負(fù)向進(jìn)位 判決單元104,商運算結(jié)果輸出單元105。以下結(jié)合具體實施例,詳細(xì)描述各個單元的運算 過程。假設(shè)被除數(shù)為a[5:0] = 101110 (-18),除數(shù)為b [30] = 0101 (5),則通過除法器 運算,得到商為q[5:0] = 111101(-3),余數(shù)為rem[3:0] =1101(_3)。各個單元的功能結(jié) 構(gòu)描述如下絕對值比較單元101 通過分別判斷余數(shù)和除數(shù)的符號位,實現(xiàn)余數(shù)絕對值和除 數(shù)絕對值運算,并對絕對值進(jìn)行比較,將比較的結(jié)果指示信號分別輸出到不進(jìn)位判決單元 102,正向進(jìn)位判決單元103和負(fù)向進(jìn)位單元104。所述絕對值比較單元101包括第一非門1011,第二非門1012,第一加法器1013, 第二加法器1014,第一選擇器1015,第二選擇器1016,大于等于比較器1017。分別說明如 下第一非門1011,對余數(shù)進(jìn)行按位取反的操作,將結(jié)果輸出給第一加法器1013,在 此例中,將余數(shù)按位取反得到rem_rev[3:0] = 0010(2);第二非門1012,對除數(shù)進(jìn)行按位取反的操作,將結(jié)果輸出給第二加法器1014,在 此例中,將除數(shù)按位取反得到、儀¥ [3:0] = 1010 (-6);第一加法器1013,對來自第一非門1011的結(jié)果與1做相加的運算,將結(jié)果輸出 給第一選擇器1015,在此例中,將rem_rev[3:0]做加1運算得到rem_rev_add[3:0]= 0011(3);第二加法器1014,對來自第二非門1012的結(jié)果與1做相加的運算,將結(jié)果輸出給 第二選擇器1016,在此例中,將b_rev [3:0]做加1運算得到b_reV_add[3:0] = 1011 (-5);第一選擇器1015,對來自第一加法器1013的結(jié)果rem_reV_add[3:0],與相應(yīng)的余 數(shù)rem[3:0],通過余數(shù)符號位進(jìn)行選擇(如果余數(shù)符號位為1,則選擇第一加法器1013的
5結(jié)果,否則選擇余數(shù)本身),將選擇的結(jié)果輸出給比較器1017,在此例中,由于余數(shù)的符號 rem[3] = 1,則選擇 rem_rev_add[3:0]輸出;第二選擇器1016,對來自第二加法器1014的結(jié)果b_reV_add[3:0],與相應(yīng)的除數(shù) b [3:0],通過除數(shù)符號位進(jìn)行選擇(如果除數(shù)符號位為1,則選擇第二加法器1014的結(jié)果, 否則選擇除數(shù)本身),將選擇的結(jié)果輸出給比較器1017,在此例中由于除數(shù)的符號b[3]= 0,則選擇b [3:0]輸出;大于等于比較器1017,將來自第一選擇器1015與第二選擇器1016的結(jié)果,進(jìn)行比 較,所得比較結(jié)果輸出給不進(jìn)位判決單元101,正向進(jìn)位判決單元102和負(fù)向進(jìn)位判決單元 103,在此例中,SP對 rem_rev_add[3:0]和 b[3:0]進(jìn)行比較,首先將 rem_rev_add[3:0]低 位擴(kuò)展一比特0,得到rem_rev_add_ex[4:0] = 00110 (6),然后將這個值與b [3 0]進(jìn)行比 較,得到rem_rev_add_ex[4:0] > b [3 0],從而得到比較器的結(jié)果為abs_comp = 1。不進(jìn)位判決單元102 通過對除法器的商進(jìn)行最大正數(shù)與最小負(fù)數(shù)的判斷,并結(jié) 合來自絕對值比較單元101輸出的指示信號,輸出不進(jìn)位指示信號到商運算結(jié)果輸出單元 105。所述不進(jìn)位判決單元102包括第一非門1021,第二非門1022,與門1023,或非門 1024,或門1025。分別說明如下第一非門1021,對除法器商的符號進(jìn)行取反運算,將結(jié)果輸出給與門1023和或非 門1024,在此例中,即對q[5] = 1進(jìn)行取反運算,得到q_rev[5] =0;第二非門1022,對來自絕對值比較單元的輸出進(jìn)行取反運算,將結(jié)果輸出給或門, 在此例中,即將abs_comp進(jìn)行取反運算得到abs_comp_rev = 0 ;與門1023,將來自第一非門1021的輸出結(jié)果與除法器的商除了符號位之外的 所有位q[4:0]逐一進(jìn)行與操作,所得結(jié)果輸出給或門1024,在此例中,即為q_reV[5]與 q[4:0]逐一進(jìn)行與操作,得到正數(shù)最大值指示信號q_p0S_maX = 0 ;或非門1024,將來自第一非門1021的輸出結(jié)果與除法器的商除了符號位之外的 所有位q[4:0]逐一進(jìn)行或非操作,所得結(jié)果輸出給或門1025,在此例中,即為q_reV[5]與 q[4:0]逐一進(jìn)行或非操作,得到負(fù)數(shù)最小值指示信號q_neg_min = 0 ;或門1025,對來自第二非門1022,與門1023和或非門1024的結(jié)果,進(jìn)行或操作, 將得到的不進(jìn)位指示信號輸出給商運算結(jié)果輸出單元,在此例中,即利用abs_COmp_rev,q_ pos_max與q_neg_min三個指示信號進(jìn)行或操作,最終得到不進(jìn)位指示信號nc^carry = 0。正向進(jìn)位判決單元103 判斷被除數(shù)與除數(shù)的符號,并將判斷的指示信號輸出到 負(fù)向進(jìn)位判決單元104,并結(jié)合絕對值比較單元101的輸出指示信號,輸出正向進(jìn)位指示信 號到商運算結(jié)果輸出單元105。所述正向進(jìn)位判決單元103包括異或門1031,非門1032,與門1033。分別說明如 下異或門1031,將被除數(shù)和除數(shù)的符號位進(jìn)行異或操作,計算結(jié)果同時輸出給非門 1032和負(fù)向進(jìn)位判決單元104,在此例中,即對a[5] = 1和b[3] =0進(jìn)行異或操作,得到 結(jié)果 ab_sign_diff = 1 ;非門1032,將異或門1031的輸出結(jié)果進(jìn)行取反的操作,所得結(jié)果輸出給與門 1033,在此例中,即對ab_sign_diff進(jìn)行取反操作,得到ab_sign_diff_rev = 0 ;
與門1033,將來絕對值比較單元101的輸出和非門1032的輸出進(jìn)行與操作,所得 正向進(jìn)位指示信號輸出給商運算結(jié)果輸出單元105,在此例中,即對abS_COmp和ab_Sign_ diff_rev進(jìn)行與操作,得到正向進(jìn)位指示信號poS_carry = 0。負(fù)向進(jìn)位判決單元104 根據(jù)來自正向判決單元103的輸出信號,與絕對值比較單 元101的輸出指示信號,輸出負(fù)向進(jìn)位指示信號到商運算結(jié)果輸出單元。所述負(fù)向進(jìn)位判決單元104為與門。將來自絕對值比較單元的輸出,與正向進(jìn)位 判決單元103中異或門的輸出進(jìn)行或操作,所得負(fù)向進(jìn)位指示信號輸出給商運算結(jié)果輸出 單元,在此例中,即對abs_Comp和ab_Sign_diff進(jìn)行與運算,得到負(fù)向進(jìn)位指示信號neg_ carry = 1。商運算結(jié)果輸出單元105 通過對來自不進(jìn)位判決單元102,正向進(jìn)位判決單元 103與負(fù)向進(jìn)位判決單元104的指示信號進(jìn)行判斷,并利用輸入的除法器商,輸出經(jīng)過四舍 五入運算的最終除法器的商。所述商運算結(jié)果輸出單元包括第一選擇器1051,加法器1052,第二選擇器1053。 分別說明如下第一選擇器1051 將正向進(jìn)位判決單元103與負(fù)向進(jìn)位判決單元104的輸出指示 信號作為選擇信號,選擇常數(shù)1,-1或O輸出到加法器(如果正向進(jìn)位判決單元103輸出 指示信號為1且負(fù)向進(jìn)位判決單元104的輸出指示信號為0,則選擇1,如果負(fù)向進(jìn)位判決 單元104的輸出指示信號為1且正向進(jìn)位判決單元103輸出指示信號為0,則選擇-1,其他 情況選擇0),在此例中,即利用p0S_carry,neg_carry作為選擇信號,可以確定選擇器輸出 為-1 ;加法器1052 將第一選擇器1051的輸出與除法器的商進(jìn)行相加運算,所得結(jié)果輸 出給第二選擇器1053,在此例中,即對q[5:0] = 111101 (-3)加上-1,得到q_carry [5:0] =111100 (-4);第二選擇器1053 對來自加法器1052的輸出結(jié)果,與除法器的商,通過來自不進(jìn) 位判決單元102的指示信號選擇,得到最終除法器的商(如果不進(jìn)位判決單元的輸出為1, 則選擇除法器的商作為最終除法器的商,否則,選擇加法器的結(jié)果作為最終除法器的商), 在此例中,即利用no_carry信號對q_carry [5:0]和q[5:0]進(jìn)行選擇,由于no_carry信號 為0,所以選擇q_carry[5:0]作為最終除法器的商,即最終經(jīng)過四舍五入運算之后的除法 器商為 q—round[5:0] = q—carry [5:0];圖2給出了本發(fā)明中對有符號二進(jìn)制補碼的除法器商進(jìn)行處理的工作原理圖,如 圖2所示,包括以下步驟步驟201,判斷除法器的商是否為其位寬所能表示的最大正數(shù)或最小負(fù)數(shù),如果 是,則執(zhí)行步驟202,否則,執(zhí)行步驟203。本步驟中,如果除法器商的最高位為0,并且除了最高位以外的其余各位均為1, 則除法器的商為其位寬所能表示的最大正數(shù);如果除法器商的最高位為1,并且除了最高 位以外的其余各位均為0,則除法器的商為其位寬所能表示的最大負(fù)數(shù)。例如,1000(-8)為 4比特有符號二進(jìn)制所能表示的最小負(fù)數(shù),0111 (7)為4比特有符號二進(jìn)制所能表示的最大 正數(shù)。步驟202,不對除法器的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除法器的商;
步驟203,將余數(shù)絕對值與除數(shù)絕對值進(jìn)行比較如果余數(shù)絕對值小于除數(shù)絕對 值的一半,則執(zhí)行步驟204,否則,執(zhí)行步驟205。本步驟中,將余數(shù)絕對值與除數(shù)絕對值進(jìn)行比較的方法為首先分別判斷余數(shù)和 除數(shù)的符號,如果相應(yīng)的符號位為0,則將相應(yīng)的余數(shù)或除數(shù)的值作為其絕對值;如果相應(yīng) 的符號位為1,則將相應(yīng)的余數(shù)或除數(shù)的每一位先取反,再加上1,從而得到相應(yīng)的余數(shù)絕 對值或除數(shù)絕對值。然后在余數(shù)絕對值的最低位補上一個比特0(等效于將余數(shù)絕對值 乘以2),并將此值與除數(shù)絕對值進(jìn)行比較,如果此值大于或等于除數(shù)絕對值,則表明余數(shù) 絕對值大于或等于除數(shù)絕對值的一半,否則,表明余數(shù)絕對值小于除數(shù)絕對值的一半。例 如,如果除數(shù)為10101 (-11),余數(shù)為00101 (5),則首先將除數(shù)和余數(shù)變成其絕對值,分別為 01011(11)和00101 (5),然后將余數(shù)最低位補0,得到001010 (10),將這個數(shù)與除數(shù)絕對值 01011比較,得到這個數(shù)小于除數(shù)絕對值,從而表明余數(shù)絕對值小于除數(shù)絕對值的一半。步驟204,不對除法器的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除法器的商;步驟205,對被除數(shù)與除數(shù)的符號進(jìn)行判斷如果被除數(shù)與除數(shù)符號不相同,則執(zhí) 行步驟206,否則執(zhí)行步驟205。本步驟中,判斷被除數(shù)與除數(shù)的符號是否相同,即將被除數(shù)和除數(shù)的最高位進(jìn)行 判斷,如果被除數(shù)的最高位為1并且除數(shù)的最高位為0,或被除數(shù)的最高位為0并且除數(shù)的 最高位為1,則表明被除數(shù)和除數(shù)的符號不相同,如果被除數(shù)和除數(shù)的最高位均為0或均為 1,則表明被除數(shù)和除數(shù)的符號相同,次判斷可以通過對被除數(shù)和除數(shù)的最高位進(jìn)行異或來 實現(xiàn)。步驟206,對除法器的商進(jìn)行負(fù)向進(jìn)位,即將除法器的商進(jìn)行減1的運算。例如除 法器的商為10110(-10),進(jìn)行減1運算以后得到10101 (-11)作為最終除法器的商。步驟207,對除法器的商進(jìn)行正向進(jìn)位,即將除法器的商進(jìn)行加1的運算。例如除 法器的商為01010(10),進(jìn)行加1運算以后得到01011(11)作為最終除法器的商。圖3為本發(fā)明中對無符號除法器商進(jìn)行處理的裝置的結(jié)構(gòu)示意圖,如圖3所示,包 括比較單元301,不進(jìn)位判決單元302,商運算結(jié)果輸出單元303。下面結(jié)合一個例子,詳細(xì) 描述各個單元的運算過程。假設(shè)被除數(shù)為a_uns[5:0] = 101110 (46),除數(shù)為 b_uns [2 0] = 110 (6),則通過 IP 核除法器運算,得到商為 q_uns [5:0] = 000111 (7),余數(shù)為 rem_uns [2:0] = 100(4)。各 個單元的功能結(jié)構(gòu)描述如下比較單元301 通過對余數(shù)和除數(shù)進(jìn)行比較,將比較的結(jié)果指示信號分別輸出到 不進(jìn)位判決單元302,商運算結(jié)果輸出單元303。所述比較單元301為大于等于比較器。將余數(shù)和除數(shù)進(jìn)行比較,所得比較結(jié)果輸 出給不進(jìn)位判決單元和商運算結(jié)果輸出單元,在此例中,即對rem_ims[2:0] = 100(4)和 b_uns[2:0] = 110(6)進(jìn)行比較,首先將rem_uns [2 0]低位擴(kuò)展一比特0,得到rem_uns_ ex [3:0] = 1000(8),然后將這個值與 b_uns [2:0]進(jìn)行比較,得到 rem_uns_ex [3 0] > b_ uns [2:0],從而得到比較器的結(jié)果為COmp_unS = 1。不進(jìn)位判決單元302 通過對除法器的商進(jìn)行最大數(shù)的判斷,并結(jié)合來比較單元 301輸出的指示信號,輸出不進(jìn)位指示信號到商運算結(jié)果輸出單元303。所述不進(jìn)位判決單元302包括非門3021,與門3022和或門3023。分別說明如下
非門3021,對來自比較單元的輸出進(jìn)行取反運算,將結(jié)果輸出給或門3023,在此 例中,即對comp_uns進(jìn)行取反運算,得到取反的結(jié)果為comp_uns_rev = 0 ;與門3022,將除法器的商所有位逐一進(jìn)行與操作,所得結(jié)果輸出給或門3023,在 此例中,即對q_unS[5:0]所有為進(jìn)行與操作,得到最終的與結(jié)果q_imS_maX = 0 ;或門3023,對來自非門3021和與門3022的結(jié)果,進(jìn)行或操作,將得到的不進(jìn)位指 示信號輸出給商運算結(jié)果輸出單元303,在此例中,即對COmp_uns_rev*q_uns_maX進(jìn)行或 操作,得到不進(jìn)位指示信號n0_carry_uns = 0。商運算結(jié)果輸出單元303 通過對來自不進(jìn)位判決單元302和比較單元301的指 示信號進(jìn)行判斷,并利用輸入的除法器商,輸出經(jīng)過四舍五入運算的最終除法器的商。所述商運算結(jié)果輸出單元303包括加法器3031和選擇器3032。分別說明如下加法器3031 將來自比較單元301的輸出與IP核除法器的商進(jìn)行相加運算,所得 結(jié)果輸出給選擇器3032,在此例中,即對q_ims[5:0]與COmp_ims進(jìn)行相加的運算,得到相 加之后的值 q_add_uns[5:0] = 001000(8);選擇器3032 對來自加法器3031的輸出結(jié)果,與除法器的商,通過來自不進(jìn)位判 決單元302的指示信號選擇,得到最終除法器的商(如果不進(jìn)位判決單元302的指示信號 為1,選擇除法器的商作為最終除法器的商,否則,選擇加法器3031的輸出結(jié)果作為最終除 法器的商),在此例中,由于不進(jìn)位判決單元302的指示信號n0_Carry_Uns = 0,所以選擇 加法器3031的輸出結(jié)果作為最終除法器的商。圖4為本發(fā)明中對無符號除法器商進(jìn)行處理的工作原理圖,如圖4所示,包括以下 步驟步驟401,判斷除法器的商是否為其位寬所能表示的最大數(shù),如果是,則執(zhí)行步驟 402,否則執(zhí)行步驟403。本步驟中,如果除法器商各位均為1,則除法器的商為其位寬所能表示的最大數(shù)。 例如,1111 (15)為4比特?zé)o符號二進(jìn)制所能表示的最大數(shù)。步驟402,不對除法器的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除法器的商;步驟403,將余數(shù)與除數(shù)的一半進(jìn)行比較如果余數(shù)小于除數(shù)的一半,則執(zhí)行步驟 403,否則執(zhí)行步驟405。本步驟中,將余數(shù)與除數(shù)的一半進(jìn)行比較的方法為首在余數(shù)的最低為補上一個 比特0,即將余數(shù)乘以2,并將此值與除數(shù)進(jìn)行比較,如果此值大于或等于除數(shù),則表明余數(shù) 大于或等于除數(shù)的一半,否則,表明余數(shù)小于除數(shù)的一半。例如,如果除數(shù)為1011 (11),余數(shù) 為110 (6),首先將余數(shù)最低位補0,得到1100(12),將這個數(shù)與除數(shù)比較,得到這個數(shù)大于 除數(shù),表明余數(shù)絕對值大于除數(shù)絕對值的一半。步驟404,不對除法器的商進(jìn)行進(jìn)位操作,將除法器的商作為最終除法器的商;步驟405,對除法器的商進(jìn)行進(jìn)位,即將除法器的商進(jìn)行加1的運算。例如除法器 的商為1010(10),進(jìn)行加1運算以后得到1011(11)作為最終除法器的商。以上提供的僅為本發(fā)明的較佳實施例,并非用于限定本發(fā)明的保護(hù)范圍。凡在本 發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范 圍之內(nèi)。
權(quán)利要求
一種集成電路中對有符號二進(jìn)制補碼的除法器的商進(jìn)行處理的裝置,其特征在于,包括絕對值比較單元,不進(jìn)位判決單元,正向進(jìn)位判決單元,負(fù)向進(jìn)位判決單元,商運算結(jié)果輸出單元;其中絕對值比較單元通過分別判斷余數(shù)和除數(shù)的符號位,實現(xiàn)余數(shù)絕對值和除數(shù)絕對值運算,并對余數(shù)和除數(shù)的絕對值進(jìn)行比較,將比較的結(jié)果指示信號分別輸出到不進(jìn)位判決單元,正向進(jìn)位判決單元和負(fù)向進(jìn)位判決單元;不進(jìn)位判決單元通過對來自IP核除法器的商進(jìn)行最大正數(shù)與最小負(fù)數(shù)的判斷,并結(jié)合來自絕對值比較單元輸出的指示信號,輸出不進(jìn)位指示信號到商運算結(jié)果輸出單元;正向進(jìn)位判決單元判斷被除數(shù)與除數(shù)的符號的差異,并將判斷的指示信號輸出到負(fù)向進(jìn)位判決單元,并結(jié)合絕對值比較單元的輸出指示信號,輸出正向進(jìn)位指示信號到商運算結(jié)果輸出單元;負(fù)向進(jìn)位判決單元的功能為根據(jù)來自正向判決單元的判斷被除數(shù)和除數(shù)符號差異的指示信號和絕對值比較單元的輸出指示信號,輸出負(fù)向進(jìn)位指示信號到商運算結(jié)果輸出單元;商運算結(jié)果輸出單元通過對來自不進(jìn)位判決單元,正向進(jìn)位判決單元與負(fù)向進(jìn)位判決單元的指示信號進(jìn)行判斷,并利用輸入的除法器的商,輸出經(jīng)過四舍五入運算的最終除法器的商。
2.一種集成電路中對無符號除法器的商進(jìn)行處理的裝置,其特征在于,包括比較單元, 不進(jìn)位判決單元,商運算結(jié)果輸出單元。比較單元通過對余數(shù)和除數(shù)進(jìn)行比較,將比較的結(jié)果指示信號分別輸出到不進(jìn)位判決 單元,進(jìn)位判決單元;不進(jìn)位判決單元通過對來自IP核除法器的商進(jìn)行最大數(shù)的判斷,并結(jié)合來自比較單 元輸出的指示信號,輸出不進(jìn)位指示信號到商運算結(jié)果輸出單元。商運算結(jié)果輸出單元通過對來自不進(jìn)位判決單元和比較單元的指示信號進(jìn)行判斷,并 利用輸入的除法器的商,輸出經(jīng)過四舍五入運算的最終除法器的商。
全文摘要
本發(fā)明提供了一種集成電路中對除法器的商進(jìn)行處理的裝置,在除法器的商和余數(shù)基礎(chǔ)上,對商和余數(shù)的值進(jìn)行進(jìn)一步的判斷,從而實現(xiàn)對除法器的商進(jìn)行四舍五入的運算,以得到更加精確的除法器商。
文檔編號G06F7/535GK101944009SQ20091008870
公開日2011年1月12日 申請日期2009年7月6日 優(yōu)先權(quán)日2009年7月6日
發(fā)明者周惠平, 廖峰, 秦君華, 莫林梅 申請人:北京中電華大電子設(shè)計有限責(zé)任公司