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