畢業(yè)論文-基于fpga數(shù)字秒表電路的設(shè)計【精校排版】_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p><b>  (20 屆)</b></p><p>  基于FPGA數(shù)字秒表電路的設(shè)計</p><p><b>  目錄</b></p><p><b>  摘要II</b></p><p>

2、  AbstractIII</p><p><b>  第一章 緒論1</b></p><p>  1.1 研究背景1</p><p>  1.2 研究目的和意義1</p><p>  第二章 硬件描述語言VHDL3</p><p>  2.1 VHDL的簡介3</p&

3、gt;<p>  2.2 VHDL語言的特點3</p><p>  2.3 VHDL的基本結(jié)構(gòu)與基本要素4</p><p>  2.3.1 VHDL語言的標(biāo)識符4</p><p>  2.3.2 VHDL語言的客體4</p><p>  2.3.3 VHDL語言的數(shù)據(jù)類型4</p><p&

4、gt;  2.3.4 VHDL 順序語句5</p><p>  2.3.5 VHDL并行語句5</p><p>  2.4 VHDL的設(shè)計流程5</p><p>  2.5 VHDL和MAX+PLUSII在設(shè)計數(shù)字電路中的應(yīng)用5</p><p>  第三章 FPGA概述7</p><p>  3.1

5、 FPGA簡介7</p><p>  3.2 FPGA的發(fā)展應(yīng)用7</p><p>  3.3 FPGA的基本特點8</p><p>  3.4 FPGA在數(shù)字秒表上的應(yīng)用研究8</p><p>  第四章 MAX+PLUSⅡ簡介9</p><p>  4.1 MAX+PLUSⅡ簡介9</

6、p><p>  4.2 MAX+PLUSⅡ的功能9</p><p>  4.3 MAX+PLUSⅡ的主要特點9</p><p>  4.4 使用Max+plusⅡ軟件設(shè)計流程10</p><p>  第五章 數(shù)字秒表的系統(tǒng)設(shè)計及仿真11</p><p>  5.1 系統(tǒng)設(shè)計11</p>&

7、lt;p>  5.1.1 設(shè)計思想11</p><p>  5.1.2 設(shè)計要求(秒表的功能描述)11</p><p>  5.1.3 秒表的面板包括11</p><p>  5.2 頂層電路設(shè)計11</p><p>  5.3 數(shù)字秒表的設(shè)計原理12</p><p>  5.4 各模塊的原

8、理、程序及其仿真13</p><p>  5.4.1 調(diào)整控制電路(主控電路模塊)13</p><p>  5.4.2 鍵輸入模塊電路(含消抖電路)15</p><p>  5.4.3 時鐘分頻電路模塊17</p><p>  5.4.4 計時模塊19</p><p>  5.4.5 顯示譯碼電路模

9、塊23</p><p>  5.4.6 溢出報警控制25</p><p>  5.4.7 VHDL頂層電路描述25</p><p><b>  結(jié) 論27</b></p><p><b>  參考文獻(xiàn)28</b></p><p><b>  附錄2

10、9</b></p><p><b>  致謝37</b></p><p>  基于FPGA數(shù)字秒表電路的設(shè)計</p><p><b>  摘要</b></p><p>  在科技技術(shù)高度發(fā)展的今天,計算機(jī)應(yīng)用及集成電路得到了高速的發(fā)展。數(shù)字秒表是采用數(shù)字電路實現(xiàn)對分、秒,數(shù)字顯示的計時

11、裝置,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字秒表的精確度,遠(yuǎn)遠(yuǎn)超過原來的老式秒表。秒表在很多領(lǐng)域充當(dāng)一個重要的角色。如在各種比賽中對秒表的精確度要求很高,尤其是一些科學(xué)實驗上,對時間的把握度很高。秒表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。本文就是基于FPGA數(shù)字秒表的設(shè)計,在時鐘脈沖信號、狀態(tài)控制等原理設(shè)計出的數(shù)字秒表。以FPGA為核心的數(shù)字秒表,具有集成度高、外圍電路少、可靠性強(qiáng)等特點。</p>&

12、lt;p>  本文以MAX+PLUSⅡ軟件為設(shè)計平臺,以現(xiàn)場可編程門陣列(FPGA)器件為核心,設(shè)計了一個具有數(shù)字系統(tǒng)即帶計時器功能的秒表系統(tǒng),并且通過了數(shù)碼管驅(qū)動電路動態(tài)顯示計時結(jié)果。使用MAX+PLUSⅡ的綜合器和仿真器對系統(tǒng)進(jìn)行了編譯和仿真,并得出了正確的仿真結(jié)果。其展示了VHDL語言的強(qiáng)大功能和優(yōu)秀特性。</p><p>  關(guān)鍵字:數(shù)字秒表;FPGA;MAX+PLUSⅡ;VHDL</p>

13、;<p>  FPGA-based Digital Stopwatch Circuit</p><p><b>  Abstract</b></p><p>  Highly developed technology in technology today, computer application and development of high-spe

14、ed integrated circuits have been. Digital stopwatch is used to realize digital circuits minutes, seconds, the figures show the timing device, due to the development of digital integrated circuits and the extensive applic

15、ation of quartz crystal oscillators, making digital stopwatch accuracy, far more than the original old-fashioned stopwatch. Stopwatch in many areas as an important role. In various co</p><p>  Key words:Digi

16、tal Stopwatch, FPGA, MAX + PLUS Ⅱ, VHDL</p><p><b>  第一章 緒論</b></p><p><b>  1.1 研究背景</b></p><p>  時間在不斷的流逝,當(dāng)它從指尖流走的那一刻我們可曾感到過它的存在呢?從古至今人們就知道了時間的重要性。他們開始尋找和創(chuàng)

17、造可以表示時間的儀器。在公元1300年以前,人們主要是利用天文現(xiàn)象和流動物質(zhì)的連續(xù)運(yùn)動來計時。例如,日晷是利用日影的方位計時;漏壺和沙漏是利用水流和沙流的流量計時。隨著人們生活水平的日益提高,社會體系的日益完善,人們對于各種應(yīng)用器材的要求也越來越高.秒表作為日常生活中常見的儀器,尤其在體育運(yùn)動中應(yīng)用很廣泛,所以秒表的精確性和方便性被人們很好的利用。本秒表計時器用于體育競賽及各種要求較精確的領(lǐng)域。這里設(shè)計的計時器是用一塊專用的芯片,用VH

