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