高精度頻率計設(shè)計_第1頁
高精度頻率計設(shè)計_第2頁
高精度頻率計設(shè)計_第3頁
高精度頻率計設(shè)計_第4頁
高精度頻率計設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、摘要頻率測量在電工程中應(yīng)用廣泛,目前市場上產(chǎn)品非常多,該設(shè)計重點考慮產(chǎn)品的成本和可靠性問題,通過采用功能芯片簡化電路,完成主電路設(shè)計,以及顯示功能,簡化電路后可以較好的改進系統(tǒng)的可靠性。該頻率計具有電路結(jié)構(gòu)簡單、成本低、測量方便、精度較高等特點,適合測量低頻信號。系統(tǒng)簡單可靠、操作簡易,能基本滿足一般情況下測量的需求。既保證了測頻精度,又使系統(tǒng)具有較好的實時性。隨著電子信息產(chǎn)業(yè)的發(fā)展,信號作為其最基礎(chǔ)的元素,其頻率的測量在科技研究和實際應(yīng)用中的作用日益重要,而且需要測頻的范圍也越來越寬,測頻的精度也越來越高。傳統(tǒng)的頻率計通常采用組合電路和時序電路等大量的硬件電路構(gòu)成,產(chǎn)品不但體積較大,運行速度

2、慢,而且測量范圍低,精度低。隨著對頻率測量的要求的提高,傳統(tǒng)的測頻的方法在實際應(yīng)用中已不能滿足要求。因此,我們需要尋找一種新的測頻的方法。基于FPGA的高精度頻率計設(shè)計,采用Verilog HDL作為編程語言,使用Quartus2軟件對系統(tǒng)的進行仿真與編程,所有頻段均采用直接測頻法對信號頻率進行測量,克服了逼近式換擋速度慢的缺點。關(guān)鍵詞:高精度頻率計,FPGA,電子設(shè)計自動化ABSTRACTFrequency meter is a kind of electronic instrument applied widely. A kind of high-accuracy digital freq

3、uency meter is designed based on FPGA in this paper.At present extends the scope,the high accuracy digital frequency meter's design method to use the monolithic integrated circuit to add, the special-purpose counter chip mostly to realize high speed.The design of system hardware and system softw

4、are is accomplished in the paper. System consists of FGPA and MCU. The circuit based on FPGA includes following some parts: data acquisition module, interface between FPGA and MCU, module scanning number tube. Every circuit module is realized by verilog.The platform of development is Quartus II and

5、all modules procedure is demonstrated by compiling and simulation. Detailed research of design flow, model establishment and system simulation is done. The correctness of the system is demonstrated. The software based on MCU is programmed by C51.In this design takes the systems control by the FPGA c

6、omponent the core, its nimble scene alterability, may dispose ability again, is convenient to system's each kind of improvement, in does not change in hardware circuit's foundation also to be possible to further enhance system's performance.The system has the advantage of high-a ccuracy

