專利名稱:乘加方法及乘加器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及到乘加處理器領(lǐng)域,特指一種乘加方法及乘加器。
背景技術(shù):
傳統(tǒng)的乘加融合是將加數(shù)作為一個(gè)部分積,放在乘法器的華萊士樹(shù)的最底層。在 進(jìn)行矩形布局時(shí),采用傳統(tǒng)的華萊士樹(shù)乘加器會(huì)導(dǎo)致面積的大量浪費(fèi)。Moimir Bohsali (馬尼 波賽利)和Michael D0an(米歇爾 竇恩)提出了一種方法,對(duì)傳統(tǒng)的乘法器華萊士 樹(shù)進(jìn)行了改造,得到了一種新型的華萊士樹(shù)。由于乘法器的華萊士樹(shù)比較規(guī)則,所以采用這 種的方法很容易對(duì)乘法器的華萊士樹(shù)進(jìn)行分割,達(dá)到優(yōu)化目的。但是,傳統(tǒng)的乘加融合是將 加數(shù)作為一個(gè)部分積,添加到乘法器的華萊士樹(shù)中,這就導(dǎo)致了結(jié)構(gòu)的不規(guī)則,使得Moimir Bohsali (馬尼 波賽利)和Michael Doan (米歇爾 竇恩)的改造方法無(wú)法適用于這種情 況。對(duì)于任何的傳統(tǒng)融合乘加器,都可以分為三個(gè)階段(1)產(chǎn)生部分積;(2)部分積 相加;(3)最終加法。在第一階段,被乘數(shù)和乘數(shù)相乘產(chǎn)生部分積。在這個(gè)階段,通常采用布什2算法使 部分積的數(shù)量減少一半。第二階段最重要,由于它最復(fù)雜,所以它決定了整個(gè)傳統(tǒng)融合乘加器的速度。本專 利集中在優(yōu)化這個(gè)階段。若不關(guān)心速度快慢,可將部分積連續(xù)相加,以便減少設(shè)計(jì)復(fù)雜度。 然而,在進(jìn)行高速傳統(tǒng)融合乘加器設(shè)計(jì)時(shí),華萊士樹(shù)結(jié)構(gòu)通常是將部分積進(jìn)行樹(shù)狀操作,以 產(chǎn)生兩行部分積結(jié)果,在最后階段相加。這樣設(shè)計(jì)得到的傳統(tǒng)融合乘加器雖然速度很快,但 是關(guān)鍵路徑上的延時(shí),隨傳統(tǒng)融合乘加器的位數(shù)增加成對(duì)數(shù)增長(zhǎng)。華萊士樹(shù)還會(huì)導(dǎo)致其他 的問(wèn)題,如浪費(fèi)布局面積,增加復(fù)雜度等。本專利設(shè)計(jì)了一種裝置,將加數(shù)進(jìn)行特殊的處理, 使得加數(shù)與乘法產(chǎn)生的部分積能夠進(jìn)一步融合,達(dá)到優(yōu)化整個(gè)融合乘加的華萊士樹(shù)面積的 目的。第三階段,將壓縮樹(shù)產(chǎn)生的兩個(gè)行結(jié)果相加,產(chǎn)生最終結(jié)果。本專利所發(fā)明的裝置 同樣致力于在這方面進(jìn)行優(yōu)化。在這個(gè)階段,檢查相加結(jié)果是否有進(jìn)位。將進(jìn)位作為控制 信號(hào),控制預(yù)測(cè)結(jié)果的輸出。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題就在于針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供一 種結(jié)構(gòu)簡(jiǎn)單緊湊、成本低廉、運(yùn)算速度快、穩(wěn)定可靠的乘加方法及乘加器。為解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案 一種乘加方法,其特征在于步驟為
(1)乘數(shù)通過(guò)布什編碼邏輯單元產(chǎn)生若干控制信號(hào),被乘數(shù)作為部分積產(chǎn)生邏輯單元 的輸入,根據(jù)控制信號(hào)產(chǎn)生部分積;
(2)加數(shù)通過(guò)加數(shù)分塊邏輯單元得到三個(gè)輸出,分別是低位截取部分、中間部分和高位截取部分;所述低位截取部分、中間部分以及部分積作為改進(jìn)華萊士樹(shù)單元的輸入,得到 一個(gè)“和”和一個(gè)“進(jìn)位”,其中“和”與“進(jìn)位”的位數(shù)相同,“進(jìn)位”的權(quán)值比“和”的權(quán)值高 1 ;“和”與“進(jìn)位”作為加法器的輸入,產(chǎn)生一個(gè)低位結(jié)果和一個(gè)控制信號(hào);
(3)高位截取部分作為高位預(yù)測(cè)邏輯單元的一個(gè)輸入,在控制信號(hào)的控制下,產(chǎn)生一 個(gè)高位結(jié)果;
(4)低位結(jié)果與高位結(jié)果作為拼接邏輯單元的輸入,產(chǎn)生一個(gè)最終結(jié)果。作為本發(fā)明的進(jìn)一步改進(jìn)
所述步驟(2)中,所述低位截取部分的位數(shù)=乘積位數(shù)-乘法產(chǎn)生的最后一個(gè)部分積 的位數(shù);所述中間部分的位數(shù)與乘法產(chǎn)生的最后一個(gè)部分積的位數(shù)相同;所述高位截取部 分的位數(shù)=加數(shù)位數(shù)_低位截取部分的位數(shù)_中間部分的位數(shù)。所述步驟(2)中,將低位截取部分移到乘法的第一個(gè)部分積上面,成為新的第一個(gè) 部分積;中間部分保持原位;低位截取部分、乘法產(chǎn)生的部分積和中間部分一起組成新的 部分積陣列,通過(guò)改進(jìn)華萊士樹(shù)單元壓縮成一個(gè)“和”和一個(gè)“進(jìn)位”。所述步驟(3)中,對(duì)于高位截取部分作如下處理 X加上00或保持原樣輸出;:1加上οι ;.f.加上 ο ;S加上11,最終得到四個(gè)中間結(jié)果,并 且以最終加法器的兩位作為控制信號(hào),產(chǎn)生高位預(yù)測(cè)邏輯單元的最終結(jié)果。將改進(jìn)華萊士樹(shù)單元沿著中間分成左、右兩個(gè)部分,所述左邊的部分積分塊從上 往下加,所述右邊的部分積分塊從下往上加。本發(fā)明進(jìn)一步提供一種乘加器,其特征在于包括布什編碼邏輯單元、部分積產(chǎn)生 邏輯單元、加數(shù)分塊邏輯單元、加法器、高位預(yù)測(cè)邏輯單元、改進(jìn)華萊士樹(shù)單元以及拼接邏 輯單元,乘數(shù)通過(guò)布什編碼邏輯單元產(chǎn)生若干控制信號(hào),被乘數(shù)作為部分積產(chǎn)生邏輯單元 的輸入,根據(jù)控制信號(hào)產(chǎn)生部分積;加數(shù)通過(guò)加數(shù)分塊邏輯單元得到三個(gè)輸出,分別是低位 截取部分、中間部分和高位截取部分;所述低位截取部分、中間部分以及部分積作為改進(jìn)華 萊士樹(shù)單元的輸入,得到一個(gè)“和”和一個(gè)“進(jìn)位”,其中“和”與“進(jìn)位”的位數(shù)相同,“進(jìn)位” 的權(quán)值比“和”的權(quán)值高1 ;“和”與“進(jìn)位”作為加法器的輸入,產(chǎn)生一個(gè)低位結(jié)果和一個(gè)控 制信號(hào);高位截取部分作為高位預(yù)測(cè)邏輯單元的一個(gè)輸入,在控制信號(hào)的控制下,產(chǎn)生一個(gè) 高位結(jié)果;低位結(jié)果與高位結(jié)果作為拼接邏輯單元的輸入,產(chǎn)生一個(gè)最終結(jié)果。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于
1、本發(fā)明對(duì)于任意位寬的乘數(shù)、被乘數(shù)和加數(shù),可以很方便的得到規(guī)整的部分積陣列, 便于布局優(yōu)化。若需要低功耗和面積較小的乘加器,可以按照Moimir Bohsali (馬尼 波 賽利)和Michael Doan (米歇爾 竇恩)提出的方法,對(duì)傳統(tǒng)的華萊士樹(shù)進(jìn)行改造。將乘加 華萊士樹(shù)沿著中間分成兩部分,所得每一部分都按照傳統(tǒng)的方法來(lái)求和。不同的是,左邊的 部分積分塊從上往下加,而右邊的部分積分塊從下往上加,這樣一來(lái),就可以節(jié)約很大的面 積,并且使得功耗下降。2、本發(fā)明對(duì)于加數(shù)的高位部分,對(duì)其進(jìn)行了并行處理,使得最終加法變?yōu)楹?jiǎn)單的 拼接,提高了運(yùn)算速度。
圖1是本發(fā)明乘加器的原理示意4圖2a是傳統(tǒng)的乘加融合方法的示意圖2b是本發(fā)明基于加數(shù)分塊的部分積分布示意圖3是本發(fā)明中加數(shù)低位截取部分和中間部分的處理方法示意圖4a是本發(fā)明中加數(shù)高位預(yù)測(cè)邏輯單元的原理示意圖4b是加數(shù)高位預(yù)測(cè)邏輯單元最后的拼接結(jié)果示意圖5是本發(fā)明中改進(jìn)華萊士樹(shù)單元的原理示意圖6是實(shí)現(xiàn)16X 16+40位時(shí),分別采用改進(jìn)華萊士樹(shù)單元與傳統(tǒng)的華萊士樹(shù)單元面積 的對(duì)比示意圖。
具體實(shí)施例方式以下將結(jié)合說(shuō)明書(shū)附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。如圖1所示,本發(fā)明的乘加器,包括布什編碼邏輯單元10、部分積產(chǎn)生邏輯單元 11、加數(shù)分塊邏輯單元12、加法器15、高位預(yù)測(cè)邏輯單元14、改進(jìn)華萊士樹(shù)單元13以及拼接 邏輯單元16,它采用本發(fā)明的乘加方法,該乘加方法的步驟為乘數(shù)通過(guò)布什編碼單元10 產(chǎn)生若干控制信號(hào)10A,被乘數(shù)作為部分積產(chǎn)生邏輯單元11的輸入,根據(jù)控制信號(hào)10A,產(chǎn) 生部分積IlA0加數(shù)通過(guò)加數(shù)分塊邏輯單元12,得到三個(gè)輸出,分別是低位截取部分12A, 中間部分12B和高位截取部分12C。低位截取部分12A、中間部分12B以及部分積IlA作為 改進(jìn)華萊士樹(shù)單元13的輸入,得到一個(gè)“和” 13A和一個(gè)“進(jìn)位” 13B。其中,“和” 13A與“進(jìn) 位” 13B的位數(shù)相同,“進(jìn)位” 13B的權(quán)值比“和” 13A的權(quán)值高1。“和” 13A與“進(jìn)位” 13B作 為加法器15的輸入,產(chǎn)生一個(gè)低位結(jié)果15A和一個(gè)控制信號(hào)15B。高位截取部分12C作為 高位預(yù)測(cè)邏輯單元14的一個(gè)輸入,在控制信號(hào)15B的控制下,產(chǎn)生一個(gè)高位結(jié)果14A。低位 結(jié)果15A與高位結(jié)果14A作為拼接邏輯單元16的輸入,產(chǎn)生一個(gè)最終結(jié)果。如圖2a所示,為傳統(tǒng)的乘加融合方法的示意圖。將加數(shù)21作為一個(gè)部分積,添加 到華萊士樹(shù)中,與乘法產(chǎn)生的部分積20 —起壓縮。如圖2b所示,為加數(shù)的分塊方法。對(duì)于任意為的加數(shù),將其分成三部分,分別是 低位截取部分12A、中間部分12B和高位截取部分12C。其中,低位截取部分12A的位數(shù)= 乘積位數(shù)_乘法產(chǎn)生的最后一個(gè)部分積20B的位數(shù);中間部分12B的位數(shù)與乘法產(chǎn)生的最 后一個(gè)部分積20B的位數(shù)相同;高位截取部分12C的位數(shù)=加數(shù)位數(shù)-低位截取部分12A 的位數(shù)_中間部分12B的位數(shù)。如圖3所示,為加數(shù)中低位截取部分12A和中間部分12B的處理方法。將低位截 取部分12A移到乘法的第一個(gè)部分積20B上面,成為新的第一個(gè)部分積20B。中間部分12B 保持原位。低位截取部分12A、乘法產(chǎn)生的部分積20和中間部分12B —起組成新的部分積 陣列,通過(guò)改進(jìn)華萊士樹(shù)單元13壓縮成一個(gè)“和” 13A和一個(gè)“進(jìn)位” 13B。“和” 13A和“進(jìn) 位” 13B作為加法器15的輸入,得到結(jié)果15A、15B。其中結(jié)果分為兩部分,分別是低位部分 15A和控制信號(hào)15B。如圖4a所示,為加數(shù)高位預(yù)測(cè)邏輯單元14的原理示意圖。加數(shù)中高位截取部分 12C作為高位預(yù)測(cè)邏輯單元14的輸入,產(chǎn)生四個(gè)中間結(jié)果21、22、23、24,在信號(hào)15B的控制 下,通過(guò)一個(gè)四選一選擇器,得到一個(gè)高位結(jié)果14A。在本實(shí)施例中,對(duì)于高位截取部分12C 作如下處理加上00或保持原樣輸出;2加上Oi ;S加上 ο ;I加上11,最終得到四個(gè)中間結(jié)果,并且以最終加法器15的兩位作為控制信號(hào),產(chǎn)生高位預(yù)測(cè)邏輯單元14的最終結(jié) 果。參見(jiàn)圖4b,為最后的拼接結(jié)果示意圖。將高位結(jié)果14A與低位結(jié)果15A拼接,作為最后 結(jié)果輸出。如圖5所示,為改進(jìn)華萊士樹(shù)單元13的示意圖。本發(fā)明按照Mounir Bohsali (馬 尼 波賽利)和Michael Doan (米歇爾 竇恩)提出的方法,對(duì)傳統(tǒng)的華萊士樹(shù)進(jìn)行了改 造。如圖5所示,將乘加華萊士樹(shù)沿著中間分成兩部分,所得每一部分都按照傳統(tǒng)的方法來(lái) 求和。不同的是,左邊的部分積分塊從上往下加,而右邊的部分積分塊從下往上加,這樣一 來(lái),就可以節(jié)約很大的面積。如圖6所示,為實(shí)現(xiàn)16X 16+40位時(shí),分別采用改進(jìn)華萊士樹(shù)單元13與傳統(tǒng)的華 萊士樹(shù)面積的對(duì)比。改進(jìn)華萊士樹(shù)單元13比傳統(tǒng)的華萊士樹(shù)的面積減少了 30%左右。以上僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例, 凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的 普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,應(yīng)視為本發(fā)明的保護(hù) 范圍。
權(quán)利要求
一種乘加方法,其特征在于步驟為(1) 乘數(shù)通過(guò)布什編碼邏輯單元產(chǎn)生若干控制信號(hào),被乘數(shù)作為部分積產(chǎn)生邏輯單元的輸入,根據(jù)控制信號(hào)產(chǎn)生部分積;(2) 加數(shù)通過(guò)加數(shù)分塊邏輯單元得到三個(gè)輸出,分別是低位截取部分、中間部分和高位截取部分;所述低位截取部分、中間部分以及部分積作為改進(jìn)華萊士樹(shù)單元的輸入,得到一個(gè)“和”和一個(gè)“進(jìn)位”,其中“和”與“進(jìn)位”的位數(shù)相同,“進(jìn)位”的權(quán)值比“和”的權(quán)值高1;“和”與“進(jìn)位”作為加法器的輸入,產(chǎn)生一個(gè)低位結(jié)果和一個(gè)控制信號(hào);(3) 高位截取部分作為高位預(yù)測(cè)邏輯單元的一個(gè)輸入,在控制信號(hào)的控制下,產(chǎn)生一個(gè)高位結(jié)果;(4) 低位結(jié)果與高位結(jié)果作為拼接邏輯單元的輸入,產(chǎn)生一個(gè)最終結(jié)果。
2.根據(jù)權(quán)利要求1所述的乘加方法,其特征在于所述步驟(2)中,所述低位截取部分 的位數(shù)=乘積位數(shù)_乘法產(chǎn)生的最后一個(gè)部分積的位數(shù);所述中間部分的位數(shù)與乘法產(chǎn)生 的最后一個(gè)部分積的位數(shù)相同;所述高位截取部分的位數(shù)=加數(shù)位數(shù)_低位截取部分的位 數(shù)-中間部分的位數(shù)。
3.根據(jù)權(quán)利要求1或2所述的乘加方法,其特征在于所述步驟(2)中,將低位截取部 分移到乘法的第一個(gè)部分積上面,成為新的第一個(gè)部分積;中間部分保持原位;低位截取 部分、乘法產(chǎn)生的部分積和中間部分一起組成新的部分積陣列,通過(guò)改進(jìn)華萊士樹(shù)單元壓 縮成一個(gè)“和”和一個(gè)“進(jìn)位”。
4.根據(jù)權(quán)利要求1或2所述的乘加方法,其特征在于所述步驟(3)中,對(duì)于高位截取部 分作如下處理X加上00或保持原 樣輸出;S加上01 加上10 加上11,最終得到四個(gè)中間結(jié)果,并且以最終加法器的兩 位作為控制信號(hào),產(chǎn)生高位預(yù)測(cè)邏輯單元的最終結(jié)果。
5.根據(jù)權(quán)利要求1或2所述的乘加方法,其特征在于將改進(jìn)華萊士樹(shù)單元沿著中間 分成左、右兩個(gè)部分,所述左邊的部分積分塊從上往下加,所述右邊的部分積分塊從下往上 加。
6.一種乘加器,其特征在于包括布什編碼邏輯單元、部分積產(chǎn)生邏輯單元、加數(shù)分塊 邏輯單元、加法器、高位預(yù)測(cè)邏輯單元、改進(jìn)華萊士樹(shù)單元以及拼接邏輯單元,乘數(shù)通過(guò)布 什編碼邏輯單元產(chǎn)生若干控制信號(hào),被乘數(shù)作為部分積產(chǎn)生邏輯單元的輸入,根據(jù)控制信 號(hào)產(chǎn)生部分積;加數(shù)通過(guò)加數(shù)分塊邏輯單元得到三個(gè)輸出,分別是低位截取部分、中間部分 和高位截取部分;所述低位截取部分、中間部分以及部分積作為改進(jìn)華萊士樹(shù)單元的輸入, 得到一個(gè)“和”和一個(gè)“進(jìn)位”,其中“和”與“進(jìn)位”的位數(shù)相同,“進(jìn)位”的權(quán)值比“和”的權(quán) 值高1 ;“和”與“進(jìn)位”作為加法器的輸入,產(chǎn)生一個(gè)低位結(jié)果和一個(gè)控制信號(hào);高位截取部 分作為高位預(yù)測(cè)邏輯單元的一個(gè)輸入,在控制信號(hào)的控制下,產(chǎn)生一個(gè)高位結(jié)果;低位結(jié)果 與高位結(jié)果作為拼接邏輯單元的輸入,產(chǎn)生一個(gè)最終結(jié)果。
全文摘要
一種乘加方法及乘加器,該方法的步驟為(1)乘數(shù)通過(guò)布什編碼邏輯單元產(chǎn)生若干控制信號(hào),被乘數(shù)作為部分積產(chǎn)生邏輯單元的輸入,產(chǎn)生部分積;(2)加數(shù)通過(guò)加數(shù)分塊邏輯單元得到低位截取部分、中間部分和高位截取部分;前兩者以及部分積作為改進(jìn)華萊士樹(shù)單元的輸入,得到的結(jié)果作為加法器的輸入,產(chǎn)生低位結(jié)果和控制信號(hào);(3)高位截取部分經(jīng)高位預(yù)測(cè)邏輯單元得到高位結(jié)果;(4)低位結(jié)果與高位結(jié)果經(jīng)拼接邏輯單元后產(chǎn)生一個(gè)最終結(jié)果。該乘加器包括布什編碼邏輯單元、部分積產(chǎn)生邏輯單元、加數(shù)分塊邏輯單元、加法器、高位預(yù)測(cè)邏輯單元、改進(jìn)華萊士樹(shù)單元以及拼接邏輯單元。本發(fā)明具有結(jié)構(gòu)簡(jiǎn)單緊湊、成本低廉、運(yùn)算速度快、穩(wěn)定可靠等優(yōu)點(diǎn)。
文檔編號(hào)G06F7/57GK101986260SQ201010559289
公開(kāi)日2011年3月16日 申請(qǐng)日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者劉宗林, 劉衡竹, 孫永節(jié), 彭元喜, 楊惠, 許邦建, 謝剛, 郭陽(yáng), 陳書(shū)明, 魯建壯, 龔國(guó)輝 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)