帶有飽和處理功能的并行乘加單元設(shè)計
發(fā)布時間:2007/8/24 0:00:00 訪問次數(shù):548
摘 要:本文介紹了一種48bit+24bit×24bit帶飽和處理的MAC單元設(shè)計。在乘法器的設(shè)計中,采用改進(jìn)的booth 算法來減少部分積的數(shù)目,用由壓縮單元組成的Wallace tree將產(chǎn)生的部分積相加,并將被加數(shù)作為乘法器的一個部分積參與到Wallace tree陣列中來完成乘加運(yùn)算,同時增加了飽和檢測和飽和值運(yùn)算邏輯來實現(xiàn)飽和處理。
關(guān)鍵詞:booth算法; Wallace tree ;飽和處理;飽和檢測
圖1 飽和MAC結(jié)構(gòu)框圖
引言
在一些數(shù)字信號處理應(yīng)用,如數(shù)字濾波、語音編碼、圖形處理等領(lǐng)域中,要大量反復(fù)地進(jìn)行飽和處理操作。所謂飽和處理操作,是指當(dāng)兩個n位操作數(shù)相運(yùn)算時,如果結(jié)果發(fā)生溢出,則取其飽和值。對于用補(bǔ)碼表示的n位二進(jìn)制數(shù),正的飽和值為011…11,負(fù)的飽和值為100…00。飽和處理操作一般要用到兩個周期,在第一個周期中處理算術(shù)運(yùn)算操作,在第二個周期中處理飽和操作。更加復(fù)雜的操作,例如MAC操作,一般是在分別完成乘法和加法運(yùn)算之后再進(jìn)行飽和處理,這通常需要更多的周期。而并行飽和運(yùn)算操作則是在一個周期之內(nèi)取得串行操作的結(jié)果,這需要更多的硬件電路來實現(xiàn)。
本文設(shè)計了一種MAC單元,實現(xiàn)
=>的運(yùn)算操作,并帶有飽和處理功能。
飽和乘加單元基本結(jié)構(gòu)
為了實現(xiàn)
=>的飽和運(yùn)算,在一般情況下,計算P時,可以將X 、Y經(jīng)乘法器相乘,然后將積與A相加,如果發(fā)生溢出,則將所得的和修正為飽和值。這實際上就是將乘法器與加法器簡單串聯(lián),然后進(jìn)行飽和值修正,如圖1所示。但是以這種結(jié)構(gòu)實現(xiàn)的MAC單元,由于乘法器中的最終加法器和加法器只是簡單的串聯(lián)在一起,在關(guān)鍵路徑上就有兩級串聯(lián)的加法器,面積、延時都比較大。
為了提高M(jìn)AC單元的性能,本文對上面提到的結(jié)構(gòu)進(jìn)行了優(yōu)化, 優(yōu)化后的結(jié)構(gòu)如圖2所示。 將MAC單元的被加數(shù)作為乘法器的一個部分積,參與到部分積加法陣列中,這樣就可以省去完成乘法計算后再進(jìn)行加法計算的操作,縮短關(guān)鍵路徑上的延時。
高速并行乘加單元結(jié)構(gòu)
本文選用修正booth算法和Wallace tree結(jié)構(gòu)實現(xiàn)24×24高速并行乘法器。圖3是24×24高速乘加器的結(jié)構(gòu)框圖,主要由booth編碼、部分積陣列、Wallace tree以及最終加法器構(gòu)成。
booth編碼
被乘數(shù)、乘數(shù)分別為n位補(bǔ)碼表示的有符號數(shù),在MBA(修正booth算法)中:
部分積的數(shù)目=,不失一般性,在這里只討論n為偶數(shù)的情況。
設(shè):X=-an-12n-1+2i;
Y=-bn-12n-1+2i;
根據(jù)MBA,對乘數(shù)進(jìn)行以下變換:
Y=-bn-12n-1+2i
=
在這里a-1=0;
令其中i=0,1,2,…(n/2-1);則
;
;
由上式可以看到加法計算量減少了一半,同時可以看出Ki+1X相對于KiX需要左移兩位。
在MBA中,乘數(shù)被劃分成2位的塊,對于第j個塊,塊中的2位(b2j+1,b2j)和前一個塊中的高位b2j-1重新進(jìn)行編碼,編碼真值表為:
符號擴(kuò)展及部分積產(chǎn)生
在部分積生成過程中,符號位的擴(kuò)展隨部分積一起產(chǎn)生,我們將所有的擴(kuò)展符號位相加:
由于和是48位的,故將上式中第一項舍掉,得:
;
對于部分積的產(chǎn)生,如果乘數(shù)經(jīng)booth重編碼后Ki為負(fù),則需將部分積取反后加1,如表1所示。因此,在設(shè)計中可將每一個部分積的最后一位與ni相加,booth編碼值為負(fù)時ni=1;編碼值為正時ni=0。
部分積及被加數(shù)相加
Wallace tree是通過提高電路的并行度來提高電路速度的一種實現(xiàn)結(jié)構(gòu),它將所有的部分積在同一時刻相互獨(dú)立地并行加到電路中,從而提高運(yùn)算速度。在Wallace tree結(jié)構(gòu)里面,我們用壓縮單元將乘法操作過程中產(chǎn)生的部分積以及被加數(shù)相加。在本設(shè)計中,我們把被加數(shù)作為一個部分積,加到Wallace tree陣列中,這樣就可以省去完成乘法運(yùn)算后再進(jìn)行加法運(yùn)算的操作延遲,提高M(jìn)AC單元速度。
最大的樹由3個3-2壓縮單元和4個4-2壓縮單元組成,樹的高度只有3級,這比只用全加器實現(xiàn)時的高度要小得多,延時也小得多。對于其他較小的樹,可以通過減少壓縮單元的數(shù)目來實現(xiàn)。圖4為本MAC單元中最大的Wallace tree 結(jié)構(gòu)(其中a22為被加數(shù)的相應(yīng)位)。
最終加法器
在Wallace tree陣列中,Wallace tree的每一列都產(chǎn)生一個初步的進(jìn)位項和一個初步的加法結(jié)果,最后必須使用一個快速加法器將所有的進(jìn)位項和
摘 要:本文介紹了一種48bit+24bit×24bit帶飽和處理的MAC單元設(shè)計。在乘法器的設(shè)計中,采用改進(jìn)的booth 算法來減少部分積的數(shù)目,用由壓縮單元組成的Wallace tree將產(chǎn)生的部分積相加,并將被加數(shù)作為乘法器的一個部分積參與到Wallace tree陣列中來完成乘加運(yùn)算,同時增加了飽和檢測和飽和值運(yùn)算邏輯來實現(xiàn)飽和處理。
關(guān)鍵詞:booth算法; Wallace tree ;飽和處理;飽和檢測
圖1 飽和MAC結(jié)構(gòu)框圖
引言
在一些數(shù)字信號處理應(yīng)用,如數(shù)字濾波、語音編碼、圖形處理等領(lǐng)域中,要大量反復(fù)地進(jìn)行飽和處理操作。所謂飽和處理操作,是指當(dāng)兩個n位操作數(shù)相運(yùn)算時,如果結(jié)果發(fā)生溢出,則取其飽和值。對于用補(bǔ)碼表示的n位二進(jìn)制數(shù),正的飽和值為011…11,負(fù)的飽和值為100…00。飽和處理操作一般要用到兩個周期,在第一個周期中處理算術(shù)運(yùn)算操作,在第二個周期中處理飽和操作。更加復(fù)雜的操作,例如MAC操作,一般是在分別完成乘法和加法運(yùn)算之后再進(jìn)行飽和處理,這通常需要更多的周期。而并行飽和運(yùn)算操作則是在一個周期之內(nèi)取得串行操作的結(jié)果,這需要更多的硬件電路來實現(xiàn)。
本文設(shè)計了一種MAC單元,實現(xiàn)
=>的運(yùn)算操作,并帶有飽和處理功能。
飽和乘加單元基本結(jié)構(gòu)
為了實現(xiàn)
=>的飽和運(yùn)算,在一般情況下,計算P時,可以將X 、Y經(jīng)乘法器相乘,然后將積與A相加,如果發(fā)生溢出,則將所得的和修正為飽和值。這實際上就是將乘法器與加法器簡單串聯(lián),然后進(jìn)行飽和值修正,如圖1所示。但是以這種結(jié)構(gòu)實現(xiàn)的MAC單元,由于乘法器中的最終加法器和加法器只是簡單的串聯(lián)在一起,在關(guān)鍵路徑上就有兩級串聯(lián)的加法器,面積、延時都比較大。
為了提高M(jìn)AC單元的性能,本文對上面提到的結(jié)構(gòu)進(jìn)行了優(yōu)化, 優(yōu)化后的結(jié)構(gòu)如圖2所示。 將MAC單元的被加數(shù)作為乘法器的一個部分積,參與到部分積加法陣列中,這樣就可以省去完成乘法計算后再進(jìn)行加法計算的操作,縮短關(guān)鍵路徑上的延時。
高速并行乘加單元結(jié)構(gòu)
本文選用修正booth算法和Wallace tree結(jié)構(gòu)實現(xiàn)24×24高速并行乘法器。圖3是24×24高速乘加器的結(jié)構(gòu)框圖,主要由booth編碼、部分積陣列、Wallace tree以及最終加法器構(gòu)成。
booth編碼
被乘數(shù)、乘數(shù)分別為n位補(bǔ)碼表示的有符號數(shù),在MBA(修正booth算法)中:
部分積的數(shù)目=,不失一般性,在這里只討論n為偶數(shù)的情況。
設(shè):X=-an-12n-1+2i;
Y=-bn-12n-1+2i;
根據(jù)MBA,對乘數(shù)進(jìn)行以下變換:
Y=-bn-12n-1+2i
=
在這里a-1=0;
令其中i=0,1,2,…(n/2-1);則
;
;
由上式可以看到加法計算量減少了一半,同時可以看出Ki+1X相對于KiX需要左移兩位。
在MBA中,乘數(shù)被劃分成2位的塊,對于第j個塊,塊中的2位(b2j+1,b2j)和前一個塊中的高位b2j-1重新進(jìn)行編碼,編碼真值表為:
符號擴(kuò)展及部分積產(chǎn)生
在部分積生成過程中,符號位的擴(kuò)展隨部分積一起產(chǎn)生,我們將所有的擴(kuò)展符號位相加:
由于和是48位的,故將上式中第一項舍掉,得:
;
對于部分積的產(chǎn)生,如果乘數(shù)經(jīng)booth重編碼后Ki為負(fù),則需將部分積取反后加1,如表1所示。因此,在設(shè)計中可將每一個部分積的最后一位與ni相加,booth編碼值為負(fù)時ni=1;編碼值為正時ni=0。
部分積及被加數(shù)相加
Wallace tree是通過提高電路的并行度來提高電路速度的一種實現(xiàn)結(jié)構(gòu),它將所有的部分積在同一時刻相互獨(dú)立地并行加到電路中,從而提高運(yùn)算速度。在Wallace tree結(jié)構(gòu)里面,我們用壓縮單元將乘法操作過程中產(chǎn)生的部分積以及被加數(shù)相加。在本設(shè)計中,我們把被加數(shù)作為一個部分積,加到Wallace tree陣列中,這樣就可以省去完成乘法運(yùn)算后再進(jìn)行加法運(yùn)算的操作延遲,提高M(jìn)AC單元速度。
最大的樹由3個3-2壓縮單元和4個4-2壓縮單元組成,樹的高度只有3級,這比只用全加器實現(xiàn)時的高度要小得多,延時也小得多。對于其他較小的樹,可以通過減少壓縮單元的數(shù)目來實現(xiàn)。圖4為本MAC單元中最大的Wallace tree 結(jié)構(gòu)(其中a22為被加數(shù)的相應(yīng)位)。
最終加法器
在Wallace tree陣列中,Wallace tree的每一列都產(chǎn)生一個初步的進(jìn)位項和一個初步的加法結(jié)果,最后必須使用一個快速加法器將所有的進(jìn)位項和
熱門點(diǎn)擊
- 寄存器和移位寄存器
- 稅控收款機(jī)專用IC卡應(yīng)用研究 張 劍,郭玉東
- 光纖收發(fā)器基本連接方式
- 無速度傳感器異步電機(jī)矢量控制方法
- 超聲波測距與嵌入式SPT-K控制器在汽車自動
- 新一代DRSEM系統(tǒng)SEMViSiOnG2
- 四探針技術(shù)測量薄層電阻的原理及應(yīng)用 劉新福,
- 先進(jìn)芯片封裝技術(shù) 鮮 飛 (烽火通信科技股份
- PXI模塊化儀器特點(diǎn)及應(yīng)用
- 射頻識別電路中高頻功放的設(shè)計
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究