18、DL語言描述的。它具有開關(guān)、時鐘和顯示功能,其體積小,攜帶方便。以大規(guī)模集成電路為物質(zhì)基礎(chǔ)的EDA技術(shù)終于打破了軟硬件之間最后的屏障,使軟硬件工程師們有了共同的語言[1]。</p><p>  EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫。EDA技術(shù)伴隨著計算機(jī)、集成電路以及電子系統(tǒng)設(shè)計的發(fā)展,經(jīng)歷了計算機(jī)輔助設(shè)計(簡稱CAD)、計算機(jī)輔助工程設(shè)計(簡稱CAE)和電子設(shè)

19、計自動化(簡稱EDA)。</p><p>  EDA技術(shù)是以計算機(jī)為工具,在以EDA軟件為平臺的基礎(chǔ)上,以硬件描述語言HDL為系統(tǒng)邏輯描述手段完成的設(shè)計文件自動地完成邏輯編譯、邏輯分割、邏輯化簡、邏輯行局布線、邏輯綜合及優(yōu)化、邏輯仿真,直到對特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載。目前設(shè)計者僅限于利用軟件的方式來工作,對系統(tǒng)硬件功能的描述要利用硬件描述語言來完成,在利用EDA工具的幫助下得到設(shè)計的結(jié)果。盡管目

20、標(biāo)系統(tǒng)是硬件,但整個設(shè)計和修改過程如同完成軟件設(shè)計一樣方便和高效[2]。</p><p>  1.2 研究目的和意義</p><p>  目的:本文的研究目的是對數(shù)字系統(tǒng)設(shè)計的歷史和現(xiàn)狀進(jìn)行分析,并對數(shù)字秒表的VHDL設(shè)計原理進(jìn)行了深入的研究,并將其綜合。本文設(shè)計了一個基于FPGA的數(shù)字秒表,并在開發(fā)軟件MAX+PLUSⅡ進(jìn)行輸入、編譯、綜合、仿真將其下載到系統(tǒng)可編程實驗板中測試實現(xiàn)。信

21、號源是由實驗板上的時鐘信號經(jīng)分頻而得到的0.0 1 秒信號。設(shè)計采用EDA技術(shù)分為兩步。第一步:在MAXPLUSⅡ開發(fā)工具中 ,用 VHDL語言分別編寫出所要的幾個模塊的文本文件 (也稱底層文件) ,將VHDL的文本文件分別轉(zhuǎn)換為相對應(yīng)的器件,并進(jìn)行仿真,每個器件的時序仿真結(jié)果與設(shè)計要求要一致;其次,將整個數(shù)字秒表作為一個器件進(jìn)行時序仿真。</p><p>  意義:在科技高度發(fā)展的今天,集成電路及計算機(jī)應(yīng)用得到

22、了高速的發(fā)展。尤其是計算機(jī)應(yīng)用的發(fā)展,各種家用電器多會實現(xiàn)電腦技術(shù),電腦各部分在工作時多是以時間為基準(zhǔn)的。本文就是基于FPGA數(shù)字秒表的設(shè)計,在時鐘脈沖信號、狀態(tài)控制等原理設(shè)計出的數(shù)字秒表。秒表在很多領(lǐng)域充當(dāng)一個重要的角色。在各種比賽中對秒表的精確度要求很高,尤其是一些科學(xué)實驗。他們對時間精確度達(dá)到了幾納秒級別。數(shù)字秒表是日常生活中比較常見的電子產(chǎn)品,以其價格低廉、走時精確。使用方便,功能多而倍受廣大用戶的喜歡。如在很多喜慶場合,對某一

23、時刻進(jìn)行倒計時,人們常常使用倒計時秒表。所以研究秒表具有重大的現(xiàn)實意義和理論意義。</p><p>  第二章 硬件描述語言VHDL</p><p>  2.1 VHDL的簡介</p><p>  VHDL(超高集成電路硬件描敘語言)誕生于1982年。是一種用于電路設(shè)計的高級語言。最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計的可靠性和縮減開發(fā)周期的一種使用范圍較

24、小的設(shè)計語言。VHDL主要用于描述數(shù)字系統(tǒng)的行為、結(jié)構(gòu)、接口和功能,非常適合用于可編程邏輯芯片的應(yīng)用設(shè)計。VHDL除具有硬件特征的語句外,其描述風(fēng)格與語言形式和句法類似于一般的計算機(jī)高級語言。VHDL的程序特點是將一項設(shè)計實體(可以是個元件、電路模塊或一個系統(tǒng))分成外部(即端口)和內(nèi)部(即結(jié)構(gòu)體)兩部分,外部負(fù)責(zé)對設(shè)計實體和端口引腳命名和說明,內(nèi)部負(fù)責(zé)對模塊功能和算法進(jìn)行描述。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部結(jié)構(gòu)、功能開發(fā)完

25、成,即可生成共享功能模塊,這就意味著,在頂層綜合或其他設(shè)計中可以直接調(diào)用這個實體模塊。VHDL具有較強(qiáng)的行為描述能力,可避開具體的器件結(jié)構(gòu),從邏輯功能和行為上進(jìn)行描述和設(shè)計[3]。</p><p>  2.2 VHDL語言的特點</p><p>  VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,關(guān)于用VHDL和原理圖輸入進(jìn)行CPLD/FPGA設(shè)計的粗略比較:在設(shè)計中,如果采用原理圖輸入的設(shè)計方

26、式是比較直觀的。你要設(shè)計的是什么,你就直接從庫中調(diào)出來用就行了。這樣比較符合人們的習(xí)慣。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。應(yīng)用 VHDL進(jìn)行工程設(shè)計的優(yōu)點是多方面的。</p><p>  與其他的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語

27、言。</p><p>  VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。</p><p>  VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。</p><p>  對于用

28、VHDL完成的一個確定的設(shè)計,可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。</p><p>  VHDL對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨立的設(shè)計。</p><p>  由于VHDL具有類屬描述語句和子程序調(diào)用等功能,對于完成的設(shè)計,在不改變源程序條件下,只需改變類屬參量或函數(shù),就能輕易

29、地改變設(shè)計的規(guī)模和結(jié)構(gòu)[1]。</p><p>  2.3 VHDL的基本結(jié)構(gòu)與基本要素</p><p>  一個相對完整的VHDL程序通常包含實體(Entity)、結(jié)構(gòu)體(Architecture)、配置(configuration)、程序包(package)和庫(Library)5個部分[4]。</p><p>  2.3.1 VHDL語言的標(biāo)識符</

30、p><p>  VHDL文字主要包括數(shù)值和標(biāo)識符。VHDL的標(biāo)識符是最常用的操作符,可以是常數(shù)、變量、端口、信號、子程序以及參數(shù)的名字。標(biāo)識符分為擴(kuò)展標(biāo)識符與短標(biāo)識符。</p><p>  短標(biāo)識符遵循以下規(guī)則:必須以26個英文字母開頭;字母可以是大寫、小寫、數(shù)字包括0--9和下劃線;下劃線前后都必須有英文字母或數(shù)字。</p><p>  2.3.2 VHDL語言的客

31、體</p><p>  在VHDL語言中,凡是可以賦予一個值的對象叫客體。 VHDL語言客體包含有專門的數(shù)據(jù)類型,主要有4個類別:常量、信號、變量以及文件。</p><p>  常量:常量是設(shè)計者給實體名賦予的固定值,其中的值在運(yùn)行中不改變。通常,常量賦值應(yīng)該在程序開始就進(jìn)行說明,數(shù)據(jù)類型在實體說明語句中指明。</p><p>  信號:信號通常是在構(gòu)造體、程序包以

32、及實體的說明中使用,用來進(jìn)行進(jìn)程中的通信,它是個全局變量。信號是電子電路內(nèi)部硬件實體相互連接的抽象表示。</p><p>  變量:變量只在進(jìn)程語句、函數(shù)語句、過程語句的結(jié)構(gòu)中使用,變量的賦值立即生效,不產(chǎn)生賦值延時,是一個局部量。</p><p>  文件:是傳輸大量數(shù)據(jù)的客體,包含一些專門數(shù)據(jù)類型的數(shù)值。在仿真測試時,輸入的激烈數(shù)據(jù)與仿真結(jié)果的輸出都需要用文件來進(jìn)行[4]。</p

33、><p>  2.3.3 VHDL語言的數(shù)據(jù)類型</p><p>  在VHDL語言中,信號、變量、常數(shù)都要指定數(shù)據(jù)類型,并且只有相同的數(shù)據(jù)類型的量才能互相傳遞和作用。VHDL 的基本類型有:integer(整數(shù))、bit(位)、bit-Vector(位矢量)、Boolean(布爾量)、character(字符)、string(字符串)、time(時間)、real(實數(shù))。 </p&

34、gt;<p>  2.3.4 VHDL 順序語句</p><p>  VHDL有如下基本順序語句 :賦值語句、等待語句、流程控制語句、返回語句、子程序調(diào)用語句、空操作語句。流程控制語句共有五種:IF語句、CASE語句、NEXT語句、LOOP語句、EXIT語句。賦值語句有信號賦值語句和變量賦值語句兩種。</p><p>  2.3.5 VHDL并行語句</p>

35、<p>  結(jié)構(gòu)體中的并行語句主要有七種類型:進(jìn)程語句、塊語句 、并行信號賦值語句、條件信號賦值語句、元件例化語句(其中包括類屬配置語句 )生成語句、并行過程調(diào)用語句。</p><p>  2.4 VHDL的設(shè)計流程</p><p>  VHDL是設(shè)計流程主要包括以下幾個步驟:</p><p>  文本編輯:用任何文本編輯器都可以進(jìn)行,也可以用專用的H

36、DL編輯環(huán)境。通常VHDL文件保存為.vhd文件,Verilog文件保存為.v文件。</p><p>  功能仿真:將文件調(diào)入HDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設(shè)計可以跳過這一步,只在布線完成以后,進(jìn)行時序仿真)</p><p>  邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語言綜合成最簡的布爾表達(dá)式。邏輯綜合軟件會生成.edf或.edif 的ED

37、A工業(yè)標(biāo)準(zhǔn)文件。</p><p>  布局布線:將.edf文件調(diào)入PLD廠家提供的軟件中進(jìn)行布線,即把設(shè)計好的邏輯安放PLD/FPGA內(nèi)。</p><p>  時序仿真:需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗證電路的時序。(也叫后仿真) 通常以上過程可以都在PLD/FPGA廠家提供的開發(fā)工具。</p><p><b>  器件編程[5]。<

38、/b></p><p>  2.5 VHDL和MAX+PLUSII在設(shè)計數(shù)字電路中的應(yīng)用</p><p>  以VHDL為工具的EDA設(shè)計方法與傳統(tǒng)的人工設(shè)計方法相比,有以下幾個優(yōu)點:縮短了開發(fā)周期、提高了效率、產(chǎn)品的質(zhì)量得到了提高。用VHDL進(jìn)行數(shù)字系統(tǒng)開發(fā)與設(shè)計,其設(shè)計的抽象層次有6個,分別是系統(tǒng)級、芯片級、寄存器級、門級、電路級和版圖/硅片級,可以在不同的抽象層次級別上設(shè)計系

39、統(tǒng)。使用MAX+PLUSII作為開發(fā)環(huán)境時應(yīng)該根據(jù)軟件支持的芯片資源情況選擇合適的設(shè)計層次。在VHDL設(shè)計中,常常采用多進(jìn)程描述的方法來進(jìn)行程序設(shè)計,通過使用進(jìn)程可以把整體的功能局部化,分塊設(shè)計,多個進(jìn)程通過進(jìn)程間通信機(jī)制互相配合,達(dá)到設(shè)計要求。當(dāng)進(jìn)程比較多的時候,它們之間的配合問題就比較復(fù)雜,因此在設(shè)計之前應(yīng)該合理規(guī)劃安排[6]。</p><p>  第三章 FPGA概述</p><p&g

40、t;  基于FPGA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,它作為一種高新的技術(shù),在電子信息、通信、自動控制用計算機(jī)等領(lǐng)域電子行業(yè)都無處不在它的身影,因此FPGA重要性日益突出。</p><p>  3.1 FPGA簡介</p><p>  FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。與其他器件相比,它的

41、優(yōu)點是可以實時的對外加或內(nèi)置的RAM或EPROM編程,實時地改變器件功能,實現(xiàn)現(xiàn)場可編程或在線重配置,是科學(xué)實驗、樣機(jī)研制、小批量產(chǎn)品生產(chǎn)的最佳選擇器件。</p><p>  由于FPGA具有開發(fā)周期短、編程靈活、可靠性高等優(yōu)點,所以非常適合在實驗室中使用。FPGA的應(yīng)用研究對科研工作者的作用也是顯而易見的。FPGA集成了功能豐富的硬件知識產(chǎn)權(quán)。這些硬件知識產(chǎn)權(quán)一般完成高速、復(fù)雜的設(shè)計標(biāo)準(zhǔn)。FPGA正逐步進(jìn)入一些

42、過去只有ASIC才能完成的設(shè)計領(lǐng)域。FPGA一般采用同步時鐘設(shè)計;用全局時鐘驅(qū)動以及門控時鐘樹驅(qū)動;FPGA采用的時序驅(qū)動方式在各級專用布線資源上靈活運(yùn)用。目前以硬件描述語言所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計驗證的技術(shù)主流。</p><p>  3.2 FPGA的發(fā)展應(yīng)用</p><p>  從1985年FPGA誕生于XIL

43、INX公司,從當(dāng)初的幾百個門電路到現(xiàn)在的幾百萬門、幾千萬門……,從原來的上千元的天價到現(xiàn)在幾元的超低價,可謂是出現(xiàn)了翻天覆地的變化。早期的可編程邏輯器件只有可編程只讀存貯器(PROM)、紫外線可擦除只讀存貯器(EPROM)和電可擦除只讀存貯器(EEPROM)三種。由于結(jié)構(gòu)的限制,它們只能完成簡單的數(shù)字邏輯功能。</p><p>  FPGA作為一種高新的技術(shù),已經(jīng)逐漸普及到了各行各業(yè),無論是消費(fèi)類、通信類、電子行

44、業(yè)都無處不在它的身影。FPGA的應(yīng)用可分為四個方面:直接使用,間接使用,硬件仿真,專用集成電路。</p><p>  FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對其編程[7]。</p><p>  3.3 FPGA的基本

45、特點</p><p>  采用FPGA設(shè)計ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。  </p><p>  FPGA可做其它全定制或半定制ASIC電路的中試樣片。   </p><p>  FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。  </p><p>  FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費(fèi)用最低、風(fēng)險最

46、小的器件之一。   </p><p>  FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。   </p><p>  可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。   FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 </p>&l

47、t;p>  3.4 FPGA在數(shù)字秒表上的應(yīng)用研究</p><p>  基于FPGA設(shè)計的數(shù)字秒表具有電路簡單、可靠性強(qiáng)、實時快速擦寫、運(yùn)算速度高、故障率低、可靠性高,而且體積小的特點。根據(jù)硬件描述語言VHDL的設(shè)計文件,能自動地完成用軟件方式描述的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、布局布線、邏輯仿真,直至完成對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。設(shè)計者的工

48、作僅限于利用軟件的方式來完成對系統(tǒng)硬件功能的描述。在MAX+PLUSⅡ軟件平臺上使用VHDL語言,采用自頂向下的設(shè)計方法對系統(tǒng)進(jìn)行了模塊化設(shè)計和綜合,并進(jìn)行了仿真。 </p><p>  第四章 MAX+PLUSⅡ簡介</p><p>  4.1 MAX+PLUSⅡ簡介</p><p>  MAX+PLUSⅡ 是美國ALTERA公司自行開發(fā)的一種針對其公司生產(chǎn)的

49、系列FPGA的設(shè)計、仿真、編程的工具軟件,其全稱為Multiple Array Materix and Programmable Logic User Systems.MAX+PLUSⅡ是FPGA應(yīng)用軟件中比較典型和常見的一種工具,在我國應(yīng)用較為普遍。</p><p>  MAX + plus Ⅱ是一種與結(jié)構(gòu)無關(guān)的全集成化設(shè)計環(huán)境。 MAX+ plus Ⅱ開發(fā)系統(tǒng)具有強(qiáng)大的處理能力和高度的靈活性。其主要優(yōu)點:與結(jié)

50、構(gòu)無關(guān)、多平臺、豐富的設(shè)計庫、開放的界面、全集成化、支持多種硬件描述語言( HDL)等。</p><p>  4.2 MAX+PLUSⅡ的功能</p><p>  MAX+PLUSⅡ 接受對一個電路設(shè)計的圖形描述(電路圖)或文本描述(硬件描述語言),通過編輯、編譯、仿真、綜合、FPGA編程等一系列過程,將用戶所設(shè)計的電路原理圖或電路描述轉(zhuǎn)變?yōu)镕PGA內(nèi)部的基本邏輯單元,寫入FPGA芯片中

51、,從而在硬件上實現(xiàn)用戶所設(shè)計的電路。該FPGA可用于正式的產(chǎn)品,也可作為對最終實現(xiàn)的ASIC芯片的硬件驗證。</p><p>  4.3 MAX+PLUSⅡ的主要特點</p><p>  開放的界面:MAX+PLUSⅡ軟件提供了與設(shè)計輸入、綜合和驗證工具的接口。設(shè)計人員可使用ALTERA或標(biāo)準(zhǔn)EDA設(shè)計輸入工具建立電路設(shè)計,使用MAX+PLUSⅡ編譯器(Compiler)對ALTERA的

52、器件進(jìn)行編譯,然后使用ALTERA或其他標(biāo)準(zhǔn)EDA驗證工具進(jìn)行驗證。</p><p>  設(shè)計與器件的結(jié)構(gòu)無關(guān):MAX+PLUSⅡ系統(tǒng)的核心——編譯器(Compiler)支持ALTERA公司的FLEX10K,F(xiàn)LEX8000,F(xiàn)LEX6000,MAX9000,MAX7000,MAX5000和Classic等可編程邏輯器件系列,提供了業(yè)界惟一真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計環(huán)境。MAXPLUSⅡ的編譯器還提供了強(qiáng)大的

53、邏輯綜合與優(yōu)化功能,使設(shè)計人員能比較容易地將其設(shè)計集成到可編程邏輯器件中。</p><p>  多平臺:MAX+PLUSⅡ軟件可在多種PC機(jī)和工作站的操作系統(tǒng)中運(yùn)行。其中包括WindowsNT3.51,Windows NT 4.0,Windows 95,Windows 98,Windows2000,WindowsXP Sun SPAC Stations等工作站上運(yùn)行。</p><p>  

54、豐富的設(shè)計庫:MAX+PLUSⅡ提供了豐富的庫單元供設(shè)計者使用,其中包括74系列的全部器件和多種特殊的邏輯功能(Macro-Function)以及新型的參數(shù)化兆功能(Mega-Function)。</p><p>  完全集成化:在MAX+PLUSⅡ系統(tǒng)環(huán)境下,可以完成所有的編輯、編譯、邏輯綜合、網(wǎng)表提前、適配、器件裝配及功能的時序仿真。這可以加快調(diào)試、縮短開發(fā)周期。</p><p>  

