乘法器——Wallace樹型乘法器


    博主最近在看乘法器相關的知識,發現現在用的比較多的是booth編碼的乘法器和Wallace樹型乘法器,當然兩者並不是互斥的關系,他們也可以結合使用。在這里給大家介紹一下Wallace樹型乘法器,希望能對大家有所幫助。

    首先我們以兩個無符號8位二進制數相乘為例來說明Wallace樹的算法。由圖1所示,圖中8位二進制數a和8位二進制數b相乘,產生64個乘積項,記做a[i]*b[j],i,j=0、1、2、3、4、5、6、7,在本文中,乘號用*來表示,在圖中也將a[i]*b[j]用*表示。處在同一列的所有乘積項與從右邊過來的進位相加,得到乘積的一位結果,由於64個乘積項可以用64個與門同時得到,即a*b=a&b,我們可以用多個全加器對處在同一列的乘積項同時相加。

  一個全加器有三位輸入和兩位輸出,其中一個輸出為加法結果(sum),另一個輸出為進位(cout)。圖中一個長方形代表一個全加器,內部有兩個*的長方形可以用半加器實現,圓圈中的單個乘積暫時不做處理,送入下一級參與運算。這樣即實現了3-2壓縮,因為全加器是3輸入2輸出的。

 

圖1 8*8Wallace樹型乘法器乘積項

  圖2表示了第07位的運算情況,07位有8個乘積項,他們分別是a[7]*b[0]、a[6]*b[1]、a[5]*b[2]、a[4]*b[3]、a[3]*b[4]、a[2]*b[5]、a[1]*b[6]、a[0]*b[7],每一項a和b的[]中的數字之和為7。

圖2 8*8Wallace樹型乘法器第07位

    在第一級,我們使用3個全加器,產生3位相加結果與3位進位。3位進位送到左邊的第08位。第二級有5位相加,其中3位來自第一級,兩位是來自右邊06位的進位,第二級使用了兩個全加器。第三級和第四級都使用了1個全加器,由於每一級各自的全加器是並行的,故每一級的延遲只相當於一個全加器的延遲,我們把第四級的輸出分成sum和cout兩組,再把它們用進位傳播加法器相加,得到最后的結果,即乘積。

    圖三所示為8*8Wallace樹型乘法器總體電路圖,圖中第一行數字是乘積位的編號,第二行數字是相應位的乘積項數量。加法器的數字是該加法器名稱的右半部分,左半部分在圖中的最左側給出。如左下角最后一個加法器的名稱為fal_14_0。

圖3 8*8Wallace樹型乘法器總體電路圖

    以上就是Wallace樹型加法器的基本原理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM