1.一種定點(diǎn)乘累加器,其特征在于:包括:
Booth編碼單元,用于對(duì)乘數(shù)進(jìn)行Booth編碼;
左移邏輯單元,用于當(dāng)被乘數(shù)為小數(shù)時(shí),將被乘數(shù)左移一位、低位補(bǔ)零;
Booth譯碼/部分積產(chǎn)生單元,用于產(chǎn)生部分積;
壓縮樹,用于壓縮部分積,輸出兩個(gè)壓縮數(shù)據(jù);
壓縮器,用于壓縮累加器和壓縮樹提供的數(shù)據(jù);
加法器,用于對(duì)壓縮器輸出的數(shù)據(jù)進(jìn)行加法操作,輸出結(jié)果。
2.根據(jù)權(quán)利要求1所述的定點(diǎn)乘累加器,其特征在于:當(dāng)進(jìn)行乘累減操作時(shí),所述Booth編碼單元用于對(duì)乘數(shù)進(jìn)行Booth編碼后將編碼值neg取反。
3.根據(jù)權(quán)利要求2所述的定點(diǎn)乘累加器,其特征在于:當(dāng)進(jìn)行無符號(hào)數(shù)的乘累減操作時(shí),所述定點(diǎn)乘累加器還包括:
操作數(shù)預(yù)處理單元,用于將左移邏輯單元輸出數(shù)據(jù)的低m位取反加1;
所述Booth譯碼/部分積產(chǎn)生單元包括最后部分積低位產(chǎn)生單元和其余部分積產(chǎn)生單元;所述最后部分積低位產(chǎn)生單元用于根據(jù)操作數(shù)預(yù)處理單元的輸出數(shù)據(jù)和乘數(shù)的最高位產(chǎn)生最后部分積的低m+1位;
所述其余部分積產(chǎn)生單元,用于根據(jù)Booth編碼單元產(chǎn)生的編碼和左移邏輯單元輸出的數(shù)據(jù)產(chǎn)生最后部分積的其他位以及其他的部分積;最后部分積的其他位和最后部分積的低m+1位合并成最后部分積。
4.根據(jù)權(quán)利要求1所述的定點(diǎn)乘累加器,其特征在于:還包括溢出判斷單元,用于判斷在進(jìn)行小數(shù)乘法時(shí)的乘數(shù)和被乘數(shù)是否均為-1,若是,則輸出溢出信號(hào)至壓縮樹,修改壓縮樹。
5.根據(jù)權(quán)利要求4所述的定點(diǎn)乘累加器,其特征在于:所述壓縮樹還用于:在乘累加操作且接收到溢出信號(hào)時(shí),將部分積中權(quán)重最低的1出現(xiàn)的位清零,然后將低于該權(quán)重的每一位加1。
6.根據(jù)權(quán)利要求5所述的定點(diǎn)乘累加器,其特征在于:所述將低于該權(quán)重的每一位加1,具體包括:
在具有相同的權(quán)重的部分積位中選取一位,使用溢出信號(hào)將低于該權(quán)重的所有選取位置成1。
7.根據(jù)權(quán)利要求5所述的定點(diǎn)乘累加器,其特征在于:所述將低于該權(quán)重的每一位加1,具體包括:
如果在低于該權(quán)重的壓縮樹中,存在半加器,則將溢出信號(hào)參與壓縮,并將半加器改為全加器。
8.根據(jù)權(quán)利要求5所述的定點(diǎn)乘累加器,其特征在于:所述將低于該權(quán)重的每一位加1,具體包括:
在具有相同的權(quán)重的部分積位中選取已經(jīng)得到壓縮結(jié)果的一位,使用溢出信號(hào)將低于該權(quán)重的所有選取位置成1。
9.根據(jù)權(quán)利要求4所述的定點(diǎn)乘累加器,其特征在于:所述壓縮樹還用于:在乘累減操作且接收到溢出信號(hào)時(shí),將部分積中權(quán)重為0的其中一位修改為1。