55、接受高級描述語言:MAX+PLUSⅡ接受多種硬件描述語言(HDL),包括VHDL,VERILOG和ABTERA自己的硬件描述語言AHDL。</p><p>  底層編輯方便形象:MAX+PLUSⅡ的底層編輯與實際CPLD/FPDA器件的管腳一一對應(yīng),所以只要用鼠標(biāo)拖放就可以完成I/O口等管腳的編輯任務(wù)[7]。</p><p>  4.4 使用Max+plusⅡ軟件設(shè)計流程</p&g

56、t;<p>  設(shè)計輸入:可以采用原理圖輸入、HDL語言描述、及波形輸入等幾種方式。</p><p>  項目編譯:先根據(jù)設(shè)計要求設(shè)定編譯參數(shù)和編譯策略,如器件的選擇、邏輯綜合方式的選擇等。然后根據(jù)設(shè)定的參數(shù)和策略對設(shè)計項目進(jìn)行網(wǎng)表提取、邏輯綜合和器件適配,并產(chǎn)生報告文件、延時信息文件及編程文件,供分析仿真和編程使用。 仿真(項目校驗):仿真包括功能仿真、時序仿真和定時分析,可以利用軟件的仿

57、真功能來驗證設(shè)計項目的邏輯功能是否正確。 編程與驗證:用經(jīng)過仿真確認(rèn)后的編程文件通過編程器(Programmer)將設(shè)計下載到實際芯片中,最后測試芯片在系統(tǒng)中的實際運(yùn)行性能。 在設(shè)計過程中,如果出現(xiàn)錯誤,則需重新回到設(shè)計輸入階段,改正錯誤或調(diào)整電路后重復(fù)上述過程。</p><p>  本次設(shè)計中我利用的 EDA 工具是 ALTERA公司的MAX+PLUSⅡ 對源程序進(jìn)行選配、編譯、優(yōu)化、邏輯綜合

58、,自動地把VHDL描述轉(zhuǎn)變器件圖,并進(jìn)而完成電路分析、自動布局布線、驗證、糾錯、仿真各種測試工作。在下一章將介紹數(shù)字秒表的系統(tǒng)仿真。</p><p>  第五章 數(shù)字秒表的系統(tǒng)設(shè)計及仿真</p><p><b>  5.1 系統(tǒng)設(shè)計</b></p><p>  5.1.1 設(shè)計思想</p><p>  利用VHDL

59、語言設(shè)計基于計算機(jī)電路中時鐘脈沖原理的數(shù)字秒表。其設(shè)計思路為:通過分頻器將晶振所提供的信號分頻成0.01S脈沖作為計時信號,經(jīng)計數(shù)器累加計數(shù),形成六十進(jìn)制的計數(shù)器和一百進(jìn)制的計數(shù)器。經(jīng)譯碼器譯碼后,分位輸出給六個7段LED數(shù)碼管顯示。 設(shè)計采用六位LED數(shù)碼管顯示分、秒,0.1s,0.01s計時方式。使用按鍵開關(guān)可實現(xiàn)開始/結(jié)束計時操作,及復(fù)位清零操作和計時長度模式選擇。</p><p>  5.1.2

60、 設(shè)計要求(秒表的功能描述)</p><p>  要求設(shè)置復(fù)位開關(guān):當(dāng)按下復(fù)位開關(guān)時,秒表清零并做好計時準(zhǔn)備。在任何情況下只要按下復(fù)位開關(guān),秒表都要無條件地進(jìn)行復(fù)位操作,即使是在計時過程中也要無條件地進(jìn)行清零操作。</p><p>  要求設(shè)置啟/停開關(guān):當(dāng)按下啟/停開關(guān)后,將啟動秒表并開始計時,當(dāng)再按一下啟/停開關(guān)時,將終止秒表的計時操作。</p><p>  要

61、求計時精確度大于0.01秒:要求設(shè)計的計時器能夠顯示分(2位)、秒(2位)、0.1秒(1位),0.01秒的時間。</p><p>  要求秒表的最長計時時間為秒表計時長度為59.分59.99秒,超過計時長度,有溢出則報警,計時長度可手動設(shè)置[8]。</p><p>  5.1.3 秒表的面板包括</p><p>  顯示屏:由6個7段數(shù)碼管組成,用于顯示當(dāng)前時間;

62、</p><p>  QT(啟/停鍵):用于開始/結(jié)束計時操作;</p><p>  MODE (模式選擇鍵):用于計時長度模式選擇;</p><p>  CLR(復(fù)位鍵):用于秒表計時系統(tǒng)的復(fù)位操作;</p><p>  蜂鳴器:溢出報警,則發(fā)出蜂鳴聲。</p><p>  5.2 頂層電路設(shè)計</p>

63、<p>  整個系統(tǒng)設(shè)計是采用自頂向下分析,自底向上設(shè)計。所謂自上至下的設(shè)計方法,就是從系統(tǒng)總體要求出發(fā),自上至下的地逐步將設(shè)計內(nèi)容細(xì)化,最后完成整個設(shè)計。在此將數(shù)字秒表系統(tǒng)的整體分解為各個模塊電路。本章詳細(xì)介紹了數(shù)字秒表系統(tǒng)的各個模塊的設(shè)計,并對各個模塊的每一個部分進(jìn)行了分析,在后半部分還對系統(tǒng)模型進(jìn)行了訪真與程序調(diào)試。各模塊之間的每一個壞節(jié)都是深思熟慮而成,各自完成相應(yīng)的功能并組成一個統(tǒng)一的整體[9]。</p&g

64、t;<p>  數(shù)字秒表的頂層電路圖及時序分析采用硬件描述語言設(shè)計一個復(fù)雜電路系統(tǒng),運(yùn)用自頂向下的設(shè)計思想,將系統(tǒng)按功能逐層分割的層次化設(shè)計方法。在頂層設(shè)計中,要對內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系進(jìn)行描述,而功能塊實際的邏輯功能和具體的實現(xiàn)形式則由下一層模塊來描述。頂層電路如圖 5.1所示:</p><p>  圖5.1 頂層電路圖</p><p>  5.3 數(shù)字秒

