何艷霞 何永泰
(楚雄師范學(xué)院物理與電子科學(xué)系,云南 楚雄 675000)
FPGA低功耗的設(shè)計(jì)研究*
何艷霞 何永泰
(楚雄師范學(xué)院物理與電子科學(xué)系,云南 楚雄 675000)
本文根據(jù)串行、并行兩種算法,利用VHDL語言設(shè)計(jì)八位加法器,分析研究不同算法對(duì)基于FPGA設(shè)計(jì)特性的影響。所設(shè)計(jì)的兩種加法器,在QuartusⅡ7.2中基于EPM240F100C5進(jìn)行了功耗、運(yùn)行速度、邏輯單元占用等性能的分析。分析與實(shí)驗(yàn)結(jié)果表明,不同算法會(huì)對(duì)設(shè)計(jì)系統(tǒng)的特性產(chǎn)生影響,所設(shè)計(jì)的并行加法器對(duì)FPGA邏輯單元、動(dòng)態(tài)功耗的占用與串行加法器相比占用資源少,功耗低,具有較好的特性。
VHDL程序;低功耗;邏輯單元;設(shè)計(jì)方法
基于FPGA設(shè)計(jì)的數(shù)字系統(tǒng)中,降低FPGA的功耗可帶來許多好處,例如提高系統(tǒng)的工作速度,縮短運(yùn)行時(shí)間、降低使用成本、減小器件的體積、延長電池的使用壽命,同時(shí)低功耗的器件可以延長器件的使用時(shí)間和實(shí)現(xiàn)更低成本的電源供電系統(tǒng)。而影響FPGA設(shè)計(jì)系統(tǒng)功耗的因素有很多,例如系統(tǒng)的工作電壓,在FPGA中占用資源的大小等。在本文,為研究不同算法對(duì)FPGA系統(tǒng)特性的影響不同,根據(jù)串、并行算法,利用VHDL語言設(shè)計(jì)了兩種不同算法加法器,并對(duì)其特性進(jìn)行了分析。
在二進(jìn)制加法器中常用的主要有并行加法器和串行加法器兩種[1]。設(shè)計(jì)中使用8位串行與并行加法器。
8位串行加法器是將8個(gè)全加器作為一個(gè)基本組件級(jí)聯(lián)構(gòu)成的,運(yùn)算時(shí)低位的加數(shù)與被加數(shù)相加運(yùn)算求得和與進(jìn)位,將和輸出,但是求得的進(jìn)位需傳給下一位的全加器?;具\(yùn)算結(jié)構(gòu)如圖1所示[2]。在圖中,低位全加器進(jìn)位輸出端直接與相鄰的高一位全加器的進(jìn)位輸入端相連,只有上一位全加器加法運(yùn)算完成時(shí)下一位的全加器加法運(yùn)算才能進(jìn)行。
圖1 8位串行加法器結(jié)構(gòu)圖
根據(jù)8位串行加法器的運(yùn)算結(jié)構(gòu)圖,可得出串行加法器進(jìn)位表達(dá)式為:
同時(shí),從8位串行加法器的運(yùn)算結(jié)構(gòu)圖和進(jìn)位表達(dá)式還可以得出運(yùn)算結(jié)果表達(dá)式為:
從上式可知,高位的進(jìn)位產(chǎn)生與相鄰低位的進(jìn)位輸出有關(guān),只有低位的進(jìn)位運(yùn)算完成,與之相鄰的高位的進(jìn)位才能運(yùn)算出。同時(shí)從公式也可得出和的產(chǎn)生也依賴于相鄰低位的進(jìn)位輸出。
8位并行加法器是采用2個(gè)4位的并行加法器級(jí)聯(lián)構(gòu)成的,而4位的加法器則是采用4個(gè)一位的全加器級(jí)聯(lián)成串行加法器。運(yùn)算時(shí)加數(shù)與被加數(shù)相加運(yùn)算求得和與進(jìn)位。參加運(yùn)算的兩個(gè)加數(shù)與被加數(shù)可以直接確定進(jìn)位C的值,不依賴于上一位的低位的進(jìn)位值。因而每一位全加器都可以同時(shí)進(jìn)行加法運(yùn)行求出進(jìn)位?;具\(yùn)算結(jié)構(gòu)如圖2所示[2]。在圖中,低位全加器進(jìn)位輸出端不與高一位全加器的進(jìn)位輸入端相連。8位全加器FA各自產(chǎn)生進(jìn)位在通過并行進(jìn)位產(chǎn)生電路直接算出所有進(jìn)位 (低FA的進(jìn)位輸出直接與并行進(jìn)位產(chǎn)生電路,并不與高位FA的進(jìn)位輸出相連)如圖所示:
圖2 8位并行加法器結(jié)構(gòu)圖
根據(jù)8位并行加法器的運(yùn)算結(jié)構(gòu)圖,從而可得出下面的進(jìn)位表達(dá)式:
從8位并行加法器的運(yùn)算結(jié)構(gòu)圖和進(jìn)位表達(dá)式還可以得出運(yùn)算結(jié)果表達(dá)式為:
從上式可知,所有位的進(jìn)位的產(chǎn)生都不依賴與低位的進(jìn)位。
在設(shè)計(jì)中,根據(jù)VHDL語言程序的結(jié)構(gòu)特點(diǎn),采用元件例化語句實(shí)現(xiàn)八位加法器串行與并行的設(shè)計(jì),在元件例化語句中,主要分為兩個(gè)文件,插入一個(gè)一位加法器、插入一個(gè)四位加法器以及頂層文件,各層之間通過信號(hào)傳遞值。
在該方法中,采用VHDL語言的元件例化語句描述方式來實(shí)現(xiàn)FPGA低功耗的設(shè)計(jì)。在設(shè)計(jì)程序時(shí),首先要先定義全加器頂層設(shè)計(jì)元件端口信號(hào),即輸入端口:A,B,數(shù)據(jù)類型定義為IN STD_LOGIC_VECTOR。CIN是輸入的進(jìn)位,數(shù)據(jù)類型也定義為IN STD_LOGIC;輸出端口:S為和,數(shù)據(jù)類型被定義為OUT STD_LOGIC。CO為輸出的進(jìn)位。定義好端口后要在結(jié)構(gòu)體中申明一位全加器最為各層之間的信號(hào)傳遞值。其中每一個(gè)全加器都定義了1個(gè)信號(hào)C作為器件內(nèi)部的連接線,最后采用映射語句port map()將8個(gè)一位的全加器連接起來構(gòu)成一個(gè)完整的全加器[3]。在編寫程序時(shí)要注意低位全加器進(jìn)位輸出端作為高一位全加器的進(jìn)位輸入端,每前一位的全加器加法運(yùn)算完成后后一位的全加器的加法運(yùn)算才能進(jìn)行。
仿真波形如圖所示:
圖3 8位串行加法器的仿真結(jié)果圖
仿真結(jié)果顯示:
該設(shè)計(jì)是正確的,輸出的值與理論值一致。仿真圖顯示出和值小于256時(shí)全加器的CO沒有進(jìn)位,而當(dāng)和值加到256,CO=1,S輸出0。
在該方法中,因?yàn)镕PGA是現(xiàn)場可編程門陣列,其基本單元是查找表,采用查找表的可以快速實(shí)現(xiàn)加法功能,即可以直接實(shí)現(xiàn)并聯(lián)加法功能。所以8位并行加法器采用VHDL語言的元件例化語句描述方式來實(shí)現(xiàn)FPGA低功耗的設(shè)計(jì)。其中利用元件例化語句調(diào)用了4位并行加法器生成的底層文件,隨后把這兩個(gè)加法器進(jìn)行級(jí)聯(lián)實(shí)現(xiàn)運(yùn)算功能,最后將結(jié)果的最高位賦值給進(jìn)位輸出端CO8。在設(shè)計(jì)程序時(shí),首先要先定義8位全加器頂層設(shè)計(jì)元件端口信號(hào),即輸入端口:A,B,C數(shù)據(jù)類型都被定義為IN STD_LOGIC_VECTOR。輸出端口:S為和,數(shù)據(jù)類型定義為OUT STD_LOGIC。CO為輸出的進(jìn)位。定義好端口后,在結(jié)構(gòu)體中才能運(yùn)用元件例化語句作為各層之間的信號(hào)傳遞值。在整個(gè)設(shè)計(jì)中定義了2個(gè)信號(hào)C1,C2作為器件內(nèi)部的連接線,最后采用映射語句port map()將2個(gè)4位二進(jìn)制全加器連接起來構(gòu)成一個(gè)完整的全加器。在編寫VHDL程序時(shí),低4位的全加器進(jìn)位輸出端連到高4位全加器的進(jìn)位輸入端,各位全加器可以同時(shí)進(jìn)行加法運(yùn)算。
仿真波形如圖所示:
圖4 8位并行加法器的仿真結(jié)果圖
仿真結(jié)果顯示:
該設(shè)計(jì)是成功的,輸出的值與理論值一致。仿真圖顯示0到255之間的和值全加器的CO沒有進(jìn)位,而當(dāng)和值加到256,CO=1,S輸出0,當(dāng)加到的和值大于256,CO=1,S輸出為和與256的差。
為了分析不同算法設(shè)計(jì)的加法器在FPGA中實(shí)現(xiàn)的特性,分別在MAXⅡ系列下的EPM240F100C5器件中,利用QuartusⅡ7.2對(duì)兩種不同設(shè)計(jì)的加法器VHDL程序分別進(jìn)行邏輯單元的占用的大小、時(shí)鐘速度及功耗等的結(jié)果分析。仿真之后主要選擇了兩組結(jié)果進(jìn)行比較。分析結(jié)果如表1、表2所示。從分析結(jié)果中可以看出,在并行加法器中,邏輯單元的占用、總功耗和動(dòng)態(tài)功耗與串行加法器相比較分別減少了2.5%、0.358mw和1.06mw,運(yùn)行速度提高了1.369ns。表明并行加法器設(shè)計(jì)有利于減少器件資源的占用與提高工作速度。
表1 分析結(jié)果比較
表2 分析結(jié)果比較
根據(jù)實(shí)驗(yàn)和仿真結(jié)果的分析,利用VHDL語言設(shè)計(jì)的串行與并行加法器其對(duì)FPGA特性的影響不同。通過比較,利用并行加法器,所使用的邏輯單元、動(dòng)態(tài)功耗與串行加法器相比較分別減少了2.5%和1.06mw,運(yùn)行速度提高了1.369ns。因此,并行加法器設(shè)計(jì)有利于減少器件資源的占用與提高工作速度。
[1]馬龍.8位加法器實(shí)現(xiàn)原理 [C].http://202.115.21.138/wlxt/ncourse/EDA/web/zhidao/EDA41.htm.2003.1~4.
[2]丁洪鑫,秦磊華.組成原理課下報(bào)告_8位并串行加法器 [R].組成原理課下實(shí)踐報(bào)告,2011.2~3.
[3]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程 [M].科學(xué)出版社,2002.1~3.
[4]周奇勛,王勉華,樂春峽 [J].基于FPGA的VHDL語言設(shè)計(jì)優(yōu)化.儀器儀表學(xué)報(bào),2003.24(4).1~5.
[5]趙亞威,吳海波.基于fpga的快速加法器的設(shè)計(jì)與實(shí)現(xiàn) [J].現(xiàn)代電子技術(shù),2005.28(10).1~2.
[6]褚振勇,翁木云.FPGA設(shè)計(jì)及應(yīng)用 [M].西安:西安電子科技大學(xué)出版社,2002.154~167.
[7]安印龍,許琪,楊銀堂.并行加法器的研究與設(shè)計(jì) [J].晉中學(xué)院學(xué)報(bào),2003,(4).1~2.
[8]雷伏容,李俊,尹霞.速加法器的設(shè)計(jì) (1)[M].清華大學(xué)出版社,2010.1~2.
Research of FPGA Low Power Consumption Design
HE Yan-xia;HE Yong-tai
(Department of Physics and Electronic Science,Chuxiong Normal University,Chuxiong 675000,China)
According to serial and parallel algorithm,the influences of different algorithm on FPGA design characteristics are analyzed by using VHDL language 8 bits adders in this paper.Two adders are analyzed in QuartusⅡ7.2 based on EPM240F100C5 to test power consumption,running speed and logic cells occupancy.The results show that the parallel adder has lower power consumption,lesser occupancy of FPGA logic cells and dynamic power compared with serial adder.
VHDL program;low power consumption;logic cell;adder
TN741
A
1671-7406(2012)06-0022-04
2012-04-25
何艷霞 (1989—),云南姚安人,大學(xué)本科,電信2008級(jí)學(xué)生。
(責(zé)任編輯 司民真)