趙杰
(商洛學(xué)院電子信息與電氣工程學(xué)院,陜西商洛726000)
基于VHDL的乘法器的設(shè)計(jì)與對(duì)比
趙杰
(商洛學(xué)院電子信息與電氣工程學(xué)院,陜西商洛726000)
在數(shù)字系統(tǒng)中,乘法器是進(jìn)行數(shù)字信號(hào)運(yùn)算的核心運(yùn)算單元,同時(shí)也是微處理器中進(jìn)行數(shù)據(jù)處理的關(guān)鍵部分。以8位乘法器為例,根據(jù)簡(jiǎn)單并行乘法器、加法器樹乘法器和移位相加乘法器的基本原理,利用VHDL分別進(jìn)行描述和實(shí)現(xiàn)。對(duì)三種乘法器分別通過QuartusⅡ軟件平臺(tái)進(jìn)行仿真,再做進(jìn)一步比較和討論。結(jié)果表明,三種乘法器在運(yùn)行速度和資源占用上各有利弊,實(shí)踐中可根據(jù)設(shè)計(jì)要求和硬件條件選擇使用。
乘法器;移位相加;加法器樹;仿真
乘法器在數(shù)字信號(hào)處理過程中發(fā)揮著重要的作用,在語音、圖像處理、通信等領(lǐng)域中扮演著舉足輕重的角色,它的運(yùn)算速度與信號(hào)處理和整體效率的性能直接相關(guān),并且在很大程度上左右著系統(tǒng)功能[1-3]。基于FPGA/CPLD的EDA技術(shù)在現(xiàn)在數(shù)字系統(tǒng)中的應(yīng)用越來越廣泛[4-7],利用硬件描述語言設(shè)計(jì)乘法器是其重要任務(wù)之一。VHDL具有復(fù)雜的程序架構(gòu)和超強(qiáng)的表述能力,因此它可以對(duì)模塊較大的分層,再針對(duì)已有的設(shè)計(jì)進(jìn)行重復(fù)再利用。VHDL語法嚴(yán)格、語言標(biāo)準(zhǔn)、規(guī)范、有利于溝通和反復(fù)利用[8-10]。由于每種乘法器在資源占用和運(yùn)算速度上的不同,使得用戶在使用乘法器時(shí)需要進(jìn)行選擇。本文以8位位寬的乘法器為例,通過對(duì)比幾種用VHDL描述的常見乘法器在運(yùn)算速度和占用資源等方面的不同,為使用者在選擇時(shí)提供一定的參考。
簡(jiǎn)單并行乘法器有兩個(gè)輸入端口a和b,一個(gè)輸出product,進(jìn)行直接乘法運(yùn)算。本文介紹的是一個(gè)純組合邏輯電路,不需要時(shí)鐘信號(hào)。其仿真波形如圖1所示。
當(dāng)兩個(gè)8位數(shù)做乘法運(yùn)算時(shí),一共需實(shí)現(xiàn)8次加法運(yùn)算和8次移位運(yùn)算。根據(jù)乘數(shù)末位的值來判斷被乘數(shù)是否與原來的部分積相加,運(yùn)算從乘數(shù)的最低位開始,如果乘數(shù)=1,則需要加上被乘數(shù)右移一位,然后形成新的部分積,同時(shí)把乘數(shù)右移一位;如果乘數(shù)=0,則需要加上零值后右移一位,然后形成新的部分積,同時(shí)將乘數(shù)右移一位,等到運(yùn)算到乘數(shù)的最高位結(jié)束,得到最終的乘積結(jié)果。
為方便實(shí)現(xiàn),將8位移位相加乘法器分為五個(gè)功能模塊,如圖2所示。
圖1 簡(jiǎn)單并行乘法器仿真結(jié)果
圖2 8位移位相加乘法器原理框圖
每個(gè)模塊分別用VHDL描述,而頂層設(shè)計(jì)實(shí)體則用元件例化方式來完成。
主控模塊:根據(jù)輸入時(shí)鐘控制各模塊運(yùn)行。其仿真波形如圖3所示。
鎖存器:在時(shí)鐘信號(hào)的作用下,移位鎖存輸入的值。其仿真波形如圖4所示。
圖4 鎖存器模塊仿真圖
移位寄存器:將乘法運(yùn)算中的被乘數(shù)加載于移位寄存器當(dāng)中,在同一時(shí)間進(jìn)行乘法的移位操作運(yùn)算。其仿真波形如圖5所示。
乘1模塊:實(shí)現(xiàn)8位與1位的乘法運(yùn)算。其仿真波形如圖6所示。
加法器模塊:進(jìn)行操作數(shù)的加法運(yùn)算。其仿真波形如圖7所示,頂層設(shè)計(jì)仿真結(jié)果如圖8所示。
圖5 移位寄存器模塊仿真圖
圖6 乘法器仿真圖
圖7 8位加法器仿真圖
圖8 8位移位相加乘法器仿真圖
移位相加乘法器所需的硬件資源較少,但是運(yùn)行速度較慢。相比較于移位相加乘法器,加法器樹乘法器運(yùn)算速度較快。它使用的加法器數(shù)目等于操作數(shù)位數(shù)減1,加法器精度為操作數(shù)位數(shù)的2倍,需要的與門數(shù)等于操作數(shù)的平方。因此8位移位相加乘法器需要7個(gè)16位加法器和64個(gè)與門。加法器樹乘法器的原理如圖9所示、仿真結(jié)果如圖10所示。
圖9 加法器樹乘法器原理示意圖
本次設(shè)計(jì)中三個(gè)乘法器在建立工程時(shí)均選用Altera公司生產(chǎn)的EP1C6Q240C8芯片,比較三個(gè)不同乘法器在占用邏輯單元,占用管腳和運(yùn)算速度上的不同,結(jié)果如表1所示。簡(jiǎn)單的并行乘法器運(yùn)算速度快,實(shí)現(xiàn)代碼簡(jiǎn)單明了。移位相加乘法器所耗資源相對(duì)較少但運(yùn)算速度比較慢,加法器樹乘法器汲取了移位相加與簡(jiǎn)單并行乘法器的優(yōu)點(diǎn),運(yùn)算速度快,但是卻增加了芯片資源耗用。
圖10 加法器樹仿真結(jié)果
表1 乘法器比較
乘法器是現(xiàn)代數(shù)字系統(tǒng)中的重要邏輯器件,在很多應(yīng)用中都會(huì)出現(xiàn),例如低通濾波器的設(shè)計(jì)、大概率的運(yùn)算等。本設(shè)計(jì)主要介紹三種乘法器,其中移位相加乘法器和加法器樹乘法器由八位加法器構(gòu)成,并按照時(shí)序邏輯的方式設(shè)計(jì)完成,簡(jiǎn)單的并行乘法器運(yùn)用乘法運(yùn)算符實(shí)現(xiàn),通過比較三種的運(yùn)算速度,占用資源不同得出在工程實(shí)踐中如何選擇相應(yīng)的乘法器。隨著人類生活水平的提高和科研生產(chǎn)對(duì)運(yùn)算速度要求的提升,人們也在追求性能高度集中的多功能乘法器。例如:在最新研究的處理器中乘法器除了直接作為運(yùn)算部件之外,還具有加速地址轉(zhuǎn)換、數(shù)組尋址和執(zhí)行其他整數(shù)操作等功能。
[1]朱霞,柴志雷,須文波.基于FPGA的數(shù)字濾波器乘法模塊改進(jìn)[J].計(jì)算機(jī)仿真,2009,26(1):335-338.
[2]任思穎.JPEG2000中5/3離散小波多層變換FPGA實(shí)現(xiàn)研究[J].現(xiàn)代電子技術(shù),2011,34(12):75-77.
[3]溫鋒,李錦明.基于FPGA的激光陀螺信號(hào)高速解調(diào)濾波設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(1):90-92.
[4]蔣昊,李哲英.基于多種EDA工具的FPGA設(shè)計(jì)流程[J].微計(jì)算機(jī)信息,2007,23(32):201-203.
[5]閆春娟,陳琦.面向數(shù)字通信系統(tǒng)的EDA實(shí)驗(yàn)教學(xué)改革與實(shí)踐[J].微計(jì)算機(jī)應(yīng)用,2011,32(4):66-70.
[6]趙輝.基于EDA技術(shù)的數(shù)字系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,20(2):34-37.
[7]魏娜,王慧瑩.EDA技術(shù)在電子設(shè)計(jì)中的應(yīng)用[J].黑龍江科學(xué),2014,5(3):267.
[8]譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].3版.西安:西安電子科技大學(xué)出版社,2011:112-114.
[9]齊京禮,宋毅芳,陳建泗.VHDL語言在FPGA中的應(yīng)用[J].微計(jì)算機(jī)信息,2006,22(35):149-151.
[10]王彩鳳,李衛(wèi)兵,卞麗.VHDL語言在電子設(shè)計(jì)中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2014,12(4):65-67.
(責(zé)任編輯:李堆淑)
Design and Comparison of Multiplier Based on VHDL
ZHAO Jie
(CollegeofElectronic Informationand ElectricalEngineering,ShangluoUniversity,Shangluo 726000,Shaanxi)
Multiplier is the core of digital signal calculation.It is also the key component of data processing and microprocessor.8-bits multiplier is taken as the example.The simple parallel multiplier,the shift summation multiplier and the addition tree multiplier were introduced.They were described using VHDL.The three kinds of multipliers are simulated respectively through the Quartus II platform.Their simulation results were given.At the end of paper,the three multipliers were compared and discussed in the resource occupancy and operation speed.
multiplier;shift summation;addition tree;simulation
TP332.22
A
1674-0033(2015)06-0003-04
10.13440/j.slxy.1674-0033.2015.06.001
2015-10-12
商洛學(xué)院教育教學(xué)改革研究項(xiàng)目(13JYJX139)
趙杰,男,陜西漢中人,碩士,講師