65、表的設(shè)計原理</p><p>  本系統(tǒng)設(shè)計采用自頂向下的設(shè)計方案,系統(tǒng)的整體組裝設(shè)計原理圖如圖5.2所示:</p><p> ?。?)本設(shè)計可分為五個主要模塊:</p><p> ?、僬{(diào)整控制電路(主控電路模塊);</p><p> ?、阪I輸入模塊電路(含消抖電路);</p><p> ?、蹠r鐘分頻電路模塊;<

66、/p><p><b>  ④計時電路模塊;</b></p><p>  ⑤顯示控制電路模塊(包括溢出報警控制)。</p><p>  圖5.2 數(shù)字秒表系統(tǒng)原理</p><p> ?。?)系統(tǒng)的總體設(shè)計:</p><p>  各個輸入/輸出端口的作用如下:</p><p>  

67、CLK為外部時鐘信號,CLR為復(fù)位信號;</p><p>  QT為啟/停開關(guān),用于開始/結(jié)束計時操作;</p><p>  MODE為模式選擇鍵,用1個電平信號A進(jìn)行模式選擇;</p><p>  Q是數(shù)據(jù)掃描顯示的公共七段數(shù)碼顯示驅(qū)動端,它經(jīng)過外接的譯碼器譯碼后接數(shù)碼管的公共端COM。</p><p>  SOUND用于控制蜂鳴器發(fā)聲。當(dāng)

68、SOUND=“1”時,揚(yáng)聲器發(fā)出蜂鳴聲,表示計時超出計時長度(溢出報警)</p><p>  5.4 各模塊的原理、程序及其仿真</p><p>  5.4.1 調(diào)整控制電路(主控電路模塊)</p><p>  為了實現(xiàn)數(shù)字秒表的各種相應(yīng)功能,主控電路對各種輸入控制信號進(jìn)行處理。作出相應(yīng)的調(diào)整,發(fā)出一系列的控制輸出信號。如對數(shù)字秒表實現(xiàn)復(fù)位操作,啟、??刂?,以及

69、計時長度設(shè)置模式選擇。</p><p><b>  主控電路的功能</b></p><p> ?。?)實現(xiàn)系統(tǒng)復(fù)位:</p><p>  設(shè)置一個CLR信號,當(dāng)CLR信號=0時,整個系統(tǒng)復(fù)位:當(dāng)CLR=1時,系統(tǒng)進(jìn)行計時或模式選擇。</p><p><b>  (2)啟/??刂疲?lt;/b></p

70、><p>  用于開始/結(jié)束計時操作。數(shù)字秒表的啟/停是通過控制送給計數(shù)器的時鐘來實現(xiàn)的。當(dāng)按下QT鍵后,輸出端Q的狀態(tài)發(fā)生反轉(zhuǎn)。Q為“1”時。時鐘可通過與門,秒表處于計時狀態(tài)。當(dāng)Q為“0”時,時鐘被屏蔽,計數(shù)器得不到時鐘脈沖,停止計數(shù)。</p><p>  模式選擇功能:通過MODE鍵進(jìn)行秒表計時長度設(shè)置的選擇。當(dāng)MODE=“0”時為模式0,秒表系統(tǒng)的計時長度為59分59.99秒。當(dāng)MODE

71、=“1”時,為模式1,秒表系統(tǒng)的計時長度為59.99秒。</p><p> ?。?)計時模塊的作用是針對計時過程進(jìn)行控制。</p><p>  計時控制模塊可用倆個按鈕來完成秒表的啟動、停止和復(fù)位。部分源程序與器件圖(圖5.3)及仿真圖(圖5.4)如下:</p><p>  ARCHITECTURE a OF KZQ IS</p><p> 

72、 PROCESS(CLK,CLR)</p><p>  VARIABLE TMP:STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  IF CLR='0' THEN TMP:='0';</p><p>  ELSIF CLK'EVENT AND

73、 CLK='1' THEN</p><p>  IF A='1' THEN</p><p>  TMP:=NOT TMP;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>

74、<b>  Q<=TMP;</b></p><p>  END PROCESS;</p><p>  PROCESS(CLK,CLR)</p><p><b>  BEGIN</b></p><p><b>  MIN<='0';</b></p

75、><p><b>  SEC<='0';</b></p><p>  TSEC<='0';</p><p>  ELSIF CLK'EVENT AND CLK='1' THEN

76、 </p><p>  圖5.3 主控制模塊KZQ的器件圖</p><p>  主控制模塊KZQ的波形仿真如下圖5.4所示:</p><p>  圖5.4 主控制模塊KZQ的波形仿真</p><p>  5.4.2 鍵輸入模塊電路(含消抖電路)</p><p>  在秒

77、表面板上有3個按鍵:啟/停鍵、復(fù)位鍵及模式選擇鍵鍵。因為設(shè)計采用的是機(jī)械式的按鍵,由于存在機(jī)械觸動的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會馬上斷開。因而在閉合及斷開按鍵的瞬間均伴隨有一連串的抖動。抖動時間的長短由按鍵的機(jī)械特性決定,一般為5-10ms。如圖5.5所示:</p><p>  圖5.5 按鍵時的抖動</p><p>  按鍵的閉合穩(wěn)定時間的長短由操作人

78、員的按鍵動作決定,一般為零點幾秒至數(shù)秒。按鍵抖動會引起被誤讀多次。為確保FPGA對鍵的閉合僅作一次處理,必須去除按鍵抖動。</p><p>  常在按鍵較少時可用硬件方法消除抖動,一般采用RS觸發(fā)器作為常用的消抖電路,如果按鍵較多時,常用軟件消除抖動。在EDA的設(shè)計應(yīng)用中,軟件消抖的方法即可使用RS觸發(fā)器進(jìn)行消抖,也可通過檢測按鍵按下的時間進(jìn)行消抖。</p><p>  消抖模塊的VHDL

79、部分源程序設(shè)計與器件圖(圖5.6)及仿真圖(圖5.7) 如下:</p><p>  ARCHITECTURE ARC OF XDOU IS</p><p>  SIGNAL CP:STD_LOGIC;</p><p>  SIGNAL JSQ:INTEGER RANGE 0 TO 3;</p><p><b>  BEGIN<

