專利名稱:一種集成電路中的數(shù)據(jù)運(yùn)算方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路中的數(shù)據(jù)處理技術(shù),具體涉及一種集成電路中的數(shù)據(jù)運(yùn)算方法及裝置。
背景技術(shù):
在利用集成電路進(jìn)行數(shù)據(jù)處理的過程中,通常需要對(duì)數(shù)據(jù)進(jìn)行截?cái)噙\(yùn)算,即將位寬為n比特(bit)的二進(jìn)制補(bǔ)碼數(shù)據(jù)進(jìn)行右移運(yùn)算。例如,二進(jìn)制補(bǔ)碼數(shù)據(jù)為x,位寬為n比特,右移m位(n>m)后,得到(n-m)比特的二進(jìn)制補(bǔ)碼數(shù)據(jù)y。
目前,實(shí)現(xiàn)截?cái)噙\(yùn)算的方法,主要有以下三種第一種,直接舍棄右移后的低位數(shù)據(jù),即舍棄x的低位m比特?cái)?shù)據(jù),只保留高位的(n-m)比特?cái)?shù)據(jù)。表述公為y[n-m-1:0]=x[n-1:m]。
第二種,效仿原碼進(jìn)行四舍五入。根據(jù)截掉的低位數(shù)據(jù)的最高位是否為1,判斷是否需要對(duì)截?cái)噙\(yùn)算后得到的高位數(shù)據(jù)加1,若截掉的低位數(shù)據(jù)的最高位為1,則截?cái)嗪蟮玫降母呶粩?shù)據(jù)加1,若為0,則直接截掉低位數(shù)據(jù)。表述公式為y[n-m-1:0]=x[n-1:m]+x[m-1]。
第三種,考慮到負(fù)數(shù)的特殊性,只對(duì)正數(shù)有進(jìn)位時(shí)才加1。表述公式為y[n-m-1:0]=x[n-1:m]+~x[n-1]&x[m-1]。
其中,“~”表示非運(yùn)算,“&”表示與運(yùn)算。
然而,通過上述方法進(jìn)行截?cái)噙\(yùn)算會(huì)產(chǎn)生單向的截?cái)嗾`差,在精度要求較高的情況下,如計(jì)量領(lǐng)域,會(huì)造成不必要的精度損失。而且,對(duì)通過模/數(shù)轉(zhuǎn)換得到的二進(jìn)制數(shù)據(jù)進(jìn)行抽取濾波時(shí),截?cái)嗾`差將直接降低該數(shù)據(jù)的信噪比。
而且,一些特殊情況下,會(huì)導(dǎo)致錯(cuò)誤的四舍五入。對(duì)于負(fù)數(shù),當(dāng)截?cái)嗖糠质秦?fù)向的最大值時(shí),會(huì)得出錯(cuò)誤的四舍五入結(jié)果,例如,二進(jìn)制補(bǔ)碼為11010(-6),截掉低2位,進(jìn)位加1后得到錯(cuò)誤的結(jié)果111(-1)。對(duì)于正數(shù),當(dāng)截?cái)嗪蟮臄?shù)據(jù)為正向最大值時(shí),也會(huì)得出錯(cuò)誤的四舍五入結(jié)果,例如,二進(jìn)制補(bǔ)碼為01111010(122),截掉低4位,進(jìn)位加1后得到錯(cuò)誤的結(jié)果1000(-8)。
可見,現(xiàn)有集成電路中的數(shù)據(jù)運(yùn)算方法不能夠保證運(yùn)算的正確性,從而使得集成電路實(shí)現(xiàn)數(shù)據(jù)處理的可靠性不高。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的一個(gè)主要目的在于提供一種集成電路中的數(shù)據(jù)運(yùn)算方法,能夠提高集成電路實(shí)現(xiàn)數(shù)據(jù)處理的可靠性。
本發(fā)明的另一個(gè)主要目的在于提供一種集成電路中的數(shù)據(jù)運(yùn)算裝置,該裝置能夠提高集成電路實(shí)現(xiàn)數(shù)據(jù)處理的可靠性。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種集成電路中的數(shù)據(jù)運(yùn)算方法,包括以下步驟在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正數(shù)時(shí),判斷截?cái)嗪蟮玫降母呶粩?shù)據(jù)是否為正向最大值,如果是,則不接受截去的低位數(shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果;否則,接受截去的低位數(shù)據(jù)的進(jìn)位,將截?cái)嗪蟮玫降母呶粩?shù)據(jù)與進(jìn)位的和作為截?cái)噙\(yùn)算結(jié)果;在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù)時(shí),判斷截去的低位數(shù)據(jù)的最高位為0還是為1,如果為0,則不接受截去的低位數(shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果;如果為1,則判斷截去的低位數(shù)據(jù)除最高位以外的其他位是否全為0,若是,則不接受截去的低位數(shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果,否則接受截去的低位數(shù)據(jù)的進(jìn)位,將截?cái)嗪蟮玫降母呶粩?shù)據(jù)與進(jìn)位的和作為截?cái)噙\(yùn)算結(jié)果。
在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正數(shù)時(shí),所述判斷截?cái)嗪蟮玫降母呶粩?shù)據(jù)是否為正向最大值為對(duì)該高位數(shù)據(jù)除最高位置外的其他位數(shù)據(jù)進(jìn)行與運(yùn)算,如果得到的結(jié)果為1且該高位數(shù)據(jù)的最高位為0,則確定截?cái)嗪蟮玫降母呶粩?shù)據(jù)為正向最大值。
在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正數(shù)時(shí),所述接受截去的低位數(shù)據(jù)的進(jìn)位之前,進(jìn)一步包括若截去的低位數(shù)據(jù)的最高位為1,則確定進(jìn)位為1,若截去的低位數(shù)據(jù)的最高位為0,則確定進(jìn)位為0。
在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù)時(shí),所述判斷截去的低位數(shù)據(jù)的除最高位以外的其他位是否全為0為對(duì)該低位數(shù)據(jù)除最高位以外的其他位數(shù)據(jù)進(jìn)行或運(yùn)算,如果得到的結(jié)果為0,則確定截去的低位數(shù)據(jù)的除最高位以外的其他位全為0;如果得到的結(jié)果為1,則確定截去的低位數(shù)據(jù)的除最高位以外的其他位不全為0。
在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù)時(shí),所述截去的低位數(shù)據(jù)的進(jìn)位為1。
一種集成電路中的數(shù)據(jù)運(yùn)算裝置,該裝置包括截?cái)噙\(yùn)算單元、正負(fù)數(shù)判斷單元、正數(shù)進(jìn)位判決單元、負(fù)數(shù)進(jìn)位判決單元和截?cái)噙\(yùn)算結(jié)果輸出單元;截?cái)噙\(yùn)算單元,截取輸入的二進(jìn)制補(bǔ)碼數(shù)據(jù)的高位數(shù)據(jù);正負(fù)數(shù)判斷單元,輸入二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位,并根據(jù)所述符號(hào)位判斷所述二進(jìn)制補(bǔ)碼數(shù)據(jù)是正數(shù)還是負(fù)數(shù),且當(dāng)為正數(shù)時(shí),啟動(dòng)所述正數(shù)進(jìn)位判決單元,否則啟動(dòng)所述負(fù)數(shù)進(jìn)位判決單元;正數(shù)進(jìn)位判決單元,輸入所述高位數(shù)據(jù),判斷所述高位數(shù)據(jù)是否為正向最大值,并在所述高位數(shù)據(jù)不為正向最大值時(shí),向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào);負(fù)數(shù)進(jìn)位判決單元,輸入所述二進(jìn)制補(bǔ)碼數(shù)據(jù)的被截取高位數(shù)據(jù)后剩下的低位數(shù)據(jù),判斷所述低位數(shù)據(jù)的最高位是否為1,并且所述低位數(shù)據(jù)的除最高位以外的其它位數(shù)據(jù)是否不全為0,是則向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào);截?cái)噙\(yùn)算結(jié)果輸出單元,根據(jù)接收到的由截?cái)噙\(yùn)算單元輸入的高位數(shù)據(jù)、以及來自所述正數(shù)進(jìn)位判決單元或負(fù)數(shù)進(jìn)位判決單元輸出的進(jìn)位信號(hào),獲得并輸出截?cái)噙\(yùn)算的最后結(jié)果。
所述正數(shù)進(jìn)位判決單元可以進(jìn)一步輸入所述二進(jìn)制補(bǔ)碼數(shù)據(jù)的被截取高位數(shù)據(jù)后剩下的低位數(shù)據(jù)的最高位,并在其向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào)時(shí),將所述最高位作為進(jìn)位信號(hào)輸出。
所述負(fù)數(shù)進(jìn)位判決單元可以進(jìn)一步輸入所述二進(jìn)制補(bǔ)碼數(shù)據(jù)的被截取高位數(shù)據(jù)后剩下的低位數(shù)據(jù)的最高位,并在其向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào)時(shí),將所述最高位作為進(jìn)位信號(hào)輸出。
所述正負(fù)數(shù)判斷單元在輸入的二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位為0時(shí),判斷所述二進(jìn)制補(bǔ)碼數(shù)據(jù)是正數(shù),則對(duì)所述符號(hào)位取反后,作為啟動(dòng)信號(hào)輸出給所述正數(shù)進(jìn)位判決單元;在所述符號(hào)位為1時(shí),判斷二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù),則將該符號(hào)位直接作為啟動(dòng)信號(hào),輸出給所述負(fù)數(shù)進(jìn)位判決單元。
所述正數(shù)進(jìn)位判決單元可以包括第一與門、非門和第二與門;第一與門,對(duì)二進(jìn)制補(bǔ)碼數(shù)據(jù)截?cái)嗪蟮玫降母呶粩?shù)據(jù)除去符號(hào)位外的其余各個(gè)位進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果輸出給非門;非門,對(duì)來自與門的運(yùn)算結(jié)果取反,并將取反結(jié)果輸出給第二與門;第二與門,對(duì)來自正負(fù)數(shù)判斷單元的取反結(jié)果、來自非門的取反結(jié)果和截去的低位數(shù)據(jù)的最高位進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果作為進(jìn)位信號(hào),輸出給截?cái)噙\(yùn)算結(jié)果輸出單元。
所述負(fù)數(shù)進(jìn)位判決單元可以包括或門和與門;或門,對(duì)截去的低位數(shù)據(jù)中除最高位外的其余各個(gè)位進(jìn)行或運(yùn)算,并將結(jié)果輸出給與門;與門,對(duì)來自正負(fù)數(shù)判斷單元的二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位、截去的低位數(shù)據(jù)的最高位以及或門輸出的運(yùn)算結(jié)果,進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果作為進(jìn)位信號(hào)輸出給截?cái)噙\(yùn)算結(jié)果輸出單元。
所述截?cái)噙\(yùn)算結(jié)果輸出單元可以包括第一加法器和第二加法器;第一加法器,對(duì)來自截?cái)噙\(yùn)算單元的高位數(shù)據(jù)和來自第一與門的運(yùn)算結(jié)果進(jìn)行加法運(yùn)算,并將加法運(yùn)算的結(jié)果,輸出給第二加法器;第二加法器,對(duì)來自第一加法器的運(yùn)算結(jié)果和來自第三與門的運(yùn)算結(jié)果進(jìn)行加法運(yùn)算,得到截?cái)噙\(yùn)算的最后結(jié)果。
由本發(fā)明的技術(shù)方案可見,本發(fā)明提供的集成電路中的數(shù)據(jù)運(yùn)算方案,在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正時(shí),判斷其截?cái)嗪蟮玫降母呶粩?shù)據(jù)是否為正向最大值,然后根據(jù)數(shù)據(jù)符號(hào)和判斷結(jié)果進(jìn)行截?cái)噙\(yùn)算。在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)時(shí),先判斷截去的低位數(shù)據(jù)的最高位為0還是為1,如果為1則判斷截去的低位數(shù)據(jù)除最高位以外的其他位是否全為0;然后根據(jù)判斷結(jié)果進(jìn)行截?cái)噙\(yùn)算。本發(fā)明集成電路中的數(shù)據(jù)運(yùn)算方法及裝置保證了運(yùn)算過程中四舍五入的正確性,提高了集成電路中的數(shù)據(jù)運(yùn)算的正確性,從而提高了集成電路實(shí)現(xiàn)數(shù)據(jù)處理的可靠性。
圖1為本發(fā)明集成電路中的數(shù)據(jù)運(yùn)算方法的流程圖;圖2為本發(fā)明集成電路中的數(shù)據(jù)運(yùn)算裝置一個(gè)較佳實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
圖1為本發(fā)明集成電路中的數(shù)據(jù)運(yùn)算方法的流程圖,如圖1所示,包括以下步驟步驟101,判斷二進(jìn)制補(bǔ)碼數(shù)據(jù)是正數(shù)還是負(fù)數(shù),若是正數(shù),則執(zhí)行步驟102,若是負(fù)數(shù),則執(zhí)行步驟105。
本步驟中,如果二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位為0,則確定該數(shù)據(jù)為正數(shù);如果二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位為1,則確定該數(shù)據(jù)為負(fù)數(shù)。
步驟102,判斷截?cái)嗪蟮玫降母呶粩?shù)據(jù)是否為正向最大值,若是,則執(zhí)行步驟103,否則執(zhí)行步驟104。
本實(shí)施例中,對(duì)具有符號(hào)位的n比特的二進(jìn)制數(shù)來說,其正向最大值是指2n-1。判斷正向最大值的方法可以為對(duì)該高位數(shù)據(jù)除最高位置外的其他位數(shù)據(jù)進(jìn)行與運(yùn)算,如果得到的結(jié)果為1且該高位數(shù)據(jù)的最高位為0,則確定截?cái)嗪蟮玫降母呶粩?shù)據(jù)為正向最大值。
步驟103,直接舍棄低位的截?cái)嗖糠?,不接受低位?shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果,并結(jié)束本流程。
截?cái)嗪蟮玫降母呶粩?shù)據(jù)為正向最大值,如果此時(shí)再接受低位數(shù)據(jù)的進(jìn)位,則會(huì)產(chǎn)生溢出,得到錯(cuò)誤的運(yùn)算結(jié)果。因此,本步驟中,直接舍棄截去的低位數(shù)據(jù)。
步驟104,接受低位數(shù)據(jù)的進(jìn)位,求截?cái)嗪蟮玫降母呶粩?shù)據(jù)與進(jìn)位的和,將得到的和作為截?cái)噙\(yùn)算結(jié)果,并結(jié)束本流程。
本步驟之前,若截去的低位數(shù)據(jù)的最高位為1,則確定進(jìn)位為1,若截去的低位數(shù)據(jù)的最高位為0,則確定進(jìn)位為0。
步驟105,判斷截去的低位數(shù)據(jù)的最高位為0還是為1,如果是0,則執(zhí)行步驟106,如果是1,則執(zhí)行步驟107。
步驟106,直接舍棄低位的截?cái)嗖糠?,不接受截去的低位?shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果,并結(jié)束本流程。
本步驟中,截?cái)嗪蟮玫降母呶粩?shù)據(jù)不接受截去的低位數(shù)據(jù)的進(jìn)位,該負(fù)數(shù)的絕對(duì)值增加,即進(jìn)行了“五入”的運(yùn)算。例如,一個(gè)負(fù)數(shù)的二進(jìn)制補(bǔ)碼為1100010(-30),截掉低3位010,此時(shí),截掉數(shù)據(jù)的最高位為0,則直接舍棄低位的截?cái)嗖糠郑詈蟮慕財(cái)噙\(yùn)算結(jié)果為1100(-4)。
步驟107,判斷截去的低位數(shù)據(jù)除最高位以外的其他位是否全為0,若是,則執(zhí)行108,否則,執(zhí)行109。
判斷截去的低位數(shù)據(jù)除最高位以外的其他位是否全為0的方法可以為對(duì)該低位數(shù)據(jù)除最高位以外的其他位數(shù)據(jù)進(jìn)行或運(yùn)算,如果得到的結(jié)果為0且該低位數(shù)據(jù)的最高位為1,則確定截去的低位數(shù)據(jù)的除最高位以外的其他位全為0;如果得到的結(jié)果為1,則確定截去的低位數(shù)據(jù)的除最高位以外的其他位不全為0。
步驟108,直接舍棄低位的截?cái)嗖糠郑唤邮芙厝サ牡臀粩?shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果,并結(jié)束本流程。
本步驟中,截?cái)嗪蟮玫降母呶粩?shù)據(jù)不接受截去的低位數(shù)據(jù)的進(jìn)位,該負(fù)數(shù)的絕對(duì)值增加,即對(duì)其進(jìn)行了“五入”的運(yùn)算。例如,一個(gè)負(fù)數(shù)的二進(jìn)制補(bǔ)碼為1100100(-28),截掉低3位100,此時(shí),截去的低位數(shù)據(jù)的最高位為1,且截去的低位數(shù)據(jù)除最高位以外的其他位全為0,則直接舍棄低位的截?cái)嗖糠郑詈蟮慕財(cái)噙\(yùn)算結(jié)果為1100(-4)。
步驟109,接受截去的低位數(shù)據(jù)的進(jìn)位,將截?cái)嗪蟮玫降母呶粩?shù)據(jù)與進(jìn)位的和作為截?cái)噙\(yùn)算結(jié)果,并結(jié)束本流程。
本步驟中,截?cái)嗪蟮玫降母呶粩?shù)據(jù)接受截去的低位數(shù)據(jù)的進(jìn)位,該負(fù)數(shù)的絕對(duì)值減小,即對(duì)其進(jìn)行了“四舍”的運(yùn)算。例如,一個(gè)負(fù)數(shù)的二進(jìn)制補(bǔ)碼為1100110(-26),截掉低3位110,此時(shí),截去的低位數(shù)據(jù)的最高位為1,且截去的低位數(shù)據(jù)除最高位以外的其他位不全為0,則截?cái)嗪蟮玫降母呶粩?shù)據(jù)接受低位數(shù)據(jù)的進(jìn)位,最后的截?cái)噙\(yùn)算結(jié)果為1101(-3)。
上述流程也可以表示為邏輯關(guān)系表達(dá)式。
設(shè)需截?cái)噙\(yùn)算的補(bǔ)碼為x,位寬為n比特,將其右移m位(n>m)后,得到(n-m)比特的數(shù)據(jù)y,與如圖1所示的方法對(duì)應(yīng)的邏輯關(guān)系表達(dá)式可以為y[n-m-1:0]=x[n-1:m]+(~x[n-1]&x[m-1]&~(&x[n-2:m]))+(x[n-1]&x[m-1]&(|x[m-2:0]))其中,“~”表示非運(yùn)算,“&”表示與運(yùn)算,“|”則表示或運(yùn)算。
基于上述邏輯關(guān)系表達(dá)式,本實(shí)施例中的集成電路中的數(shù)據(jù)運(yùn)算方法可以通過各種邏輯電路來實(shí)現(xiàn)。
參見圖2,為本發(fā)明集成電路中的數(shù)據(jù)運(yùn)算裝置一個(gè)較佳實(shí)施例的結(jié)構(gòu)示意圖。該裝置包括截?cái)噙\(yùn)算單元201、正負(fù)數(shù)判斷單元202、正數(shù)進(jìn)位判決單元、負(fù)數(shù)進(jìn)位判決單元和截?cái)噙\(yùn)算結(jié)果輸出單元。
同樣,此實(shí)施例中,設(shè)需進(jìn)行截?cái)噙\(yùn)算的補(bǔ)碼為x,位寬為n比特,將其右移m位(n>m)后,得到(n-m)比特的二進(jìn)制補(bǔ)碼數(shù)據(jù)y。
截?cái)噙\(yùn)算單元201,截取輸入的二進(jìn)制補(bǔ)碼數(shù)據(jù)x的高位數(shù)據(jù),即x[n-1:m],并將其輸出給截?cái)噙\(yùn)算結(jié)果輸出單元。
正負(fù)數(shù)判斷單元202,輸入二進(jìn)制補(bǔ)碼數(shù)據(jù)x的符號(hào)位,并根據(jù)符號(hào)位判斷二進(jìn)制補(bǔ)碼數(shù)據(jù)是正數(shù)還是負(fù)數(shù),且當(dāng)為正數(shù)時(shí),啟動(dòng)正數(shù)進(jìn)位判決單元,否則啟動(dòng)負(fù)數(shù)進(jìn)位判決單元。
當(dāng)輸入的符號(hào)位為0時(shí),判斷二進(jìn)制補(bǔ)碼數(shù)據(jù)x是正數(shù),則對(duì)符號(hào)位取反后,作為啟動(dòng)信號(hào)輸出給正數(shù)進(jìn)位判決單元;在符號(hào)位為1時(shí),判斷二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù),則將該符號(hào)位直接作為啟動(dòng)信號(hào),輸出給所述負(fù)數(shù)進(jìn)位判決單元。
正數(shù)進(jìn)位判決單元,輸入二進(jìn)制補(bǔ)碼數(shù)據(jù)x的高位數(shù)據(jù)、截去的低位數(shù)據(jù)的最高位,判斷高位數(shù)據(jù)是否為正向最大值,并在高位數(shù)據(jù)不為正向最大值時(shí),向截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào),所述進(jìn)位信號(hào)為截去的低位數(shù)據(jù)的最高位。
負(fù)數(shù)進(jìn)位判決單元,輸入截去的低位數(shù)據(jù),判斷截去的低位數(shù)據(jù)的最高位是否為1,并且低位數(shù)據(jù)的除最高位以外的其它位數(shù)據(jù)是否不全為0,是則向截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào),所述進(jìn)位信號(hào)為截去的低位數(shù)據(jù)的最高位。
截?cái)噙\(yùn)算結(jié)果輸出單元,根據(jù)接收到的由截?cái)噙\(yùn)算單元201輸入的高位數(shù)據(jù)、以及來自所述正數(shù)進(jìn)位判決單元或負(fù)數(shù)進(jìn)位判決單元輸出的進(jìn)位信號(hào),獲得并輸出截?cái)噙\(yùn)算的最后結(jié)果。
正負(fù)數(shù)判斷單元202可以為非門,二進(jìn)制補(bǔ)碼數(shù)據(jù)x的符號(hào)位進(jìn)入正負(fù)數(shù)判斷單元202后,分為兩路,一路輸入與門207,一路輸入所述非門,所述非門對(duì)符號(hào)位取反后輸入第二與門205。符號(hào)位,即邏輯表達(dá)式中的x[n-1]。對(duì)符號(hào)位取反,即邏輯表達(dá)式中的~x[n-1]。
所述的正數(shù)進(jìn)位判決單元可以包括第一與門203、非門204和第二與門205。所述的負(fù)數(shù)進(jìn)位判決單元可以包括或門206和與門207。所述的截?cái)噙\(yùn)算結(jié)果輸出單元包括可以第一加法器208和第二加法器209。
第一與門203,對(duì)二進(jìn)制補(bǔ)碼數(shù)據(jù)x截?cái)嗪蟮玫降母呶粩?shù)據(jù)除去符號(hào)位外的其余各個(gè)位進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果,即&x[n-2:m]),輸出給非門204。
非門204,對(duì)來自第一與門203的運(yùn)算結(jié)果&x[n-2:m])取反,并將取反結(jié)果,即~(&x[n-2:m]),輸出給第二與門205。
第二與門205,對(duì)來自正負(fù)數(shù)判斷單元202的取反結(jié)果~x[n-1]、來自非門204的取反結(jié)果~(&x[n-2:m])和截去的低位數(shù)據(jù)的最高位x[m-1]進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果,即~x[n-1]&x[m-1]&~(&x[n-2:m])作為進(jìn)位信號(hào),輸出給截?cái)噙\(yùn)算結(jié)果輸出單元。
或門206,對(duì)截去的低位數(shù)據(jù)中除最高位外的其余各個(gè)位進(jìn)行或運(yùn)算,并將結(jié)果,即&(|x[m-2:0]),輸出給與門207。
與門207,對(duì)來自正負(fù)數(shù)判斷單元202的二進(jìn)制補(bǔ)碼數(shù)據(jù)x的符號(hào)位x[n-1]、截去的低位數(shù)據(jù)的最高位x[m-1]以及或門206輸出的運(yùn)算結(jié)果&(|x[m-2:0]),進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果,即x[n-1]&x[m-1]&(|x[m-2:0])作為進(jìn)位信號(hào),輸出給截?cái)噙\(yùn)算結(jié)果輸出單元。
第一加法器208,對(duì)截?cái)噙\(yùn)算單元201輸出的高位數(shù)據(jù)x[n-1:m]和來自第二與門205的運(yùn)算結(jié)果進(jìn)行加法運(yùn)算,并將運(yùn)算結(jié)果,即x[n-1:m]+(~x[n-1]&x[m-1]&~(&x[n-2:m])),輸出給第二加法器209。
第二加法器209,對(duì)來自第一加法器208的運(yùn)算結(jié)果x[n-1:m]+(~x[n-1]&x[m-1]&~(&x[n-2:m]))和來自與門207的運(yùn)算結(jié)果x[n-1]&x[m-1]&(|x[m-2:0])進(jìn)行加法運(yùn)算,得到截?cái)噙\(yùn)算的最后結(jié)果,即x[n-1:m]+(~x[n-1]&x[m-1]&~(&x[n-2:m]))+(x[n-1]&x[m-1]&(|x[m-2:0]))。
其中,第一與門203和非門204可用一個(gè)與非門代替,對(duì)截?cái)嗪蟮母呶粩?shù)據(jù)除掉最高位的其余各個(gè)位進(jìn)行與非運(yùn)算后,將結(jié)果輸出給第二與門205;第一加法器208和第二加法器209可用一個(gè)三位加法器代替。圖2只是本發(fā)明實(shí)施例中的一個(gè)較佳實(shí)施例而已,基于本發(fā)明實(shí)施例中的運(yùn)算方法和邏輯表達(dá)式,可有多種實(shí)現(xiàn)電路,這里不再一一列舉。例如,直接將邏輯表達(dá)式輸入到可編程邏輯器件中,即可實(shí)現(xiàn)多種電路結(jié)構(gòu),均能夠?qū)崿F(xiàn)本發(fā)明的運(yùn)算方法。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種集成電路中的數(shù)據(jù)運(yùn)算方法,其特征在于,包括以下步驟在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正數(shù)時(shí),判斷截?cái)嗪蟮玫降母呶粩?shù)據(jù)是否為正向最大值,如果是,則不接受截去的低位數(shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果;否則,接受截去的低位數(shù)據(jù)的進(jìn)位,將截?cái)嗪蟮玫降母呶粩?shù)據(jù)與進(jìn)位的和作為截?cái)噙\(yùn)算結(jié)果;在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù)時(shí),判斷截去的低位數(shù)據(jù)的最高位為0還是為1,如果為0,則不接受截去的低位數(shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果;如果為1,則判斷截去的低位數(shù)據(jù)除最高位以外的其他位是否全為0,若是,則不接受截去的低位數(shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果,否則接受截去的低位數(shù)據(jù)的進(jìn)位,將截?cái)嗪蟮玫降母呶粩?shù)據(jù)與進(jìn)位的和作為截?cái)噙\(yùn)算結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正數(shù)時(shí),所述判斷截?cái)嗪蟮玫降母呶粩?shù)據(jù)是否為正向最大值為對(duì)該高位數(shù)據(jù)除最高位置外的其他位數(shù)據(jù)進(jìn)行與運(yùn)算,如果得到的結(jié)果為1且該高位數(shù)據(jù)的最高位為0,則確定截?cái)嗪蟮玫降母呶粩?shù)據(jù)為正向最大值。
3.如權(quán)利要求1所述的方法,其特征在于,在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正數(shù)時(shí),所述接受截去的低位數(shù)據(jù)的進(jìn)位之前,進(jìn)一步包括若截去的低位數(shù)據(jù)的最高位為1,則確定進(jìn)位為1,若截去的低位數(shù)據(jù)的最高位為0,則確定進(jìn)位為0。
4.如權(quán)利要求1所述的方法,其特征在于,在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù)時(shí),所述判斷截去的低位數(shù)據(jù)的除最高位以外的其他位是否全為0為對(duì)該低位數(shù)據(jù)除最高位以外的其他位數(shù)據(jù)進(jìn)行或運(yùn)算,如果得到的結(jié)果為0,則確定截去的低位數(shù)據(jù)的除最高位以外的其他位全為0;如果得到的結(jié)果為1,則確定截去的低位數(shù)據(jù)的除最高位以外的其他位不全為0。
5.如權(quán)利要求1所述的方法,其特征在于,在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù)時(shí),所述截去的低位數(shù)據(jù)的進(jìn)位為1。
6.一種集成電路中的數(shù)據(jù)運(yùn)算裝置,其特征在于,包括截?cái)噙\(yùn)算單元、正負(fù)數(shù)判斷單元、正數(shù)進(jìn)位判決單元、負(fù)數(shù)進(jìn)位判決單元和截?cái)噙\(yùn)算結(jié)果輸出單元;截?cái)噙\(yùn)算單元,截取輸入的二進(jìn)制補(bǔ)碼數(shù)據(jù)的高位數(shù)據(jù);正負(fù)數(shù)判斷單元,輸入二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位,并根據(jù)所述符號(hào)位判斷所述二進(jìn)制補(bǔ)碼數(shù)據(jù)是正數(shù)還是負(fù)數(shù),且當(dāng)為正數(shù)時(shí),啟動(dòng)所述正數(shù)進(jìn)位判決單元,否則啟動(dòng)所述負(fù)數(shù)進(jìn)位判決單元;正數(shù)進(jìn)位判決單元,輸入所述高位數(shù)據(jù),判斷所述高位數(shù)據(jù)是否為正向最大值,并在所述高位數(shù)據(jù)不為正向最大值時(shí),向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào);負(fù)數(shù)進(jìn)位判決單元,輸入所述二進(jìn)制補(bǔ)碼數(shù)據(jù)的被截取高位數(shù)據(jù)后剩下的低位數(shù)據(jù),判斷所述低位數(shù)據(jù)的最高位是否為1,并且所述低位數(shù)據(jù)的除最高位以外的其它位數(shù)據(jù)是否不全為0,是則向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào);截?cái)噙\(yùn)算結(jié)果輸出單元,根據(jù)接收到的由截?cái)噙\(yùn)算單元輸入的高位數(shù)據(jù)、以及來自所述正數(shù)進(jìn)位判決單元或負(fù)數(shù)進(jìn)位判決單元輸出的進(jìn)位信號(hào),獲得并輸出截?cái)噙\(yùn)算的最后結(jié)果。
7.如權(quán)利要求6所述的裝置,其特征在于,所述正數(shù)進(jìn)位判決單元進(jìn)一步輸入所述二進(jìn)制補(bǔ)碼數(shù)據(jù)的被截取高位數(shù)據(jù)后剩下的低位數(shù)據(jù)的最高位,并在其向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào)時(shí),將所述最高位作為進(jìn)位信號(hào)輸出。
8.如權(quán)利要求6所述的裝置,其特征在于所述負(fù)數(shù)進(jìn)位判決單元進(jìn)一步輸入所述二進(jìn)制補(bǔ)碼數(shù)據(jù)的被截取高位數(shù)據(jù)后剩下的低位數(shù)據(jù)的最高位,并在其向所述截?cái)噙\(yùn)算結(jié)果輸出單元輸出進(jìn)位信號(hào)時(shí),將所述最高位作為進(jìn)位信號(hào)輸出。
9.如權(quán)利要求6、7或8所述的裝置,其特征在于所述正負(fù)數(shù)判斷單元在輸入的二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位為0時(shí),判斷所述二進(jìn)制補(bǔ)碼數(shù)據(jù)是正數(shù),則對(duì)所述符號(hào)位取反后,作為啟動(dòng)信號(hào)輸出給所述正數(shù)進(jìn)位判決單元;在所述符號(hào)位為1時(shí),判斷二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù),則將該符號(hào)位直接作為啟動(dòng)信號(hào),輸出給所述負(fù)數(shù)進(jìn)位判決單元。
10.如權(quán)利要求9所述的裝置,其特征在于所述正數(shù)進(jìn)位判決單元包括第一與門、非門和第二與門;第一與門,對(duì)二進(jìn)制補(bǔ)碼數(shù)據(jù)截?cái)嗪蟮玫降母呶粩?shù)據(jù)除去符號(hào)位外的其余各個(gè)位進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果輸出給非門;非門,對(duì)來自與門的運(yùn)算結(jié)果取反,并將取反結(jié)果輸出給第二與門;第二與門,對(duì)來自正負(fù)數(shù)判斷單元的取反結(jié)果、來自非門的取反結(jié)果和截去的低位數(shù)據(jù)的最高位進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果作為進(jìn)位信號(hào),輸出給截?cái)噙\(yùn)算結(jié)果輸出單元。
11.如權(quán)利要求9所述的裝置,其特征在于,所述負(fù)數(shù)進(jìn)位判決單元包括或門和與門;或門,對(duì)截去的低位數(shù)據(jù)中除最高位外的其余各個(gè)位進(jìn)行或運(yùn)算,并將結(jié)果輸出給與門;與門,對(duì)來自正負(fù)數(shù)判斷單元的二進(jìn)制補(bǔ)碼數(shù)據(jù)的符號(hào)位、截去的低位數(shù)據(jù)的最高位以及或門輸出的運(yùn)算結(jié)果,進(jìn)行與運(yùn)算,并將運(yùn)算結(jié)果作為進(jìn)位信號(hào)輸出給截?cái)噙\(yùn)算結(jié)果輸出單元。
12.如權(quán)利要求11所述的裝置,其特征在于,所述截?cái)噙\(yùn)算結(jié)果輸出單元包括第一加法器和第二加法器;第一加法器,對(duì)來自截?cái)噙\(yùn)算單元的高位數(shù)據(jù)和來自第一與門的運(yùn)算結(jié)果進(jìn)行加法運(yùn)算,并將加法運(yùn)算的結(jié)果,輸出給第二加法器;第二加法器,對(duì)來自第一加法器的運(yùn)算結(jié)果和來自第三與門的運(yùn)算結(jié)果進(jìn)行加法運(yùn)算,得到截?cái)噙\(yùn)算的最后結(jié)果。
全文摘要
本發(fā)明公開了一種集成電路中的數(shù)據(jù)運(yùn)算方法,在二進(jìn)制補(bǔ)碼數(shù)據(jù)為正數(shù)時(shí),判斷截?cái)嗪蟮玫降母呶粩?shù)據(jù)是否為正向最大值,根據(jù)數(shù)據(jù)符號(hào)和判斷結(jié)果進(jìn)行截?cái)噙\(yùn)算;在二進(jìn)制補(bǔ)碼數(shù)據(jù)為負(fù)數(shù)時(shí),判斷截去的低位數(shù)據(jù)的最高位為0還是為1,如果為0,則不接受截去的低位數(shù)據(jù)的進(jìn)位,僅將截?cái)嗪蟮玫降母呶粩?shù)據(jù)作為截?cái)噙\(yùn)算結(jié)果;如果為1則判斷截去的低位數(shù)據(jù)除最高位以外的其他位是否全為0;然后根據(jù)判斷結(jié)果進(jìn)行截?cái)噙\(yùn)算。本發(fā)明還公開了一種集成電路中的數(shù)據(jù)運(yùn)算裝置。本發(fā)明的數(shù)據(jù)運(yùn)算方法和裝置保證了運(yùn)算過程中四舍五入的正確性,從而提高了集成電路實(shí)現(xiàn)數(shù)據(jù)處理的可靠性。
文檔編號(hào)G06F7/499GK1975661SQ200610167900
公開日2007年6月6日 申請(qǐng)日期2006年12月20日 優(yōu)先權(quán)日2006年12月20日
發(fā)明者范志軍, 汪源 申請(qǐng)人:北京中星微電子有限公司