鐘強,劉鵬飛,劉寶軍,胡宗進,秦緒棟
(煙臺大學(xué),煙臺 264005)
基于FPGA的同步計數(shù)器的優(yōu)化結(jié)構(gòu)分析*
鐘強,劉鵬飛,劉寶軍,胡宗進,秦緒棟
(煙臺大學(xué),煙臺264005)
在數(shù)字信號處理中,同步計數(shù)器是一種非常重要的器件,在很多場所會用到。在基于現(xiàn)場可編程門陣列(FPGA)器件的開發(fā)過程中,人們往往不會注意所用到的同步計數(shù)器內(nèi)部的具體設(shè)計。本文從資源利用率和速率兩個方面,對FPGA開發(fā)綜合工具自動綜合出來的同步計數(shù)器進行分析,并且提出一種結(jié)構(gòu)優(yōu)化的同步計數(shù)器,并將兩種同步計數(shù)器進行對比,得出了兩者的優(yōu)缺點及適用的場合。
同步計數(shù)器;FPGA;資源利用率;速率
計數(shù)是一種最簡單基本的運算,計數(shù)器就是實現(xiàn)這種運算的邏輯電路,計數(shù)器在數(shù)字電路系統(tǒng)中主要是對脈沖的個數(shù)進行計數(shù),以實現(xiàn)測量、計數(shù)和控制的功能[1]。在FPGA設(shè)計中,同步計數(shù)器無處不在,往往被大量的應(yīng)用。作為最基本的邏輯電路,計數(shù)器的性能直接影響整體電路的性能,甚至?xí)Q定項目的成敗。
在FPGA設(shè)計中,同步計數(shù)器的設(shè)計有多種方法,可以自己設(shè)計,也可以用Quartus軟件的綜合工具自動綜合出來。本文主要從資源和速率兩方面對軟件自動綜合出來的同步計數(shù)器進行分析,并在此基礎(chǔ)上提出一種優(yōu)化的同步計數(shù)器,可以更好地應(yīng)用到FPGA設(shè)計中去。
簡單來說,計數(shù)器就是為了計數(shù),是為某些問題提供一種計量單位,正是因為有了數(shù)目的區(qū)分,一切才會顯得更加有條理[2]。在數(shù)字電路中,計數(shù)器主要是記錄脈沖的個數(shù),每到來一個脈沖,計數(shù)器的數(shù)值就會加1,當計數(shù)器計滿時,就會歸零重新計數(shù),同時輸出一個進位信號,如圖1所示。

圖1 同步加法計數(shù)器
計數(shù)器有同步和異步之分,簡單來說,當脈沖到來時,要更新的所有觸發(fā)器同時反轉(zhuǎn)的計數(shù)器是同步計數(shù)器,而要更新的觸發(fā)器有的先翻轉(zhuǎn),有的后翻轉(zhuǎn),這就是異步計數(shù)器[3]。本文主要介紹在FPGA中應(yīng)用最廣泛的同步觸發(fā)器。
首先介紹一下N位的同步計數(shù)器的數(shù)學(xué)模型,如下所示:

式中,QN表示計數(shù)器的每一位輸出值,所有的QN組成了整個計數(shù)器的輸出值count。每一位QN滿足式(2)所示的關(guān)系,clk指的是計數(shù)脈沖,在FPGA中往往是時鐘的上升沿或者下降沿是QN的取反操作,當滿足括號內(nèi)的條件時,就會執(zhí)行。

在FPGA設(shè)計中,計數(shù)器往往需要加上使能功能來控制其是否工作,使能輸入E的每一位和計數(shù)器的輸出QN滿足如下關(guān)系:

把式(2)和式(3)合到一起,可以得到帶有使能功能的計數(shù)器模型,如式(4)所示,這就是同步計數(shù)器的基本原理。

FPGA器件由于其靈活的現(xiàn)場可編輯性,被廣泛應(yīng)用于各種數(shù)字信號處理的場所。FPGA的開發(fā)語言有兩種, Verilog和VHDL各有千秋,從簡單易懂、方便上手的角度出發(fā),人們往往選用Verilog語言。Veriog語言是一種硬件描述性語言,它是以文本形式來描述數(shù)字系統(tǒng)硬件結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能[5-6]。
采用Veriog語言設(shè)計同步計數(shù)器時,僅僅從功能上來描述和設(shè)計該模塊,然后FPGA的編程軟件(例如Quartus)會自動綜合,其內(nèi)部的電路組成往往不去關(guān)注。而計數(shù)器的設(shè)計有很多方法,不同的設(shè)計會直接影響計數(shù)器的性能。
圖2是僅僅從功能上出發(fā),利用Verilog語言編寫的8位同步計數(shù)器,從圖中可以看出,count_out是計數(shù)器的輸出,當計數(shù)器使能,即en_count的值為1的時候,每到來一個上升沿,count_out的值就會加1,這就實現(xiàn)了計數(shù)的功能。
利用Quartus軟件可以得到圖3所示的算法頂層的RTL視圖,但該圖還是無法看出電路的內(nèi)部結(jié)構(gòu)。進一步深入分析,可以得到具體的門級別的電路設(shè)計。在Quartus軟件中,門級的電路視圖過于龐雜,不利于直觀分析,稍加工后得到圖4。
圖4就是要分析的FPGA工具自動綜合出的同步計數(shù)器門級電路圖,從圖中可以看出,它采用的是串行進位的設(shè)計方法。串行的進位設(shè)計,用到的僅僅是兩輸入的與門,比較簡單,容易實現(xiàn)。但是串行的進位方式,產(chǎn)生進位信號的時間較長,需要從低位到高位逐級傳送,花費時間較長。