80、/b></p><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><p>  IF (CLK' EVENT AND CLK= '1' ) THEN</p><p>  IF X='1' THEN</p><p&g

81、t;  IF JSQ=3 THEN</p><p><b>  JSQ<=JSQ;</b></p><p><b>  ELSE</b></p><p>  JSQ<=JSQ+1;</p><p><b>  END IF;</b></p><p

82、>  IF JSQ=1 THEN</p><p><b>  CP<='1';</b></p><p><b>  ELSE</b></p><p>  CP<='0'; </p><p>  END

83、IF </p><p>  圖5.6 消抖模塊的器件圖</p><p>  鍵盤消抖模塊XDOU的波形仿真如圖5.7所示:</p><p>  圖5.7 鍵盤消抖模塊XDOU的波形仿真</p><p><b>  工作原理:</b></p><p>  本模塊描述的防抖動電路屬于計數(shù)器

84、型防抖動電路。其工作原理是,設(shè)置一個模值為4的控制計數(shù)器,在人工按鍵KEY=‘1’時,執(zhí)行加1計數(shù);KEY=‘1’時,計數(shù)器進(jìn)入狀態(tài)0。計數(shù)器只在狀態(tài)2有輸出。計數(shù)器進(jìn)入狀態(tài)3,處于保持狀態(tài)??傊?,按鍵一次,計數(shù)器只有一個單脈沖輸出。</p><p><b>  防抖動原理:</b></p><p>  按鍵KEY是產(chǎn)生抖動的根源,按照設(shè)計,只有按鍵持續(xù)時間大于3個時

85、鐘周期,計數(shù)器輸出才可能產(chǎn)生有效的正跳變,輸出一個單脈沖。由于機(jī)械開關(guān)抖動產(chǎn)生的毛刺寬度小于3個時鐘周期,因而毛刺作用不可能使計數(shù)器有輸出,防抖動目的得以實現(xiàn)。</p><p>  從上圖的仿真結(jié)果可看出模塊的正確性。</p><p>  5.4.3 時鐘分頻電路模塊</p><p>  在基于EDA技術(shù)的數(shù)字電路系統(tǒng)設(shè)計中,分頻電路應(yīng)用十分廣泛。常常使用分頻電路

86、來得到數(shù)字系統(tǒng)中各種不同頻率的控制信號。所謂分頻電路,就是將一個給定的頻率較高的數(shù)字輸入信號經(jīng)過適當(dāng)處理后,產(chǎn)生一個或數(shù)個頻率較低的數(shù)字輸出信號。分頻電路本質(zhì)上是加法計數(shù)器的變種,其計數(shù)值有分頻常數(shù)N=fin/fout決定,其輸出不是一般計數(shù)器的計數(shù)結(jié)果,而是根據(jù)分頻常數(shù)對輸出信號的高,低電平控制。</p><p>  本設(shè)計需要一個計時范圍為0.01s-59分59.99秒的秒表,首先需要獲得一個比較精確的計時基

87、準(zhǔn)信號,這里時周期為1/100 s的計時脈沖,所以采用一個標(biāo)準(zhǔn)時鐘信號源1KHZ經(jīng)分頻后獲得一個精確的100HZ的脈沖。 </p><p>  1KHZ —100HZ分頻器的部分源程序與器件圖(圖5.8)及仿真圖(圖5.9)如下: </p><p>  ARCHITECTURE rtl OF clk_div10 IS&

88、lt;/p><p>  SIGNAL clk_temp :STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  PROCESS(clk_in)</p><p>  VARIABLE counter: INTEGER RANGE 0 TO 15;</p><p>&l

89、t;b>  BEGIN</b></p><p>  IF (clk_in'EVENT AND clk_in='1') THEN</p><p>  IF (counter = 9) THEN</p><p>  Counter := 0;</p><p>  Clk_out <= '1

90、';</p><p><b>  ELSE </b></p><p>  Counter :=counter +1 ;</p><p>  Clk_out <= '0';</p><p><b>  END IF;</b></p><p>  圖

91、5.8 分頻器的器件圖</p><p>  用于10分頻電路模塊clk_div10的波形仿真如圖5.9所示:</p><p>  圖5.9 分頻電路模塊clk_div10的波形仿真圖</p><p>  功能說明:如上圖所示的10分頻電路模塊,輸入時鐘信號變?yōu)榉诸l輸出信號,分頻常數(shù)N=fin/fout??芍诸l為10分頻,從仿真結(jié)果可看出模塊的正確性。</p&

92、gt;<p>  5.4.4 計時模塊</p><p>  計時模塊執(zhí)行計時功能,計時方法和計算機(jī)一樣是對標(biāo)準(zhǔn)時鐘脈沖計數(shù)。</p><p>  在本次設(shè)計中,采用異步計數(shù)器的方法,用硬件描述語言描述一個異步計數(shù)器,將低/高位計數(shù)器的輸出作為高/低位計數(shù)器的時鐘信號,在本設(shè)計中要用到兩個60進(jìn)制計數(shù)器,和一個100進(jìn)制計數(shù)器</p><p>  cn

93、t60計數(shù)模塊:是一個多用計時模塊,既可作計秒電路又可作計分電路調(diào)用。</p><p>  (1)用于秒鐘計時的cnt60_1的VHDL部分源程序與器件圖(圖5.10)及仿真圖(圖5.11)如下: </p><p>  ARCHITECTURE CNT60_1_ARC OF CNT60_1 IS<

94、/p><p><b>  BEGIN</b></p><p>  PROCESS(CLK,CLR)</p><p>  VARIABLE CNT0,CNT1:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>

95、;  IF CLR='0' THEN</p><p>  CNT0:="0000";</p><p>  CNT1:="0000";</p><p>  ELSIF CLK'EVENT AND CLK='1' THEN</p><p>  IF EN='1

96、' THEN</p><p>  IF CNT1="0101" and cnt0= "1000"THEN</p><p>  CNT0:="1001"; CO<='1';</p><p>  elsif cnt0<"1001" then</p&g

97、t;<p>  CNT0:=CNT0+1; </p><p>  else cnt0:="0000";</p><p>  IF CNT1<"0101" THEN</p><p>  圖5.10 秒鐘計時的器件圖</p><p>  程序說明:clk為信號時鐘輸入端;</p&g

98、t;<p><b>  clr為復(fù)位端;</b></p><p>  co為進(jìn)位信號輸出端;</p><p>  sec1:秒信號的高位輸出端;</p><p>  sec0: 秒信號的低位輸出端。</p><p>  用于秒計時器CNT60_1的波形仿真如圖5.11所示:</p><p

99、>  圖5.11 用于秒計時器CNT60_1的波形仿真圖</p><p>  功能說明:秒進(jìn)制為60進(jìn)制,高位到6會有進(jìn)位,低位為10進(jìn)制,可以證明模塊的正確性。</p><p>  (2)用于分鐘計時的CNT60_2的VHDL的部分源程序與器件圖(圖5.12)及仿真圖(圖5.13)如下:</p><p>  IF CLR='0' THEN&l

100、t;/p><p>  CNT1:="0000";</p><p>  ELSIF CLK'EVENT AND CLK='1' THEN</p><p>  IF EN='1' THEN</p><p>  IF CNT1="0101" and cnt0= "

101、1000"THEN</p><p>  CNT0:="1001"; CO<='1';</p><p>  elsif cnt0<"1001" then</p><p>  CNT0:=CNT0+1; </p><p>  else cnt0:="0000&

102、quot;;</p><p>  IF CNT1<"0101" THEN</p><p>  cnt1:=cnt1+1; </p><p>  else cnt1:="0000"; </p><p>  

103、圖5.12 分鐘計時的器件圖</p><p>  程序說明:clk為信號時鐘輸入端;</p><p><b>  clr為復(fù)位端;</b></p><p>  co為進(jìn)位信號輸出端;</p><p>  min1:秒信號的高位輸出端;</p><p>  min0: 秒信號的低位輸出端。</

104、p><p>  用于分計時器CNT60_2的波形仿真如圖5.13所示:</p><p>  圖5.13 用于分計時器CNT60_2的波形仿真圖</p><p>  功能說明:高位為6進(jìn)制,低位為10進(jìn)制,當(dāng)min0=9的時候,min1在下一時刻會增1,可以證明模塊的正確性。</p><p> ?。?)m100:輸出值為0.01s和0.1s 。其V

