本發明專利技術公開了一種Booth乘法器,包括Booth編碼電路,Booth編碼,用于對二進制乘數B進行編碼,得到信號X1,X2,Neg;Booth解碼電路,用于將信號X1,X2,Neg結合二進制被乘數A生成部分積項;壓縮器,用于將對解碼電路產生的多個部分積項進行累加操作,得到兩個累加值;進位保留加法器,用于對多個部分積項經過壓縮器后得到的兩個累加值進行進位保留的相加操作,得到最終乘積結果。本發明專利技術采用混合型Wallace-Tree結構,并插入流水線,進一步提高運算速度。與現有技術相比,本發明專利技術從速度和面積上進行了綜合考慮,能達到很好的效果,同時能耗低,計算結果準確。
【技術實現步驟摘要】
本專利技術涉及乘法器,特別涉及一種Booth乘法器。
技術介紹
隨著計算機和信息技術的快速發展,人們對器件處理速度和性能的要求越來越高,在高速數字信號處理器(DSP)、微處理器和RISC等各類芯片中,乘法器是必不可少的算術邏輯單元,且往往處于關鍵延時路徑中,它完成一次乘法操作的周期基本上決定了微處理器的主頻,因此高性能的乘法器是現代微處理器及高速數字信號處理中的重要部件。目前乘法器設計方法主要有4種,分別為并行乘法器、移位相加乘法器、查找表乘法器、加法樹乘法器。其中,并行乘法器易于實現,運算速度快,但耗用資源多,尤其是當乘法運算位數較寬時,耗用資源會很龐大;移位相加乘法器設計思路是通過逐項移位相加實現,其耗用器件少,但耗時鐘,速度慢;查找表乘法器將乘積直接放在存儲器中,將操作數作為地址訪問存儲器隨著計算機和信息技術的快速發展,人們對器件處理速度和性能的要求越來越高,在高速數字信號處理器(DSP)、微處理器和RISC等各類芯片中,乘法器是必不可少的算術邏輯單元,且往往處于關鍵延時路徑中,它完成一次乘法操作的周期基本上決,得到的輸出數據就是乘法結果,該方法的速度只局限于存儲器的存儲速度,但隨乘數的位數增加,存儲器的空間會急劇增加,該方法不適合位數高的乘法操作;加法樹乘法器采用流水線結構,能在一個時鐘完成兩數相乘,但當乘數的位數增加,流水線的級數增多,導致會使用很多寄存器,增加器件的耗用。乘法器運算涉及兩個部分部分積的產生和部分積的累加;由此可知提高乘法速度的途徑有1)減少部分積的數目,2)加快部分積累加速度。Booth編碼能減少部分積的數目,從而使基于Booth編碼的乘法器能達到更快的運算速度。目前已經有幾類Booth編碼方案,這些編解碼方案能很好地實現減少部分積的功能,但是都未曾從速度、功耗以及占用資源的角度綜合考慮。
技術實現思路
為了克服現有技術的上述缺點與不足,本專利技術的目的在于提供一種Booth乘法器,采用的Booth編碼及解碼電路,電路簡單,占用晶體管數目少,生成的部分積項數目較少,提高了乘法器的運行速度。本專利技術的目的通過以下技術方案實現一種Booth乘法器,包括Booth編碼電路,用于對二進制乘數B進行編碼;所述編碼過程如下設乘數B為n 比特,當 B 為奇數時,B=BnBlriBlrf…B2B1Btl,令 Bn=OBn=O;當 B 為偶數時,Bi G {0,l},i=0,l,..,n-l Bi {0, l},i=0,;&B2i, +1B2i, B2i, < 為一組,對乘數 B 進行 Booth 編碼,得到信號 X1, X2, Neg ;其中 i ' =0,I, ...,[n/2],令 I1 = 0,X1 = B2l,+l B2i,,—B2i, ^2i^i,Neg=B2i/ +1 ;Booth解碼電路,用于將信號X1, X2, Neg結合二進制被乘數A生成部分積項;所述生成部分積過程如下設被乘數ASm比特,AzAmAm-A2A1Atl,設PPw為第k個部分積項中的第 j 位,j=0, 1,…m,則 P4 =X2(4 Neg)+X2 X1^1 ^eg)+X1 Neg ;壓縮器,用于將對解碼電路產生的多個部分積項進行累加操作,得到兩個累加值;進位保留加法器,用于對多個部分積項經過壓縮器后得到的兩個累加值進行進位保留的相加操作,得到最終乘積結果。所述累加操作采用混合型Wallace-Tree結構。 所述混合型Wallace-Tree結構中插入多級流水線。所述Booth乘法器還包括乘數及被乘數判斷模塊,用于判斷乘數、被乘數是否為零;若乘數、被乘數中至少有一個為零,則關閉Booth編碼電路、Booth解碼電路、壓縮器及進位保留加法器。所述壓縮器包括3-2壓縮器、4-2壓縮器和5-2壓縮器。與現有技術相比,本專利技術具有以下優點和技術效果(I)本專利技術的采用的Booth編碼及解碼電路,電路簡單,占用晶體管數目少,生成的部分積項數目較少,提高了乘法器的運行速度,在速度和面積綜合考慮,都有較好的性倉泛;(2)本專利技術采用了混合壓縮器的Wallace-Tree結構對產生的各個部分積項進行累加操作,并在樹中引入了多級流水線結構,解決了傳統Wallace-Tree采用單一的3_2壓縮器或者4-2壓縮器產生的問題當被乘數位數N偏大時,會導致樹的層數偏多,造成關鍵路徑很長,降低整個乘法器的運行速度。采用混合型Wallace-Tree結構,可以降低整個乘法器的功耗,而引入流水線可以進一步提高乘法器的計算速度;( 3 )本專利技術的乘法器弓I入乘數及被乘數判斷模塊(可稱為0通道),當檢測到被乘數或乘數為0時,可以關閉基于Booth算法和Wallace-Tree部分積項累加的電路,降低功耗的同時獲得準確的結果。(4)本專利技術的乘法器不只適用于浮點乘法器,還可以直接用于高位數的二進制乘法器。附圖說明圖I為IEEE754-1985/2008標準中單精度浮點數二進制的表示。圖2為二進制單精度浮點數X1和X2的浮點格式表示。圖3為實施例I的Booth乘法器的原理框圖。圖4為實施例I對乘數B的編碼過程示意圖。圖5為實施例I的Booth編碼電路。圖6為實施例I的Booth解碼電路。圖7為實施例I的壓縮器采用的混合型Wallace-Tree結構示意圖。圖8為傳統的壓縮器采用的Wallace-Tree結構示意圖。圖9為實施例2的Booth解碼電路。具體實施例方式下面結合實施例及附圖,對本專利技術作進一步地詳細說明,但本專利技術的實施方式不限于此。實施例I根據IEEE 754-1985/2008標準,二進制浮點數V可以用三個參數來表示,即符號S、尾數F和階碼(也稱指數)E,其表示形式為本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種Booth乘法器,其特征在于,包括 Booth編碼電路,用于對二進制乘數B進行編碼;所述編碼過程如下設乘數B為n比特,當B為奇數時,B=BnBlriBwB2B1Bc^令Bn=O,當B為偶數時,B=BlriBlrf…B2B1B0,Bi G {0, I}, i = 0,l,..,n-l ;以 B2i, +1B2i, B2i, ^ 為一組,對乘數 B 進行 Booth 編碼,得到信號 X1, X2, Ne’ g;其中 i/ = 0,I,…,[n/2],令 I1 =,X2 = B2i, B2i^l,Neg=B2i, +1 ; Booth解碼電路,用于將信號X1, X2, Neg結合二進制被乘數A生成部分積項;所述生成部分積過程如下設被乘數A為m比特,A2A1Atl,設PPkj為第k個部分積項中的第 j 位,j=0, 1,…m,則 Neg)+X2 Xx...
【專利技術屬性】
技術研發人員:周智恒,楊開勇,吳東承,曾頌榮,
申請(專利權)人:華南理工大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。