圖2 同步計數(shù)器的Verilog語言設(shè)計

圖3 同步計數(shù)器的頂層RTL視圖

圖4 同步計數(shù)器的門級電路圖
在FPGA設(shè)計中,數(shù)據(jù)運算的速率是比較看重的一個指標,速率越快,意味著延時越短,對數(shù)據(jù)進行實時處理的能力就越好。在圖4的基礎(chǔ)上進行改進,提出一種并行進位的設(shè)計方法,可以進一步提高運算速率。
在第2節(jié)中,分析了基于串行進位設(shè)計的同步計數(shù)器延時較長,進而提出一種并行進位設(shè)計的同步計數(shù)器,如圖5所示。

圖5 優(yōu)化后的同步計數(shù)器的門級電路圖
在圖5中,電路進位采用并行進位的方式,進位信號不需要再逐級傳送,這樣產(chǎn)生進位信號的時間就會縮短,延遲就會大大縮小。但同時也可以看出,并行進位的方式所需要的與門不僅僅是兩輸入的,隨著計數(shù)器位數(shù)的增加,所用到的與門的輸入端也隨之增加,這無形中加劇了對資源的消耗。
實驗用的FPGA芯片采用Altera公司的Cyclone IV E系列中的EP4CE115F29C7,該芯片邏輯資源豐富,運行時鐘速度快,廣泛地應(yīng)用于數(shù)字信號處理方面。系統(tǒng)編譯軟件采用Altera公司的Quartus II軟件,該軟件是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、Verilog HDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式[7-9]。系統(tǒng)仿真工具選用ModelSim軟件,該軟件屬于Altera公司自主開發(fā)、專門用于FPGA器件的功能仿真,能直觀地看出器件對數(shù)據(jù)處理后的結(jié)果。
首先對兩種同步計數(shù)器的算法進行ModelSim軟件仿真,仿真結(jié)果如圖6、圖7所示。

圖6 未優(yōu)化的同步計數(shù)器仿真圖
從圖6和圖7中可以看出,兩個圖的仿真結(jié)果完全一致,在使能端使能(即en_count=1)之后,每當有上升沿到來時,計數(shù)器就會加1,這就說明優(yōu)化后的算法正確,可以實現(xiàn)計數(shù)的功能。

圖7 優(yōu)化后的同步計數(shù)器仿真圖
然后通過Quartus II軟件查看兩種設(shè)計方法所消耗的資源和速率,圖8是未優(yōu)化的同步計數(shù)器所消耗的資源及運行過程中的最高速率,圖9是優(yōu)化后的同步計數(shù)器所消耗的資源及運行過程中的最高速率。

圖8 未優(yōu)化的同步計數(shù)器資源及速率

圖9 優(yōu)化后的同步計數(shù)器仿真圖
Altera公司的FPGA器件的可編程邏輯資源來自于邏輯陣列塊(LAB),而每個LAB是由多個邏輯宏單元LE (logic elements)組成[10]。LE作為最基本的可編程單元,它的使用量代表了所設(shè)計算法的資源消耗程度。
從圖8和圖9中可以看出,未優(yōu)化的同步計數(shù)器消耗了8個LE,優(yōu)化之后消耗了10個LE,優(yōu)化后的同步計數(shù)器比未優(yōu)化的多使用了25%的資源,這是因為并行進位的方式比串行進位的方式更加復(fù)雜。從運行速率
30
Optimization Structure Analysis of Synchronous Counter Based on FPGA
Zhong Qiang,Liu Pengfei,Liu Baojun,Hu Zongjin,Qin Xudong
(Yantai University,Yantai 264005,China)
In the digital signal processing,the synchronous counter is a very important device,it is used in many fields.In the development of FPGA,the inside specific design of the synchronous counter is not paid attention to.In this paper,the synchronous counter of the automatic synthesis of FPGA development tools is analyzed in two aspects of the resource utilization and the rate,and a kind of synchronous counter with optimized structure is proposed.Finally,the two kinds of synchronous counter are compared,and the advantages and disadvantages are obtained.
synchronous counter;FPGA;resource utilization ratio;rate
TN79
A
煙臺大學(xué)研究生科技創(chuàng)新基金(基金編號:YDYB1615)。