本發(fā)明涉及計算機(jī)及電子信息科學(xué)技術(shù)領(lǐng)域,特別涉及處理原碼形式的二進(jìn)制有符號數(shù)的加/減法運算單元的硬件架構(gòu)。
背景技術(shù):
在現(xiàn)代數(shù)字集成電路中,最廣泛使用的數(shù)制是二進(jìn)制。二進(jìn)制數(shù)可分為無符號二進(jìn)制數(shù)和有符號二進(jìn)制數(shù)。有符號二進(jìn)制數(shù)可以用三種不同的形式予以表示,分別為原碼表示法,反碼表示法和補碼表示法。
為了方便進(jìn)行運算,數(shù)字系統(tǒng)中多采用補碼來表示有符號二進(jìn)制數(shù)。然而,在一些特定的場合,比如低密度奇偶校驗碼解碼器和極化碼解碼器中,為了適應(yīng)解碼算法,降低設(shè)計與存儲的復(fù)雜度,解碼過程中所用到的有符號二進(jìn)制數(shù)采經(jīng)常用的是原碼表示法。在進(jìn)行加法或減法運算時,先要將有符號數(shù)的原碼轉(zhuǎn)化為補碼,用補碼進(jìn)行加法或減法運算,得到和或差的補碼形式,再將和或差的補碼轉(zhuǎn)化為原碼形式。有符號數(shù)的原碼與補碼之間的轉(zhuǎn)換方法如下:將原碼按位取反,再加上1即可得補碼;將補碼按位取反,再加上1即可得原碼。兩次不同表示方法之間的轉(zhuǎn)換大大增加了運算電路的功耗、延時以及面積開銷。因此,設(shè)計快速、低功耗和省面積的高效二進(jìn)制原碼加/減法運算單元架構(gòu),對于提升前述采用原碼表示法的數(shù)字系統(tǒng)之性能具有非常重大的意義。
技術(shù)實現(xiàn)要素:
發(fā)明目的:本發(fā)明旨在解決傳統(tǒng)的二進(jìn)制原碼加/減法運算電路因為兩次原碼與補碼之間進(jìn)行轉(zhuǎn)換而引起的功耗大、速度慢、面積開銷大的問題。
為了解決上述技術(shù)問題,本發(fā)明公開了一種新型的快速、低功耗和省面積的二進(jìn)制原碼加/減法運算單元架構(gòu)。
為了便于闡述,定義兩個原碼形式的二進(jìn)制有符號數(shù)a和b,用as、bs分別表示a、b的符號,當(dāng)a、b大于等于0時,as、bs為0;當(dāng)a、b小于0時,as,bs為1。用am、bm分別表示a、b的絕對值大小。c為加/減運算控制信號。定義s為a與b的和/差,用ss和sm分別表示sf的符號與絕對值大小。下文所涉及的所有符號均與此處的定義保持一致。
該架構(gòu)從整體上來看,包含了:
1.一個加法器,其作用是計算am+bm。
2.一個減法器,其作用是計算am-bm。
3.一個比較器,其作用是比較am和bm的大小。
4.一個求補單元,其作用是將減法器的輸出am-bm轉(zhuǎn)換為對應(yīng)的補碼形式,即-(am-bm)。
5.三個數(shù)據(jù)選擇器,分別編號為1、2、3,其中數(shù)據(jù)選擇器1用于在恰當(dāng)?shù)妮斎氲刂废聫臏p法器的輸出和求補單元的輸出中選擇一個;數(shù)據(jù)選擇器2用于在恰當(dāng)?shù)妮斎氲刂废聫募臃ㄆ鞯妮敵龊蛿?shù)據(jù)選擇器1的輸出中選擇一個作為sm;數(shù)據(jù)選擇器3用于在恰當(dāng)?shù)妮斎氲刂废聫腶s和邏輯單元2的輸出中選擇一個作為ss。
6.兩個邏輯單元,分別編號為1、2,其中邏輯單元1根據(jù)as、bs、c的不同組合輸出恰當(dāng)?shù)牡刂沸盘栆钥刂茢?shù)據(jù)選擇器2從兩個輸入中選擇出正確的一個作為sm;邏輯單元2根據(jù)bs、c的不同組合輸出恰當(dāng)?shù)男盘栕鳛閿?shù)據(jù)選擇器3的輸入之一。
本發(fā)明所公開的二進(jìn)制有符號數(shù)原碼加/減運算單元的硬件架構(gòu),同時利用加法器、減法器、比較器和求補單元,接近并行化地計算出am+bm、am-bm、-(am-bm)。因為a與b之和/差的絕對值必為這三者之一,通過a、b兩數(shù)的相對大小,符號as、bs以及加/減控制信號c的不同組合,產(chǎn)生恰當(dāng)?shù)牡刂沸盘栞斎氲綌?shù)據(jù)選擇器,則能正確地選擇出sm和ss。
有益效果:本發(fā)明通過并行化地計算兩數(shù)之和、差以及差的相反數(shù),最后通過數(shù)據(jù)選擇器篩選正確的結(jié)果,避免了傳統(tǒng)的二進(jìn)制原碼加/減法運算單元所需要的兩次原碼與補碼之間的形式轉(zhuǎn)換,大大加快了運算速度,降低了能量消耗,節(jié)約了面積開銷。本發(fā)明在現(xiàn)代收錯碼解碼器中有著廣泛的應(yīng)用前景。
附圖說明
下面結(jié)合附圖和具體實施方式對本發(fā)明做更進(jìn)一步的具體說明,本發(fā)明的上述和/或其他方面的優(yōu)點將會變得更加清楚。
圖1是本發(fā)明的整體架構(gòu)圖。
具體實施方式
下面詳細(xì)地描述本發(fā)明的實施例,所述實施例的示例在附圖1中示出。原碼表示的數(shù)a由兩部分組成,分別為1比特的符號位as和一定比特位寬的絕對值部分am。原碼表示的數(shù)b由兩部分組成,分別為1比特的符號位bs和一定比特位寬的絕對值部分bm。圖1中c為1比特的加/減控制信號,當(dāng)c指示執(zhí)行加法運算時,電路執(zhí)行a+b;當(dāng)c批示執(zhí)行減法運算時,電路執(zhí)行a-b。ss為1比特的a與b的和/差的符號位,sm為a與b的和/差的絕對值部分,其比特位寬可由具體應(yīng)用需求確定。
二進(jìn)制有符號數(shù)在原碼形式下相加的運算法則見表一;二進(jìn)制有符號數(shù)在原碼形式下相減的運算法則見表二。
表一:二進(jìn)制原碼相加的運算法則
表二:二進(jìn)制原碼相減的運算法則
加減控制信號c有兩種狀態(tài),分別為0和1,可以用0表示執(zhí)行加法運算,1表示執(zhí)行減法運算;也可以用1表示執(zhí)行加法運算,0表示執(zhí)行減法運算。無論何種選擇并不影響本發(fā)明的有效性。
圖1中加法器計算出am+bm,減法器計算出am-bm,如果am大于等于bm,則am-bm為正,減法器輸出的結(jié)果恰好為差的絕對值,為原碼形式;如果am小于bm,則am-bm為負(fù),減法器輸出的結(jié)果為差的補碼去除符號位剩余的部分,它再經(jīng)過一個求補單元則可恢復(fù)成原碼的形式,即求補單元計算出-(am-bm)。
本發(fā)明中需要一個比較器來比較am與bm的相對大小。如果am大于等于bm,則數(shù)據(jù)選擇器1選擇減法器的輸出am-bm,否則選擇求補單元的輸出-(am-bm),總之,數(shù)據(jù)選擇器1輸出的一定是|am-bm|。
對于數(shù)據(jù)選擇器2,結(jié)合表一和表二可以總結(jié)出如下規(guī)律:當(dāng)信號c指示執(zhí)行加法運算時,若as與bs相同,則數(shù)據(jù)選擇器2總是選擇加法器的輸出am+bm作為sm;若as與bs不相同,則數(shù)據(jù)選擇器2總是選擇數(shù)據(jù)選擇器1的輸出作為sm。當(dāng)信號c指示執(zhí)行減法運算時,若as與bs不同,則數(shù)據(jù)選擇器2總是選擇加法器的輸出am+bm作為sm,若as與bs相同,則數(shù)據(jù)選擇器2總是選擇數(shù)據(jù)選擇器1的輸出作為sm。根據(jù)as、bs和c的不同組合,由邏輯單元1產(chǎn)生恰當(dāng)?shù)牡刂沸盘栞斎氲綌?shù)據(jù)選擇器2中以進(jìn)行篩選。
對于數(shù)據(jù)選擇器3,結(jié)合表一與表二可總結(jié)出如下規(guī)律:當(dāng)am大于等于bm時,它總是選擇as作為ss輸出,否則它總是選擇邏輯單元2的輸出作為ss。至于邏輯單元2,當(dāng)信號c指示進(jìn)行加法運算時,它輸出bs;當(dāng)信號c指示減法運算時,它輸出bs的互補信號。