7、and convenience. Its practicability of frequency meter is well.KEY WORDS: Frequency meter, MCU, FPGA, electronic design automation摘要. I ABSTRACT . I I 第1章緒論. (11.1 選題依據(jù)及意義 (11.2 本課題研究內(nèi)容 (1第2章 FPGA與VHDL (12.1 FPGA簡介 (12.2 EP1K 30相關(guān)說明 (31.3 VHDL 概述 (3第3章頻率計的設(shè)計原理 (33.1設(shè)計要求 (33.2測量方案 (43.3頻率計的設(shè)計原理及框圖 (5

8、第4章系統(tǒng)硬件電路的設(shè)計 (64.1設(shè)計要求 (64.2系統(tǒng)框圖 (64.3各模塊在電路中的作用 (74.3.1分頻器 (74.3.2信號放大、波形整形電路 (84.3.3控制門 (84.3.4計數(shù)器 (84.3.5鎖存器 (94.3.6顯示譯碼器與數(shù)碼管 (104.4頻率計主體電路原理圖 (10第5章軟件設(shè)計 (125.1 VERILOG HDL語言簡介 (125.2 FPGA內(nèi)部功能模塊設(shè)計 (135.3模塊的功能 (135.3.1 模塊FEN (135.3.2 模塊SEL (145.3.3 核心模塊 CORNA (155.3.4 模塊 LOCK (185.3.5 模塊 CH (195.3

9、.6 模塊DISP (195.4 軟件的測試 (205.4.1 測試的環(huán)境 (205.4.2 調(diào)試和器件編程 (215.4.3 頻率測試 (22第6章結(jié)論與展望 (23致謝 (24參考文獻 (24附錄. 錯誤!未定義書簽。第1章緒論1.1 選題依據(jù)及意義頻率計是一種基礎(chǔ)測量儀器,到目前為止已有30多年的發(fā)展史。它是計算機、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器,用十進制數(shù)字顯示被測信號頻率的數(shù)字測量儀器。它的基本功能是測量正弦信號、方波信號及其他各種單位時間內(nèi)變化的物理量。在進行模擬、數(shù)字電路的設(shè)計、安裝、調(diào)試過程中,由于其使用十進制數(shù)顯示,測量迅速,精確度高,顯示直觀,經(jīng)常要用到

10、頻率計。頻率計的基本原理是使用一個頻率穩(wěn)定度較高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。通常計算每秒內(nèi)待測信號的脈沖個數(shù),我們稱此時閘門時間為1秒。閘門時間也可以大于或小于1秒。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越長則每測一次頻率的間隔就越長。閘門時間越短,測的頻率值刷新就越快,測得的頻率精度就受影響。如果配以適當(dāng)?shù)膫鞲衅?可以對多種物理量進行測試,比如機械振動的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計件等等。1.2 本課題研究內(nèi)容頻率計是計算機、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。隨著人們文化生活水平的提高,加上現(xiàn)在中國國力的上升,人民在不斷的追求高質(zhì)量生活的同時

11、大都在密切的關(guān)注著我們的民族產(chǎn)業(yè)的發(fā)展前景。而頻率計的發(fā)在雖是一個極小部分但也可以反映出我國民族產(chǎn)業(yè)發(fā)展的現(xiàn)狀。我國在很多的方面都已不是過去那個很貧窮落后的國家,但是關(guān)系著我們國計民生的民族產(chǎn)業(yè)的發(fā)展卻是不盡人意,不能不成為今天令人注目的焦點。本論文主要講述了使用FPGA實現(xiàn)的數(shù)字頻率計,它采用VHDL語言編程,用MaxplusII集成開發(fā)環(huán)境進行波形仿真,編譯,并下載到FPGA中。正是因為數(shù)字頻率計的應(yīng)用是如此的廣泛,才使得它的作用是如此的重要,所以更應(yīng)該去關(guān)注和研究。第2章 FPGA與VHDL2.1 FPGA簡介FPGA是英文Field Programmable Gate Array的縮寫

12、,即現(xiàn)場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。20世紀(jì)80年代中期出現(xiàn)的高密度可編程邏輯器件,它一般由布線資源分隔的可編程邏輯單元構(gòu)成陣列,又由可編程I/O單元圍繞陣列構(gòu)成整個芯片,排列陣列的邏輯單元由布線通道中的可編程內(nèi)連線連接起來實現(xiàn)一定的邏輯功能的。一個FPGA包含大量的具有高速系統(tǒng)速度的邏輯門、寄存器和I/O接口組成。FPGA作為專用集成電路(ASIC領(lǐng)域里的一種半定制電路而出現(xiàn),不僅解決了定制電路的不足,而且還克服了原有可編程器件門電路數(shù)量有限的缺點。FPGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一,其特點主要有:(1采用FPG

13、A設(shè)計ASIC,不需要投片生產(chǎn),設(shè)計周期短、開發(fā)費用低、風(fēng)險小;(2FPGA可做其他全定制或半定制ASIC電路的中試樣片;(3FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳;(4FPGA采用高速CHMOS工藝,功耗低,可以與CMOS, TTL電平兼容。隨著可編程邏輯技術(shù)的不斷進發(fā)展和進步,FPGA已被廣泛應(yīng)用于航天、通信、醫(yī)療、汽車、工業(yè)控制等領(lǐng)域。由于其現(xiàn)場邏輯功能可重構(gòu)而且具有高集成度、高密度和高性能等特點,因此得到了迅猛發(fā)展。FPGA芯片所包含的資源越來越豐富,可應(yīng)用于更多領(lǐng)域,實現(xiàn)更多的功能,這使得FPGA在電子電路設(shè)計中越來越重要。目前FPGA已經(jīng)滲透到人們?nèi)粘I畹母鱾€方面,在手機、電視、

14、數(shù)碼相機、洗衣機、電冰箱、空調(diào),甚至電飯鍋、手表里,都有它們的身影。在工業(yè)自動化控制、通信、儀器儀表、汽車、船舶、航空航天、軍事設(shè)備、消費類電子產(chǎn)品等領(lǐng)域更是它們的天下。FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特點外還有一下幾個優(yōu)點:隨著超大規(guī)模集成電路VLSI工藝的不斷提高,一個芯片內(nèi)容納的晶體管就可以達百萬以上;FPGA/CPLD芯片出廠前100%都做過測試,不需要設(shè)計人員承擔(dān)風(fēng)險和費用;用戶可以反復(fù)地編程、擦除、使用或者在外圍電路不動的的情況下,用不同軟件就可實現(xiàn)不同的功能,用FPGA/CPLD試制樣片,能以最快的速度占領(lǐng)市場。FPGA/CPLD軟件包中有各種輸入

15、工具、仿真工具、版圖設(shè)計及編程器等全線產(chǎn)品,使電路設(shè)計人員在較短的時間內(nèi)就可以完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。2.2 EP1K 30相關(guān)說明EP1K 30隸屬于Altera公司生產(chǎn)的ACEX1K系列產(chǎn)品,此系列集成度從幾萬門到幾十萬門,具有以下一些特點:(1高密度。10000到100000典型門。(2功能強大的I/O引腳。每一個引腳都是獨立的三態(tài)門結(jié)構(gòu),可控制其可編程速率。(3嵌入式陣列塊(EAB。每個EAB提供2K比特位,可用作存儲器使用也可用來實現(xiàn)一般的邏輯功能。(4邏輯單元采用查找表(LUT結(jié)構(gòu)。通過快速通道(Fast Track互連,不僅可以提高速度,而且可預(yù)測延

16、時。1.3 VHDL 概述VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng)分成外部(或稱可是部分,及端口和內(nèi)部(或稱不可視部分,既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點通過以上的介紹,可以看出課題中所用的編程語言、采用的可編程邏輯器件對課題有了基本的了解,

17、下面將對設(shè)計的具體方案進行探討。第3章頻率計的設(shè)計原理3.1設(shè)計要求利用最低廉的成本,完成一電機頻率計設(shè)計,要求輸入信號為0-5V或者4-20mA可調(diào),顯示采用LED數(shù)碼管顯示,完成0-50.0Hz范圍內(nèi)頻率的測量和顯示。顯示精度到個位,完成整機設(shè)計,并達到上電工作。該設(shè)計重點內(nèi)容在與控制成本,降低整機損耗。3.2測量方案(1測頻原理選擇目前常用測量頻率原理有三種:直接測量頻率方法、直接與間接測量相結(jié)合的方法和多周期同步測量法。直接測量法是通過測量標(biāo)準(zhǔn)閘門時間內(nèi)待測信號的脈沖數(shù)而計算出待測信號頻率的,它誤差大,但電路簡單;直接與間接測量相結(jié)合的方法及多周期同步測量法測量精度高,但電路復(fù)雜。直接

18、測量法電路簡單,不需要很復(fù)雜的調(diào)試過程,其測量的關(guān)鍵是在秒控制信號,如果有高精度的秒控制信號,其測量誤差可做到很小,因此采用直接測量法比較合理和可行。(2測頻方案選擇頻率計的設(shè)計大致可分為三種方案:方案一:采用小規(guī)模數(shù)字集成電路制作被測信號經(jīng)過放大整形變換為脈沖信號后加到主控門的輸入端,時基信號經(jīng)控制電路產(chǎn)生閘門信號送至主控門,只有在閘門信號采樣期間輸入信號才通過主控門,若時基信號周期為T,進入計數(shù)器的輸入脈沖數(shù)為N,則被信號的測頻率其頻率F=N/T。方案二:采用單片機為控制中心進行測頻控制單片機技術(shù)比較成熟,功能也比較強大,被測信號經(jīng)放大整形后送入測頻電路,由單片機對測頻電路的輸入信號進行處

19、理,得出相應(yīng)的數(shù)據(jù)送至顯示器顯示。采用這種方案優(yōu)點是成熟的單片機技術(shù)、運算功能較強、軟件編程靈活、自由度大、設(shè)計成本也較低、缺點是顯而易見的,在傳統(tǒng)的單片機設(shè)計系統(tǒng)中必須使用許多分立元件組成單片機的外圍電路,整個系統(tǒng)顯得十分復(fù)雜,并且單品機的頻率不能做的很高,使得測量精度大大降低。方案三:采用FPGA作為控制中心的數(shù)字頻率計FPGA的結(jié)構(gòu)靈活,其邏輯單元、可編程內(nèi)部連線和I/O單元都可以由用戶編程,可以實現(xiàn)任何邏輯功能,滿足各種設(shè)計需求,其速度快、功耗低,通用性強,特別適用于復(fù)雜系統(tǒng)的設(shè)計。利用 VHDL(超高速集成電路硬件描述語言 工業(yè)標(biāo)準(zhǔn)硬件描述語言, 采用自頂向下( Top to Dow

20、n和基于庫( Library- based的設(shè)計, 設(shè)計者不但可以不必了解硬件結(jié)構(gòu)設(shè)計, 而且將使系統(tǒng)大大簡化, 提高整體的性能和可靠性。通過三種方案的比較發(fā)現(xiàn),方案三為數(shù)字頻率計設(shè)計的最佳選擇方案。(3三角波、正弦波的測量由于輸入的信號可以是正弦波,三角波。而后面的閘門或計數(shù)電路要求被測信號為矩形波,所以需要設(shè)計一個整形電路則在測量的時候,首先通過整形電路將正弦波或者三角波轉(zhuǎn)化成矩形波。在整形之前由于不清楚被測信號的強弱的情況。所以在通過整形之前通過放大衰減處理。當(dāng)輸入信號電壓幅度較大時,通過輸入衰減電路將電壓幅度降低。當(dāng)輸入信號電壓幅度較小時,前級輸入衰減為零時若不能驅(qū)動后面的整形電路,則

21、調(diào)節(jié)輸入放大的增益,使被測信號得以放大。3.3頻率計的設(shè)計原理及框圖在本次設(shè)計中,采用FPGA作為數(shù)字頻率計的控制中心,通過測量標(biāo)準(zhǔn)閘門時間內(nèi)待測信號的脈沖數(shù)而計算出待測信號頻率的。根據(jù)頻率定義,測量1 s內(nèi)被測信號經(jīng)過的周期數(shù)即為該信號的頻率。因此,本設(shè)計應(yīng)主要解決三個問題:產(chǎn)生一個標(biāo)準(zhǔn)的時鐘信號作為閘門信號;在閘門信號有效時間范圍內(nèi)對輸入的信號進行計數(shù);對所得的數(shù)據(jù)進行處理,并將其顯示。針對上述問題,可以通過以下方法解決:依靠脈沖發(fā)生器產(chǎn)生的標(biāo)準(zhǔn)時鐘信號,產(chǎn)生1s的閘門信號,當(dāng)測頻控制信號發(fā)生器電路產(chǎn)生的1s 的閘門信號為有效電平狀態(tài)時,開始計算被測信號的周期數(shù),當(dāng)閘門信號回到無效電平狀態(tài)

22、時其值即為所求頻率,將得到的結(jié)果保存到鎖存器并轉(zhuǎn)換成相應(yīng)的能夠在七段數(shù)碼顯示管上可以顯示的十進制結(jié)果。這樣,在數(shù)碼顯示管上便能看到計數(shù)結(jié)果。電路系統(tǒng)采用VHDL語言進行描述,采用自頂向下進行設(shè)計, 把系統(tǒng)功能進行逐層的層次分割。在頂層描述內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系,在下一層描述功能塊的邏輯功能以及具體實現(xiàn)形式。根據(jù)圖3-1所示的頻率計的系統(tǒng)原理框圖,開始自頂向下的進行設(shè)計, 編程時分別對控制、計數(shù)、鎖存、譯碼等電路模塊進行VHDL文本描述 ,使每個電路模塊以及器件都以文本的形式出現(xiàn) ,然后通過編譯后把它們生成庫文件 ,并得出相對應(yīng)的符號 ,最后用語言把各自已生成的庫文件的器件的各個

23、端口進行連接,從而形成系統(tǒng)主電路的軟件結(jié)構(gòu)。在以上工作的基礎(chǔ)上 ,再進行波形分析、仿真調(diào)試便完成整個軟件設(shè)計。圖3-1 頻率計的系統(tǒng)原理框圖當(dāng)系統(tǒng)正常工作時, 脈沖發(fā)生器提供1 Hz 的輸入信號,測頻控制信號發(fā)生器對輸入的信號進行轉(zhuǎn)換, 產(chǎn)生計數(shù)信號,通過信號整形電路把被測信號轉(zhuǎn)換成同頻率的矩形波, 送入計數(shù)模塊,然后由計數(shù)模塊對輸入的矩形波進行計數(shù), 并將所得及計數(shù)結(jié)果送入鎖存器中,從而保證系統(tǒng)可以穩(wěn)定地顯示輸出數(shù)據(jù),最后顯示譯碼驅(qū)動電路再將由二進制所表示的計數(shù)結(jié)果轉(zhuǎn)換成相對應(yīng)的可在七段數(shù)碼顯示管上顯示的十進制結(jié)果。第4章 系統(tǒng)硬件電路的設(shè)計4.1設(shè)計要求設(shè)計并制作出一種數(shù)字頻率計,其技術(shù)指

24、標(biāo)如下:(1頻率測量范圍: 0 50.0Hz ;(2輸入電壓幅度: 0-5V 或者4-20mA 可調(diào);(3輸入信號波形:任意周期信號;(4顯示位數(shù):4 位;(5電源: 220V 、50Hz 。4.2系統(tǒng)框圖從數(shù)字頻率計的基本原理出發(fā),根據(jù)設(shè)計要求,得到如圖 4-1所示的電路框圖??驁D中的電源采用 50Hz 的交流市電。市電被降壓、整流、穩(wěn)壓后為整個系統(tǒng)提供直流電源。系統(tǒng)對電源的要求不高,可以采用串聯(lián)式穩(wěn)壓電源電路來實 待測信號 計數(shù)器 譯碼驅(qū)動電路 鎖存器 數(shù)碼管顯示測頻控制信號發(fā)生器 圖 41數(shù)字頻率計框圖 圖 42全波整流與波形整形電路的輸出波形現(xiàn)。本頻率計要求精度不超過1%,即偏差不能超

25、過0.5Hz,可才用市電頻率作為標(biāo)準(zhǔn)頻率,以獲得穩(wěn)定的基準(zhǔn)時間。用它作普通頻率計的基準(zhǔn)信號完全能滿足系統(tǒng)的要求。全波整流電路首先對50Hz交流市電進行全波整流,得到如圖3-2所示100Hz的全波整流波形。波形整形電路對 100Hz 信號進行整形,使之成為如圖2所示 100Hz 的矩形波。波形整形可以采用過零觸發(fā)電路將全波整流波形變?yōu)榫匦尾?也可采用施密特觸發(fā)器進行整形。4.3各模塊在電路中的作用4.3.1分頻器分頻器的作用是為了獲得 1S 的標(biāo)準(zhǔn)時間。電路首先對圖3-1所示的100Hz 信號進行100分頻得到如圖3-2 a所示周期為 1S 的脈沖信號。然后再進行二分頻得到如圖3-2 b所示占空

26、比為50%脈沖寬度為1S的方波信號,由此獲得測量頻率的基準(zhǔn)時間。利用此信號去打開與關(guān)閉控制門,可以獲得在 1S 時間內(nèi)通過控制門的被測脈沖的數(shù)目。4.3.2信號放大、波形整形電路為了使設(shè)計出來的頻率計能測量出不同電平值與不同波形周期信號的頻率,就必須輸入的被測信號進行適當(dāng)?shù)姆糯笈c整形處理,使輸入的被測信號成為可被計數(shù)器正確識別的脈沖信號。被測信號的放大與波形的整形電路作用便在于此。如圖4-3所示,信號放大我們采用一般的運算放大電路,波形整形可以采用施密特觸發(fā)器。 圖 43分頻器的輸出波形4.3.3控制門控制門用于控制輸入脈沖是否送計數(shù)器計數(shù)。它的一個輸入端接標(biāo)準(zhǔn)秒信號,一個輸入端接被測脈沖???/p>

27、制門可以用與門或或門來實現(xiàn)。當(dāng)采用與門時,秒信號為正時進行計數(shù),當(dāng)采用或門時,秒信號為負(fù)時進行計數(shù)。4.3.4計數(shù)器在此系統(tǒng)設(shè)計中,計數(shù)器這一模塊用來對外部的被測信號進行計數(shù),被測信號每一個上升沿都使10進制數(shù)計數(shù)器自加1。另外10進制計數(shù)器具有使能端,清零端及進位端,當(dāng)能端和清零端同時為高電平時計數(shù)器才能正常計數(shù),否則計數(shù)器的值被清零;當(dāng)計數(shù)器的數(shù)值滿1000時,會產(chǎn)生一個進位的脈沖,此脈沖會從進位端C0段輸出。 圖 44 10進制計數(shù)器代碼生成圖生成方式:Verilog HDL設(shè)計中定義七個端口:三個輸入端,四個輸出端。輸入端ENABL為計數(shù)器使能端,當(dāng)此引腳為高電平時計數(shù)器方能正常計數(shù);

28、輸入端CLR為計數(shù)器清零端,當(dāng)CLR為低電平時計數(shù)器的數(shù)值被全部清零;輸入端CLK 為外部被測信號的輸入端;輸出端Q13.0為的計數(shù)器的個位數(shù)值;輸出端Q23.0為計數(shù)器的十位數(shù)值;輸出端Q13.0為計數(shù)器的百位數(shù)值;輸出端CO為計數(shù)器的進位端。圖4.4為代碼的生成圖。4.3.5鎖存器鎖存器這一模塊用來對來自十進制計數(shù)器的輸出的數(shù)值進行鎖定及輸出緩沖,當(dāng)enble的引腳信號為下降沿時使芯片正常傳輸數(shù)據(jù),其他狀態(tài)下信號將被鎖定,數(shù)據(jù)不能被傳送。在確定的時間( 1S 內(nèi)計數(shù)器的計數(shù)結(jié)果(被測信號頻率必須經(jīng)鎖定后才能獲得穩(wěn)定的顯示值。鎖存器的作用是通過觸發(fā)脈沖控制,將測得的數(shù)據(jù)寄存起來,送顯示譯碼器

29、。鎖存器可以采用一般的 8 位并行輸入寄存器,為使數(shù)據(jù)穩(wěn)定,最好采用邊沿觸發(fā)方式的器件。生成方式:Verilog HDL設(shè)計中定義二個端口:一個輸入端CLK(50M信號的輸入端,一個輸出端OUT_1HZ(1HZ控制信號輸出。圖3.1為50M分頻器的代碼生成圖。 圖 45 鎖存器代碼生成圖4.3.6顯示譯碼器與數(shù)碼管顯示譯碼器的作用是把用 BCD 碼表示的 10 進制數(shù)轉(zhuǎn)換成能驅(qū)動數(shù)碼管正常顯示的段信號,以獲得數(shù)字顯示。選用顯示譯碼器時其輸出方式必須與數(shù)碼管匹配。其中sm_seg10, sm_seg11, sm_seg12, sm_seg13, sm_seg14, sm_seg15, sm_se

30、g16, sm_seg17分別對應(yīng)共陽數(shù)碼管的引腳a,b,c,d,e,f,g,dp;sm_seg27.0和sm_sem37.0也是同樣的與共陽數(shù)碼管的引腳相對應(yīng)。生成方式:Verilog HDL設(shè)計中定義六個端口:三個輸入端,三個輸出端。當(dāng)此sm_in13.0,sm_in23.0, sm_in33.0均為四位的數(shù)據(jù)輸入端; sm_seg27.0, sm_seg27.0 ,sm_seg37.0均為八位的數(shù)據(jù)輸出端,圖4-6為代碼的生成圖。 圖 46數(shù)碼管代碼的生成圖4.4頻率計主體電路原理圖頂層電路原理圖如圖4-7所示。文件名Frec_top.bdf。VCCFs INPUT VCC K2INPU

31、T VCCF_inINPUT VCC K1INPUT X15.0OUTPUTp0OUTPUT p1OUTPUTp2OUTPUT p3OUTPUTAlarmOUTPUTNOT inst121ms B ABclk p0p1p2p3TimerinstLoad DIN15.0DOUT15.0reg_16inst3Fx CLR E NAD3.0D7.4D11.8D15.12COUT4cnt10inst4BclkE N CLR XE NT_con inst5Fs K2K1F_inp0p1p2p3D15.0D3.0D7.4D11.8D15.12X15.0(a 原理圖Fs K2K1F_inAlarm X15.

32、0p0p1p2p3Frec_top inst(b 元件符號圖圖 47頻率計主體電路電路頂層原理圖在成功完成底層單元電路模塊設(shè)計仿真后,可根據(jù)圖4-2(a所示的頻率計電路頂層原理圖的設(shè)計文件。該電路圖中Timer (定時信號模塊、T_con (控制信號發(fā)生器模塊、4cnt10(4位十進制計數(shù)器模塊、reg_16(寄存顯示器模塊為前面設(shè)計的底層單元電路模塊。Fs 為系統(tǒng)基準(zhǔn)輸入信號;F_ in 為待測頻率信號;K1、K2為量程選擇開關(guān),K1K2=00時選1檔,K1K2=01時選2檔,K1K2=10時選3檔,K1K2=11時選4檔;p0p1p2p3為量程狀態(tài)顯示驅(qū)動信號和數(shù)碼小數(shù)點位置指示信號,本設(shè)

33、計測試中用4個發(fā)光二極管表示量程狀態(tài)顯示;Alarm 是進位擴展信號,用于超量程提示功能,在超出目前量程檔次時發(fā)出報警信號,驅(qū)動蜂鳴報警器。在QuartusII利用原理圖輸入對頻率計電路頂層原理圖Frec_top.dbf 編譯仿真正確無誤后,即可生成如圖3-1(b所示的元件符號圖。第5章軟件設(shè)計5.1 VERILOG HDL語言簡介HDL(Hardware Description Language是相對于我們所了解的一般計算機語言如C, Pascal而言的一種硬件描述語言。HDL主要應(yīng)用于硬件電子系統(tǒng)設(shè)計的計算機語言,它主要用來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接方式。設(shè)計人員可以利用HDL

34、程序?qū)﹄娐废到y(tǒng)進行描述,規(guī)定其電路結(jié)構(gòu)特征及其行為方式,然后再利用綜合器和適配器把此程序轉(zhuǎn)變成可控制的FPGA或CPLD內(nèi)部結(jié)構(gòu)并完成相應(yīng)邏輯功能的門級或者更底層的結(jié)構(gòu)網(wǎng)文件和下載文件。對FPGA/CPLD 的開發(fā)來講,verilog語言是最普遍和最流行的硬件描述語言之一。下面就對verilog語言進行一下簡單的介紹。verilog HDL是一種硬件描述語言,主要用于數(shù)字電子系統(tǒng)設(shè)計。它允許設(shè)計人員用它來進行各種級別的邏輯電路設(shè)計,還可以用它對數(shù)字邏輯系統(tǒng)的進行仿真驗證、時序分析、邏輯綜合。它是目前應(yīng)用最廣泛的一種硬件描述語言。據(jù)有關(guān)文獻報道,目前在美國使用verilog HDL進行設(shè)計的工程

35、師大約有60000人,全美國有200多所大學(xué)教授用verilog 硬件描述語言的設(shè)計方法。在我國臺灣地區(qū)幾乎所有著名大學(xué)的電子和計算機工程系都講授verilog有關(guān)的課程。從語法結(jié)構(gòu)上看,verilog HDL語言與大家熟知的C語言有許多相似之處,并延續(xù)和借鑒了C語言里面的很多操作符和語法結(jié)構(gòu)。下面列出的是verilog HDL 硬件描述語言在語法結(jié)構(gòu)上的一些主要特點:語法結(jié)構(gòu)上的主要特點:形式化地表示電路的行為和結(jié)構(gòu);借用C語言的結(jié)構(gòu)和語句;可在多個層次上對所設(shè)計的系統(tǒng)加以描述,語言對設(shè)計規(guī)模不加任何限制;具有混合建模能力:一個設(shè)計中的各子模塊可用不同級別的抽象模型來描述;基本邏輯門、開關(guān)級

36、結(jié)構(gòu)模型均內(nèi)置于語言中,可直接調(diào)用; 易創(chuàng)建用戶定義原語(UDP ,User Designed Primitive 。5.2 FPGA 內(nèi)部功能模塊設(shè)計本軟件的主要功能是用verilog 對FPGA 進行編程,利用其實現(xiàn)所需硬件的結(jié)構(gòu),也就是通常我們所說的“硬件軟做”。源程序的編寫采用自頂向下的編制方法,主要包括頂層文件和各底層文件模塊的設(shè)計。VHDL 是一種硬件描述語言,因此在編寫源程序的時候,必須注意,用verilog 語言所編寫出的程序的流程圖與通常編寫的軟件的流程圖不同,使用該語言編寫的程序流程圖里面的各個進程和各個進程間都是并行的。本程序設(shè)計采用如圖4-1所示的流程結(jié)構(gòu)。設(shè)計從頂層文

37、件開始,將整個系統(tǒng)劃分為控制模塊、信號選擇模塊、基準(zhǔn)時間產(chǎn)生模塊、計數(shù)模塊以及顯示模塊,然后再對各個模塊進行進一步劃分。圖4-1 FPGA 設(shè)計流程圖5.3模塊的功能5.3.1 模塊FEN如圖 5-1 ,通過對 4MHz 時鐘進行分頻以獲得 0.5 Hz 時鐘,為核心模塊 CORNA 提供1s的閘門時間。l ibrary ieee; use ieee.std_logic_1164.all; entity fen is頂層文件system底層文件 dff1 底層文件 serial2pal底層文件 pal2serial底層文件 bin2bcd底層文件counter底層文件 sel底層文件 disp

38、port(clk:in std_logic;q:out std_logic;end fen;architecture fen_arc of fen isbeginprocess(clkvariable cnt: integer range 0 to 3999999;variable x:std_logic;variable x:std_logic; begin if clk'event and clk='1'then 圖 58if cnt<3999999 thencnt:=cnt+1;elsecnt:=0;x:=not x;end if;end if;q<=

39、x;end process;end fen_arc;5.3.2 模塊SEL如圖5-2,該模塊產(chǎn)生數(shù)碼管的片選信號。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel isport(clk:in std_logic;sel:out std_logic_vector(2 downto 0;end sel;architecture sel_arc of sel isbeginprocess(clkvariable cnt:std_logic_vector(2 downto 0;begi

40、nif clk'event and clk='1'thencnt:=cnt+1;end if;sel<=cnt;end process;end sel_arc;5.3.3 核心模塊 CORNA如圖5-3,該模塊是整個程序的核心,它能在1s的閘門時間里完成對被測信號頻率計數(shù)的功能,并通過選擇輸出數(shù)據(jù)實現(xiàn)自動換檔的功能。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna isport(clr,sig,door:in std_logic;alm:out

41、 std_logic;q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0;end corna;architecture corn_arc of corna isbeginprocess(door,sigvariable c0,c1,c2,c3,c4,c5,c6:std_logic_vector(3 downto 0;variable x:std_logic;beginif sig'event and sig='1'thenif door='1'thenif c0<"1001"then

42、c0:=c0+1;elsec0:="0000"if c1<"1001"then c1:=c1+1;elsec1:="0000"if c2<"1001"then c2:=c2+1;elsec2:="0000"if c3<"1001"then c3:=c3+1;elsec3:="0000"if c4<"1001"then c4:=c4+1;elsec4:="0000"if c5<"

43、1001"then c5:=c5+1;elsec5:="0000"if c6<"1001"then c6:=c6+1;elsec6:="0000" alm<='1'end if;end if;end if;end if;end if;end if;end if;elseif clr='0'thenalm<='0'end if;c6:="0000"c5:="0000"c4:="0000"c3:=&quo

44、t;0000"c2:="0000"c1:="0000"c0:="0000"end if;if c6/="0000"thenq3<=c6;q2<=c5;q1<=c4;q0<=c3;dang<="0100" elsif c5/="0000"then q3<=c5;q2<=c4;q1<=c3;q0<=c2;dang<="0011" elsif c4/="0000"then

45、q3<=c4;q2<=c3;q1<=c2;q0<=c1;dang<="0010"elsif c3/="0000"thenq3<=c3;q2<=c2;q1<=c1;q0<=c0;dang<="0001"end if;end if;end process;end corn_arc;5.3.4 模塊 LOCK見圖5-4,該模塊實現(xiàn)鎖存器的功能,在信號L的下降沿到來時將信號A4、A3、A2、A1鎖存。library ieee;use ieee.std_logic_1164.all;e

46、ntity lock isport(l:in std_logic;a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0;q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0;end lock; architecture lock_arc of lock isbeginprocess(lvariable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0;beginif l'event and l='0'thent4:=a4;t3:=a3;t2:=a2;t1:=

47、a1;t0:=a0;end if;q4<=t4;q3<=t3;q2<=t2;q1<=t1;q0<=t0;end process;end lock_arc;5.3.5 模塊 CH如圖5-5,該模塊對應(yīng)于數(shù)碼管片選信號,將相應(yīng)通道的數(shù)據(jù)輸出,其中檔位也通過顯示。library ieee;use ieee.std_logic_1164.all;entity ch isport(sel:in std_logic_vector(2 downto 0;a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0;q:out std_logic

48、_vector(3 downto 0;end ch;architecture ch_arc of ch isbeginprocess(selbegincase sel iswhen"000"=>q<=a0;when"001"=>q<=a1;when"010"=>q<=a2;when"011"=>q<=a3;when"111"=>q<=dang;when others=>q<="1111"end case;

49、end process;end ch_arc;5.3.6 模塊DISP見圖1.6,該模塊為4線七段譯碼器。library ieee;use ieee.std_logic_1164.all;entity disp isport(d:in std_logic_vector(3 downto 0;q:out std_logic_vector(6 downto 0;end disp;architecture disp_arc of disp isbeginprocess(dbegincase d iswhen "0000"=>q<="0111111"

50、when "0001"=>q<="0000110"when "0010"=>q<="1011011"when "0011"=>q<="1001111"when "0100"=>q<="1100110"when "0101"=>q<="1101101"when "0110"=>q<="1111101

51、"when "0111"=>q<="0100111"when "1000"=>q<="1111111"when "1001"=>q<="1101111"when others=>q<="0000000"end case;end process;end disp_arc;5.4 軟件的測試5.4.1 測試的環(huán)境此頻率計的VHDL設(shè)計在Altera公司的Quartus II開發(fā)平臺下進行了編譯和仿真,它

52、是在clk0輸入10 MHz方波,clkx輸入周期為156ms(頻率為6.41KHz 方波,分頻系數(shù)C0取15000時的仿真波形。QuartusII具有完全集成化的易學(xué)、易用的可視化環(huán)境,還有具有工業(yè)標(biāo)準(zhǔn)EDA工具接口,并且可以運行在多種操作平臺上,使QuartusII提供了豐富的邏輯功能庫、模塊庫以及參數(shù)化的兆功能供設(shè)計者使用。它還具有開放核的特點,允許設(shè)計人員添加自己的宏功能模塊。充分利用這些邏輯功能模塊,可大大減少設(shè)計工作量。QuartusII由設(shè)計輸入、項目編譯、項目檢驗和器件編程等四部分組成。設(shè)計輸入主要有文本編輯器、圖形編輯器、符號編輯器、波形編輯器以及第三方EDA 工具生成的設(shè)計

53、網(wǎng)表文件輸入等,輸入方式不同,生成的設(shè)計文件也不同。編譯設(shè)計項目主要是根據(jù)要求設(shè)計參數(shù)和編譯策略,如選定其間、鎖定引腳等等,然后對項目進行網(wǎng)表提取、邏輯綜合、器件適配,產(chǎn)生報告文件,供分析仿真及編程用。項目檢驗方法包過功能仿真、模擬仿真和定時分析,編程驗證是將仿真后的目標(biāo)文件編入所選定的Altera可編程邏輯器件中,然后加入實際激勵信號進行測試,檢查是否達到要求。5.4.2 調(diào)試和器件編程將各個模塊的源文件程序代碼輸入文本文件,編譯運行項目成功后,把各個模塊放在一起形成頂層設(shè)計文件,對項目進行邏輯綜合,然后將項目的設(shè)計結(jié)果加載到Altera器件中;成功編譯以后,進入到模擬仿真時段,設(shè)置好完成時

54、間和網(wǎng)絡(luò)間距,在列出輸入輸出信號等等,進行波形編輯在模擬器運行成功;啟動定時 分析工具,對傳播延遲、時序電路性能、建立和保持時間等進行分析順利后,就可以開始器件編程了。通過利用ByteBlaster電纜與微機并行口相連,接通EL實驗箱電源,打開QuartusII編程器窗口,將器件編程文件調(diào)出,確保與電路板順序相同。設(shè)置完成后選擇Program按鍵,對器件鏈進行編程。管腳定義如圖5-所示。青島理工大學(xué)畢業(yè)設(shè)計(論文) 5.4.3 頻率測試 系統(tǒng)的測試主要是測試硬件是否能正常工作,軟件和硬件是否匹配,是否合 乎設(shè)計的要求。在頻率測試過程中,系統(tǒng)的測量范圍系統(tǒng)的精度是兩個較重要的 指標(biāo)。系統(tǒng)的測量結(jié)果如實物圖 4-1 22 青島理工大學(xué)畢業(yè)設(shè)計(論文) 第6章 結(jié)論與展望 在本次畢業(yè)設(shè)計中,我較全面的回顧了大學(xué)四年所學(xué)習(xí)硬件和軟件知識,了 解了 FPGA 高精度頻率計的工作原理及用途,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論