什麼是硬體乘法器
硬體乘法器你聽過嗎?哈哈,小編也是最近才聽過這個詞的。下面將由小編帶大家一起來學習學習下吧,希望對大家有所收穫!
硬體乘法器,其基礎就是加法器結構,它已經是現代計算機中必不可少的一部分。[1] 乘法器的模型就是基於“移位和相加”的演算法。在該演算法中,乘法器中每一個位元位都會產生一個區域性乘積。第一個區域性乘積由乘法器的LSB產生,第二個乘積由乘法器的第二位產生,以此類推。如果相應的乘數位元位是1,那麼區域性乘積就是被乘數的值,如果相應的乘數位元位是0,那麼區域性乘積全為0。每次區域性乘積都向左移動一位。
乘法器可以用更普遍的方式來表示。每個輸入,區域性乘積數,以及結果都被賦予了一個邏輯名稱***如A1、A2、B1、B2***,而這些名稱在電路原理圖中就作為了訊號名稱。在原理圖的乘法例子中比較訊號名稱,就可以找到乘法電路的行為特性。
在乘法器電路中,乘數中的每一位都要和被乘數的每一位相與,併產生其相應的乘積位。這些區域性乘積要饋入到全加器的陣列中***合適的時候也可以用半加器***,同時加法器向左移位並表示出乘法結果。最後得到的乘積項在CLA電路中相加。注意,某些全加器電路會將訊號帶入到進位輸入端***用於替代鄰近位的進位***。這就是一種全加器電路的應用;全加器將其輸入端的任何三個位元相加。
隨著乘數和被乘數位數的增加,乘法器電路中的加法器位樹也要相應的增加。通過研究CLA電路的特性,也可以在乘法器中開發出更快的加法陣列。
DSP中的專用硬體乘法器
在DSPs中具有硬體連線邏輯的高速“與或”運算器***乘法器和累加器***,取兩個運算元到乘法器中進行乘法運算,並將乘積累加到累加器中,這些操作都可以在單個週期內完成。
在數字訊號處理演算法中,乘法和累加是基本的大量的運算。例如:在卷積運算、數字濾波、FFT、相關計算和矩陣運算等演算法中,都有大量的類似於ΣA***k***B***n-k***的運算。DSPs中設定的硬體乘法器和MAC***乘法並累加***一類的指令,可以使這些運算速度大大提高。乘法速度越快,DSPs效能就越好。在通用的微處理器中,乘法指令是由一系列加法來實現的,故需許多個指令週期來完成。相比而言,DSPs晶片的特徵就是有一個專用的硬體乘法器。
硬體乘法器的實現原理
首先,分析一下兩個二進位制數相乘的過程:
由此可見,硬體乘法器的實現本質是“移位相加”。對於二進位制,乘數和被乘數的每一位非0即1,相當於乘數中的每一位分別和被乘數的每一個體位進行與運算,併產生其相應的乘積位。這些區域性乘積左移一位與上次的和相加。即從乘數的最低位開始,若其為1,則被乘數左移一位並與上一次的和相加;若為0,左移後以全零相加,如此迴圈至乘數的最高位。
硬體乘法器的電路結構
從理論上講,兩個二進位制N位運算元相乘,乘積的總寬度為2N,因此需要一個寬度為2N的移位暫存器和加法器。但在實際執行過程中,一是每個部分積的寬度和移位相加的有效寬度都為N位,從資源的利用率角度考慮,僅需N位寬度的加法器即可;二是按照先移位再相加的原理,兩個N位運算元則需要2N個時鐘週期才能完成整個運算,在此考慮將移位和相加兩個運算步驟合併,從速度上就可在N個時鐘週期內完成。
根據上述分析,8位移位相加型硬體乘法器應包括16位鎖存器、8位移位暫存器、8位乘法器、8位加法器等4個組成部分。具體電路結構如圖1所示。
鎖存器發揮著鎖存的作用,用於鎖存部分和。
移位暫存器則具備移位作用,當載入訊號有效時乘數將加載於8位右位暫存器,隨著時鐘上升沿的到來,乘數即由低位開始逐位移出。
乘法器功能類似一個特殊的與門。有兩個輸入埠,一個埠用於輸入8位並行運算元***被乘數***,另一個埠在時鐘訊號控制下輸入由移位寄存逐步移出的序列運算元,並將這兩個運算元進行與運算。
加法器用於將本次時鐘脈衝控制下得到的8位部分積與鎖存於鎖存器高8位的前一個時鐘脈衝下得到的部分和相加。