張建妮
摘要:乘法器是數(shù)字信號處理中非常重要的模塊。本文首先介紹了硬件乘法器的原理,在此基礎上提出了硬件乘法器的設計方法,最后再利用EDA技術,在FPGA開發(fā)平臺上,通過VHDL編程和圖形輸入對其進行了實現(xiàn),具有實用性強、性價比高、可操作性強等優(yōu)點。
關鍵詞:硬件乘法器; 加法器; VHDL
中圖分類號:TP2 文獻標識碼:A文章編號:2095-2163(2014)04-0087-04
Abstract:Multiplier is very important in digital signal processing module. In this paper, the principle of the hardware multiplier is introduced at first. Based on it, a design method is put forward.Finally , using EDA technology,the hardware -multiplier is implemented through VHDL programming combining with the input mode of schematic diagram on the FPGA development platform. The design has strong practicability ,high cost-effective, strong operability, etc.
Key words:Hardware-Multiplier; Adder; VHDL
0引言
在數(shù)字信號處理中,經(jīng)常會遇到卷積、數(shù)字濾波、FFT等運算,而在這些運算中則存在大量類似ΣA(k)B(n-k)的算法過程。因此,乘法器是數(shù)字信號處理中必不可少的一個模塊。目前常見的乘法器有純組合邏輯乘法器和基于可編程邏輯器件(PLD)外接ROM九九表的乘法器。純組合邏輯構成的乘法器中的最小單元MU主要由與門和全加器構成,工作速度比較快,但當乘法器位數(shù)比較多時,硬件資源耗費也較大,同時會產(chǎn)生傳輸延時和進位延時。而基于PLD外接ROM九九表的乘法器卻無法構成單片系統(tǒng), 實用性編弱。為此,本文將介紹一種基于FPGA8位移位相加型硬件乘法器的設計方法,藉此乘法器的實用性獲得了較大提升。同時利用FPGA構成實驗系統(tǒng)后,可以用ASIC大型集成芯片來搭建完成,并且具有性價比高、操作性強等眾多優(yōu)點[1]。
1乘法器的實現(xiàn)原理
2硬件乘法器的電路結構
從理論上講,兩個二進制N位操作數(shù)相乘,乘積的總寬度為2N,因此需要一個寬度為2N的移位寄存器和加法器。但在實際執(zhí)行過程中,一是每個部分積的寬度和移位相加的有效寬度都為N位,從資源的利用率角度考慮,僅需N位寬度的加法器即可;二是按照先移位再相加的原理,兩個N位操作數(shù)則需要2N個時鐘周期才能完成整個運算,在此考慮將移位和相加兩個運算步驟合并,從速度上就可在N個時鐘周期內(nèi)完成[3]。
移位寄存器則具備移位作用,當加載信號有效時乘數(shù)將加載于8位右位寄存器,隨著時鐘上升沿的到來,乘數(shù)即由低位開始逐位移出。
乘法器功能類似一個特殊的與門。有兩個輸入端口,一個端口用于輸入8位并行操作數(shù)(被乘數(shù)),另一個端口在時鐘信號控制下輸入由移位寄存逐步移出的串行操作數(shù),并將這兩個操作數(shù)進行與運算。
加法器用于將本次時鐘脈沖控制下得到的8位部分積與鎖存于鎖存器高8位的前一個時鐘脈沖下得到的部分和相加。
3硬件乘法器的設計與實現(xiàn)
在硬件乘法器具體實現(xiàn)過程中采用層次化的設計方法。首先,設計硬件乘法器中各組成電路元件,將其作為底層元件。底層元件的實現(xiàn)主要采用VHDL文本輸入方式,并將其封裝成元。然后在頂層實體中調(diào)用底層元件,頂層實體的設計主要采用圖形輸入方式,硬件原理圖則如圖1所示。
在本設計中,以時序邏輯方式實現(xiàn)的8位硬件乘法器的核心器件是8位加法器(ADDER8B)。對于8位加法器有兩種實現(xiàn)方案:一種是8位直接寬位加法器,其速度較快,但硬件資源消耗大,對于工業(yè)化設計不是最佳實現(xiàn)。第二種方案是用兩個4位加法器通過級聯(lián)構成8位加法器,其實現(xiàn)原理簡單,資源利用率高,并且進位速度快。本設計中采用方案二。在具體的實現(xiàn)過程中,首先利用參數(shù)化宏功能模塊LMP_ADD_SUB實現(xiàn)4位加法器(ADDER4B)并生成相應的元件符號。其后在ADDER8B頂層原理圖中調(diào)用ADDER4B元件符號并將其級聯(lián)成8位加法器。即將ADDER8B的8位輸入端口拆成[7:4]和[3:0]兩個4位,低4位和高4位各為一個4位加法器,再將低4位的進位輸出作為高4位的進位輸入。
4結果分析
最后在FPGA開發(fā)當兩個操作數(shù)分別為C6和FD時,經(jīng)過8個時鐘上升沿后,就可以得到最終的結果為C3AE。
綜上,基于FPGA的移位累加乘法器易于實現(xiàn)且資源占用較少,其缺點是運算速度慢,8位乘法需要8個時鐘周期才能得到結果,主要用于運算量較小、實時性要求較低的單片機和微處理器的乘法運算中。如何解決速度和資源利用率這對矛盾,以提高性價比,將是我們下一步研究的重點[2]。
參考文獻:
[1]潘松,黃繼業(yè).EDA技術實用教程[M].北京:科學出版社,2006.
[2]傘錦輝,常青.基于FPGA的乘法器實現(xiàn)結構分析與仿真.微機處理,2004.06(3):3-6
[3]吳桂軍,雷勇.基于時序電路的移位相加型8 位硬件乘法器設計.科技信息,2011.(31):81
[4]黃孜理,汪一鳴.基于乘法器的EDA設計優(yōu)化及其驗證. 微處理機,2008.06(3):8-10