複製鏈接
請複製以下鏈接發送給好友

硬件乘法器

鎖定
硬件乘法器是現代計算機中必不可少的一部分,其基礎是加法器結構。

硬件乘法器概念

硬件乘法器,其基礎就是加法器結構,它已經是現代計算機中必不可少的一部分。 [1]  乘法器的模型就是基於“移位和相加”的算法。在該算法中,乘法器中每一個比特位都會產生一個局部乘積。第一個局部乘積由乘法器的LSB產生,第二個乘積由乘法器的第二位產生,以此類推。如果相應的乘數比特位是1,那麼局部乘積就是被乘數的值,如果相應的乘數比特位是0,那麼局部乘積全為0。每次局部乘積都向左移動一位。
乘法器可以用更普遍的方式來表示。每個輸入,局部乘積數,以及結果都被賦予了一個邏輯名稱(如A1、A2、B1、B2),而這些名稱在電路原理圖中就作為了信號名稱。在原理圖的乘法例子中比較信號名稱,就可以找到乘法電路的行為特性。
在乘法器電路中,乘數中的每一位都要和被乘數的每一位相與,併產生其相應的乘積位。這些局部乘積要饋入到全加器的陣列中(合適的時候也可以用半加器),同時加法器向左移位並表示出乘法結果。最後得到的乘積項在CLA電路中相加。注意,某些全加器電路會將信號帶入到進位輸入端(用於替代鄰近位的進位)。這就是一種全加器電路的應用;全加器將其輸入端的任何三個比特相加。
隨着乘數和被乘數位數的增加,乘法器電路中的加法器位樹也要相應的增加。通過研究CLA電路的特性,也可以在乘法器中開發出更快的加法陣列。
DSP中的專用硬件乘法器
在DSPs中具有硬件連線邏輯的高速“與或”運算器乘法器累加器),取兩個操作數到乘法器中進行乘法運算,並將乘積累加到累加器中,這些操作都可以在單個週期內完成。
數字信號處理器(DSP) 數字信號處理器(DSP) [2]
數字信號處理算法中,乘法和累加是基本的大量的運算。例如:在卷積運算、數字濾波、FFT、相關計算和矩陣運算等算法中,都有大量的類似於ΣA(k)B(n-k)的運算。DSPs中設置的硬件乘法器和MAC(乘法並累加)一類的指令,可以使這些運算速度大大提高。乘法速度越快,DSPs性能就越好。在通用的微處理器中,乘法指令是由一系列加法來實現的,故需許多個指令週期來完成。相比而言,DSPs芯片的特徵就是有一個專用的硬件乘法器。 [2] 

硬件乘法器實現原理

兩個二進制數相乘的過程 兩個二進制數相乘的過程
首先,分析一下兩個二進制數相乘的過程:
由此可見,硬件乘法器的實現本質是“移位相加”。對於二進制,乘數和被乘數的每一位非0即1,相當於乘數中的每一位分別和被乘數的每一個體位進行與運算,併產生其相應的乘積位。這些局部乘積左移一位與上次的和相加。即從乘數的最低位開始,若其為1,則被乘數左移一位並與上一次的和相加;若為0,左移後以全零相加,如此循環至乘數的最高位。 [3] 

硬件乘法器電路結構

從理論上講,兩個二進制N位操作數相乘,乘積的總寬度為2N,因此需要一個寬度為2N的移位寄存器和加法器。但在實際執行過程中,一是每個部分積的寬度和移位相加的有效寬度都為N位,從資源的利用率角度考慮,僅需N位寬度的加法器即可;二是按照先移位再相加的原理,兩個N位操作數則需要2N個時鐘週期才能完成整個運算,在此考慮將移位和相加兩個運算步驟合併,從速度上就可在N個時鐘週期內完成。
根據上述分析,8位移位相加型硬件乘法器應包括16位鎖存器、8位移位寄存器、8位乘法器、8位加法器等4個組成部分。
鎖存器發揮着鎖存的作用,用於鎖存部分和。
移位寄存器則具備移位作用,當加載信號有效時乘數將加載於8位右位寄存器,隨着時鐘上升沿的到來,乘數即由低位開始逐位移出。
乘法器功能類似一個特殊的與門。有兩個輸入端口,一個端口用於輸入8位並行操作數(被乘數),另一個端口在時鐘信號控制下輸入由移位寄存逐步移出的串行操作數,並將這兩個操作數進行與運算。
加法器用於將本次時鐘脈衝控制下得到的8位部分積與鎖存於鎖存器高8位的前一個時鐘脈衝下得到的部分和相加。 [3] 
參考資料