105、HDL部分源程序與器件圖(圖5.14)及仿真圖(圖5.15)如下:</p><p><b>  begin</b></p><p>  co<='1' when (qh="1001" and ql="1001") else '0';</p><p>  process

106、(clk,reset,pause)</p><p><b>  begin</b></p><p>  if(reset='0') then</p><p>  qh<="0000";</p><p>  ql<="0000";</p>&

107、lt;p>  elsif(pause='0')then</p><p><b>  qh<=qh;</b></p><p><b>  ql<=ql;</b></p><p>  elsif (clk'event and clk='1') then</p>

108、;<p>  if (ql="1001") then</p><p>  ql<="0000";</p><p>  if (qh="1001") then</p><p>  qh<="0000";</p><p>  else qh&

109、lt;=qh+1;</p><p><b>  end if;</b></p><p>  else ql<=ql+1;</p><p>  圖5.14 毫秒計數(shù)器的器件圖</p><p>  程序說明:clk為信號時鐘輸入端;</p><p>  reset為復(fù)位端;</p>

110、<p>  pause為暫停端;</p><p>  co為進(jìn)位信號輸出端;</p><p>  qh:毫秒信號的高位輸出端;</p><p>  ql: 毫秒信號的低位輸出端。</p><p>  用于毫秒計數(shù)器m100的波形仿真如圖5.15所示:</p><p>  圖5.15 用于毫秒計數(shù)器m100的

111、波形仿真圖</p><p>  功能說明:毫秒為100進(jìn)制,高位和地位都是10進(jìn)制,高位到10會有進(jìn)位,可以證明模塊的正確性。</p><p>  5.4.5 顯示譯碼電路模塊</p><p>  將用于顯示BCD碼數(shù)據(jù)進(jìn)行譯碼,計時電路的結(jié)果的8位BCD碼輸出端Q經(jīng)外部的譯碼電路后用于選擇對應(yīng)計時結(jié)果顯示數(shù)碼管的公共端。數(shù)碼管顯示數(shù)據(jù)分為靜態(tài)顯示和動態(tài)顯示。所謂

112、靜態(tài)顯示,即是把數(shù)據(jù)的BCD碼顯示出來,通過各自的4-7/8顯示譯碼器譯碼后,分別接到顯示譯碼器的顯示驅(qū)動段a-g(p),而公共端COM則根據(jù)數(shù)碼管的類型(共陰/共陽)分別接GND/VCC。動態(tài)顯示,就是將被顯示的數(shù)據(jù)的BCD碼,按照一定的變化頻率,在不同的時刻周期性地分別送到一個數(shù)據(jù)總線上,再通過一個公共的4-7/8顯示譯碼后,接到多個顯示譯碼器的公共顯示驅(qū)動段a-g(p)上,同時,在不同的時刻周期性地選通對應(yīng)的數(shù)碼管的公共端COM[

113、10]。</p><p>  在本次設(shè)計中我將采用數(shù)碼管靜態(tài)顯示電路來設(shè)計,其中7段數(shù)碼管顯示器由7根顯示數(shù)碼管組成,對每一碼管,用一位二進(jìn)制表示。若該數(shù)碼管的為共陰極數(shù)碼管,則該位為1時,表示此數(shù)碼管發(fā)光,如為0,表示此數(shù)碼管不發(fā)光,對7個數(shù)碼管進(jìn)行編號。共陽極數(shù)碼管則正好相反[11]。</p><p>  其顯示模塊的VHDL部分源程序與器件圖(圖5.16)及仿真圖(圖5.17)如下:

114、</p><p><b>  BEGIN</b></p><p>  PROCESS(D)</p><p><b>  BEGIN</b></p><p><b>  CASE D IS</b></p><p>  WHEN"0000"

115、;=>Q<="0111111";</p><p>  WHEN"0001"=>Q<="0000110";</p><p>  WHEN"0010"=>Q<="1011011";</p><p>  WHEN"0011&qu

116、ot;=>Q<="1001111";</p><p>  WHEN"0100"=>Q<="1100110";</p><p>  WHEN"0101"=>Q<="1101101";</p><p>  WHEN"0110&

117、quot;=>Q<="1111101";</p><p>  WHEN"0111"=>Q<="0100111";</p><p>  WHEN"1000"=>Q<="1111111";</p><p>  WHEN"100

118、1"=>Q<="1101111";</p><p>  WHEN OTHERS=>Q<="0000000";</p><p><b>  END CASE;</b></p><p>  圖5.16 顯示模塊的器件圖</p><p>  7段顯示譯碼

119、器的波形仿真如圖5.17所示:</p><p>  圖5.17 7段顯示譯碼器的波形仿真圖</p><p>  分析:D為時鐘脈沖輸入信號,Q是輸出信號,如圖所示:實現(xiàn)七段譯碼功能。證明模塊的正確性。</p><p>  5.4.6 溢出報警控制</p><p>  溢出報警控制信號控制:由cnt60,cnt100的CO進(jìn)位輸出信號連接在一

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論