eda課程設計--電子秒表設計_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  Xxxxxxxx 大 學</p><p>  課 程 設 計</p><p>  2013年7 月 12日</p><p><b>  課程設計任務書</b></p><p>  課程 硬件課程設計</p><p>  

2、題目 電子秒表設計 </p><p>  專業(yè) 姓名 學號 </p><p>  主要內容、基本要求等</p><p><b>  一、主要內容:</b></p><p>  利用KX_DN教學

3、實驗箱、微機和QuartusⅡ軟件系統(tǒng),使用VHDL語言輸入方法設計數字秒表。它主要由顯示譯碼器、分頻器、十進制計數器、報警器和計數器組成。秒共有6個輸出顯示,分別為百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6個計數器與之相對應,6個計數器的輸出全都為BCD碼輸出,這樣便于同顯示譯碼器的連接。要求可以利用層次設計方法和VHDL語言,完成硬件設計設計和仿真。最后在KX_DN教學實驗箱中實現(xiàn)。</p><p&g

4、t;<b>  二、基本要求:</b></p><p>  1.四個10進制計數器:用來分別對百分之一秒、十分之一秒、秒和分進行計數;</p><p>  2.兩個6進制計數器:用來分別對十秒和十分進行計數;</p><p>  3.顯示譯碼器:完成對顯示的控制;</p><p>  4. 能任意啟動和歸零。</p

5、><p><b>  三、擴展要求</b></p><p><b>  1.隨意停止及啟動</b></p><p>  2.可以多次記錄數據并且可以讀出各次對數據</p><p>  按照規(guī)范寫出論文,要求字數在4000字以上,并進行答辯。論文內容包括概述(學習、調研、分析、設計的內容摘要)、EDA技術

6、的現(xiàn)狀和發(fā)展趨勢、對KX_DN教學實驗箱和QuartusⅡ軟件的掌握程度、數字鐘的設計過程(包括原理圖或程序設計、編譯、仿真分析、硬件測試的全過程),論文中含有原理圖、程序、仿真波形圖及其分析報告。</p><p>  完成期限 第19—20周 </p><p>  指導教師 </p><p>  專業(yè)負責人 </p

7、><p>  2013年6 月 25 日</p><p><b>  摘 要</b></p><p>  EDA技術是在電子CAD技術基礎上發(fā)展起來的計算機軟件系統(tǒng),是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產品的自動設計。 </p><p>  本文通過硬件語言VHD

8、L的描述,完成可以記錄兩次的秒表的設計和實現(xiàn),先設計秒表的各個底層模塊,運用底層各個模塊產生的進位將各個模塊連接起來實現(xiàn)一個普通秒表。然后再將兩個普通秒表用選擇電路連接在一起,完成可以記錄兩次的秒表。本次設計的目的就是在掌握EDA初步使用的基礎上,運用VHDL語言對數字秒表進行設計,將理論和實踐相結合,提高與計算機硬件有關設計能力,提高分析、解決計算機技術實際問題的能力。通過課程設計深入理解計算機結構與控制實現(xiàn)的技術,達到課程設計的目標

9、。</p><p>  關鍵詞:電子秒表;電子設計自動化;硬件描述語言;QuartusⅡ</p><p><b>  目 錄</b></p><p>  第1章 概 述1</p><p>  1.1 EDA的概念1</p><p>  1.2 硬件描述語言——VHDL4</p>

10、<p>  1.3 Quartus II 概述6</p><p>  第2章 實驗原理8</p><p>  第3章 電子秒表設計9</p><p>  3.1 分頻電路設計9</p><p>  3.2 10位計數器設計10</p><p>  3.3 6位計數器設計11</p&

11、gt;<p>  3.4 電子秒表設計13</p><p>  3.5 擴展功能15</p><p>  3.6 電子秒表下載實現(xiàn)18</p><p><b>  結 論20</b></p><p><b>  參考文獻21</b></p><p&

12、gt;<b>  第1章 概 述</b></p><p>  1.1 EDA的概念</p><p>  EDA技術是在20世紀60年代中期從計算機輔助設計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的。EDA是電子設計自動化(Electronic Design Automation)的縮寫。</p>

13、<p>  EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言HDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現(xiàn),極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。 </p><p>  EDA是電子技術設計自動化,也就是能夠幫助人們設計電子電路或系統(tǒng)

14、的軟件工具。該工具可以在電子產品的各個設計階段發(fā)揮作用,使設計更復雜的電路和系統(tǒng)成為可能。在原理圖設計階段,可以使用EDA中的仿真工具論證設計的正確性;在芯片設計階段,可以使用EDA中的芯片設計工具設計制作芯片的版圖;在電路板設計階段,可以使用EDA中電路板設計工具設計多層電路板。特別是支持硬件描述語言的EDA工具的出現(xiàn),使復雜數字系統(tǒng)設計自動化成為可能,只要用硬件描述語言將數字系統(tǒng)的行為描述正確,就可以進行該數字系統(tǒng)的芯片設計與制造。

15、21世紀將是EDA技術的高速發(fā)展期,EDA技術將是對21世紀產生重大影響的十大技術之一。     利用EDA工具,電子設計師可以從概念、算法、協(xié)議等開始設計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程的計算機上自動處理完成。</p><p>  硬件描述語言 : 硬件描述語言(HDL)是一種用于進行電子系統(tǒng)硬件設計

16、的計算機高級語言,它采用軟件的設計方法來描述電子系統(tǒng)的邏輯功能、電路結構和連接形式。 常用硬件描述語言有HDL、Verilog和VHDL語言。</p><p>  1.1.1 EDA技術及應用</p><p>  現(xiàn)在對EDA的概念或范疇用得很寬。包括在機械、電子、通信、航空航天、化工、礦產、生物、醫(yī)學、軍事等各個領域,都有EDA的應用。目前EDA技術已在各大公司、企事業(yè)單位和科

17、研教學部門廣泛使用。例如在飛機制造過程中,從設計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術。</p><p>  在教學方面:幾乎所有理工科的高校都開設了EDA課程。主要是讓學生了解EDA的基本原理和基本概念、硬件描述系統(tǒng)邏輯的方法、使用EDA工具進行電子電路課程的模擬仿真實驗并在作畢業(yè)設計時從事簡單電子系統(tǒng)的設計,為今后工作打下基礎。在科研方面:主要利用電路仿真工具進行電路設計與仿真;利用虛擬儀器

18、進行產品調試;將FPGA器件的開發(fā)應用到儀器設備中。在產品設計與制造方面:從高性能的微處理器、數字信號處理器一直到彩電、音響和電子玩具電路等,EDA技術不單是應用于前期的計算機模擬仿真、產品調試,而且也在后期的制作、電子設備的研制與生產、電路板的焊接、器件的制作過程等有重要作用。 </p><p>  1.1.2 EDA技術發(fā)展趨勢</p><p>  過去的幾年里,可編程器件市場的增長主

19、要來自大容量的可編程邏輯器件CPLD和FPGA,其未來的發(fā)展趨勢如下:</p><p> ?。?)向高密度、高速度、寬頻帶方向發(fā)展</p><p>  設計方法和設計效率的飛躍,帶來了器件的巨大需求,這種需求又促使器件生產工藝的不斷進步,而每次工藝的改進,可編程邏輯器件的規(guī)模都將有很大擴展。</p><p> ?。?)向在系統(tǒng)可編程方向發(fā)展</p>&

20、lt;p>  采用在系統(tǒng)可編程技術,可以像對待軟件那樣通過編程來配置系統(tǒng)內硬件的功能,從而在電子系統(tǒng)中引入“軟硬件”的全新概念。它不僅使電子系統(tǒng)的設計和產品性能的改進和擴充變得十分簡便,還使新一代電子系統(tǒng)具有極強的靈活性和適應性,為許多復雜信號的處理和信息加工的實現(xiàn)提供了新的思路和方法。</p><p> ?。?)向可預測延時方向發(fā)展</p><p>  為了適應未來復雜高速電子系統(tǒng)

21、的要求,可編程邏輯器件的高速可預測延時是非常必要的。</p><p> ?。?)向混合可編程技術方向發(fā)展</p><p>  已有多家公司開展了這方面的研究,并且推出了各自的模擬與數字混合型的可編程器件,相信在未來幾年里,模擬電路及數?;旌想娐房删幊碳夹g將得到更大的發(fā)展。</p><p> ?。?)向低電壓、低功耗方面發(fā)展</p><p> 

22、 集成技術的飛速發(fā)展,工藝水平的不斷提高,節(jié)能潮流在全世界的興起,也為半導體工業(yè)提出了向降低工作電壓、降低功耗的方向發(fā)展。</p><p>  1.1.3開發(fā)工具的發(fā)展趨勢</p><p> ?。?)具有混合信號處理能力</p><p>  由于數字電路和模擬電路的不同特性,模擬集成電路EDA工具的發(fā)展遠遠落后于數字電路EDA開發(fā)工具。</p><

23、;p> ?。?)高效的仿真工具</p><p>  一方面是要建立合理的仿真算法;另一方面是要更好地解決系統(tǒng)級仿真中,系統(tǒng)模型的建模和電路級仿真中電路模型的建模技術。</p><p> ?。?)理想的邏輯綜合、優(yōu)化工具</p><p>  邏輯綜合、優(yōu)化工具就是要把設計者的算法完整高效地生成電路網表。</p><p>  1.1.4系統(tǒng)

24、描述方式的發(fā)展趨勢</p><p>  (1)描述方式簡便化</p><p>  圖形化的描述方式具有簡單直觀、容易掌握的優(yōu)點,是未來主要的發(fā)展趨勢。</p><p>  (2)描述方式高效化和統(tǒng)一化</p><p>  隨著EDA技術的不斷成熟,軟件和硬件的概念將日益模糊,使用單一的高級語言直接設計整個系統(tǒng)將是一個統(tǒng)一化的發(fā)展趨勢。<

25、/p><p>  隨著科技的進步,電子產品的更新日新月異,EDA技術作為電子產品開發(fā)研制的源動力,已成為現(xiàn)代電子設計的核心。特別是EDA技術在我國尚未普及,掌握和普及這一全新的技術,將對我國電子技術的發(fā)展具有深遠的意義。 </p><p>  1.2 硬件描述語言——VHDL</p><p>  1.2.1 VHDL的簡介</p><p>  V

26、HDL語言是一種用于電路設計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言 。但是,由于它在一定程度上滿足了當時的設計需求,于是他在1987年成為A I/IEEE的標準(IEEE STD 1076-1987)。1993年更進一步修訂,變得更加完備,成為A I/IEEE的A I/IEEE STD 1076-1993標準。目前,大多數的CAD廠商出品的EDA

27、軟件都兼容了這種標準。自IEEE公布了VHDL的標準版本,IEEE-1076(簡稱87版)之后,各EDA公司相繼推出了自己的VHDL設計環(huán)境,或宣布自己的設計工具可以和VHDL接口。此后VHDL在電子設計領域得到了廣泛的接受,并逐步取代了原有的非標準的硬件描述語言。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展VHDL的內容,公布了新版本的VHDL,即IEEE標準的1076-1993版本,(簡稱93版)。

28、現(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事</p><p>  1.2.2 VHDL語言的特點</p><p>  VHDL的程序結構特點是將一項工程設計,關于用VHDL和原理圖輸入進行CPLD/FPGA設計的粗略比較:在設計中,如果采用原理圖輸入的設計方式是比較直觀的。你要設計的是什么,你就直接從庫中調出來用就行

29、了。這樣比較符合人們的習慣。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統(tǒng)設計的基本點。應用VHDL進行工程設計的優(yōu)點是多方面的。</p><p> ?。?)與其他的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決定了成為系統(tǒng)設計領域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結構,從邏輯行為上描述和設計大

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

31、<p> ?。?)對于用VHDL完成的一個確定的設計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設計轉變成門級網表。</p><p> ?。?)VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管理最終設計實現(xiàn)的目標器件是什么,而進行獨立的設計。</p><p>  1.2.3 VHDL的設計流程</p><p> 

32、 它主要包括以下幾個步驟:</p><p><b>  1.文本編輯:</b></p><p>  用任何文本編輯器都可以進行,也可以用專用的HDL編輯環(huán)境。通常VHDL文件保存為.vhd文件,Verilog文件保存為.v文件</p><p><b>  2.功能仿真:</b></p><p>  

33、將文件調入HDL仿真軟件進行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設計可以跳過這一步,只在布線完成以后,進行時序仿真)</p><p><b>  3.邏輯綜合:</b></p><p>  將源文件調入邏輯綜合軟件進行綜合,即把語言綜合成最簡的布爾表達式。邏輯綜合軟件會生成.edf或.edif 的EDA工業(yè)標準文件。</p><p&

34、gt;<b>  4.布局布線:</b></p><p>  將.edf文件調入PLD廠家提供的軟件中進行布線,即把設計好的邏輯安放CPLD/FPGA內。</p><p><b>  5.時序仿真:</b></p><p>  需要利用在布局布線中獲得的精確參數,用仿真軟件驗證電路的時序。(也叫后仿真) 通常以上過程可以都

35、在CPLD/FPGA廠家提供的開發(fā)工具。</p><p>  1.3 Quartus II 概述</p><p>  Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完

36、整PLD設計流程。 </p><p>  Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。 </p><p>  Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的

37、復雜性、加快了設計速度。對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方EDA工具。 </p><p>  此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結合,可以方便地實現(xiàn)各種DSP應用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。</p>

38、<p>  Maxplus II 作為Altera的上一代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用。目前Altera已經停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設計輔助工具,集成了SOPC和HardCopy設計流程

39、,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。</p><p>  Altera Quartus II 作為一種可編程邏輯的設計環(huán)境, 由于其強大的設計能力和直觀易用的接口,越來越受到數字系統(tǒng)設計者的歡迎。</p><p>  1.3.1軟件的啟動方式</p><p>  方法一、直接雙擊桌面上的圖標 ,可以打開Quartus II 7.2 軟件

40、;</p><p>  方法二、執(zhí)行:【開始】→【程序】→【Altera】→【Quartus II 7.2】→【Quartus II 7.2 TalkBack Install】菜單命令,可以打開軟件。</p><p>  啟動軟件后,若你的電腦沒有連接到Internet互聯(lián)網,會出現(xiàn)如下圖所示的提示,提示你沒有連接到Altera的官方網站,將無法獲得更新的資源。點擊〖確定〗繼續(xù),因為這不影

41、響軟件的正常使用。</p><p><b>  圖1-1 打開頁面</b></p><p><b>  第2章 實驗原理 </b></p><p>  根據實驗對要求本次的設計是運用VHDL語言在Quartus II 7.2 TalkBack Install環(huán)境下設計并運行一個電子秒表。該秒表可以精確到百分之一秒并且記錄對

42、范圍是00分00秒00毫秒~59分59秒99毫秒。在設計的過程中需要運用分層的結構進行,運用例化語句在頂層實體中隊各個部件進行例化,使之達到電子秒表的要求。</p><p>  在設計時運用10進制計數器和6進制計數器對秒表的各個位置進行計數和顯示,在百分之一秒和十分之一秒對位置各用一個帶進位對10進制計數器來對其計數和顯示。秒和分的位置也運用一個帶進位的10進制計數器對其進行計數,十秒的位置著需要一個帶進位的6

43、進制計數器對其進行計數,而十分的位置需要一個不帶進位對6進制計數器對其進行計數。將前一個位置的進位接到下一個位置的時鐘信號以完成各個位置計數情況和前面位置計數情況的鏈接。完成位置之間的鏈接在頂層實體的例化語句中完成。</p><p>  本系統(tǒng)設計采用自頂向下的設計方案,系統(tǒng)的整體組裝設計原理圖如圖2-1所示,它主要由控制模塊、時基分頻模塊,計時模塊和顯示模塊四部分組成。各模塊分別完成計時過程的控制功能、計時功能

44、與顯示功能。</p><p>  第3章 電子秒表設計</p><p>  根據實驗內容和實驗原理,寫出各個電路的VHDL語言,并且對各個電路進行仿真,并根據時序仿真圖觀察設計的電路是否正確。各個電路設計完成之后根據實驗內容和實驗對擴展的要求設計出合適對頂層實體其中包括可以多次記錄的秒表需要的硬件電路的VHDL語言頂層實體描述。</p><p>  3.1 分頻電

45、路設計</p><p>  ——將輸入的時鐘信號頻率改變?yōu)槲覀冃枰臅r鐘頻率</p><p>  libraby ieee; </p><p>  use ieee.std_logic_1164.all; </p><p>  use ieee.std_logic_unsigned.all;</p><p>  ent

46、ity counter is </p><p><b>  port </b></p><p>  ( clk: in std_logic ; ——輸入的時鐘信號5MHz</p><p>  co: buffer std_logic); ——輸出的時鐘信號100Hz</p><p>  end

47、 counter; </p><p>  architecture bhv of counter is </p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable coutinterger:=0;</p><p><b

48、>  begin </b></p><p>  if clk'event and clk='1' then</p><p>  cout:=cout+1;</p><p>  if cout<=25000 then co<='0';</p><p>  elsif cout

49、<50000 then co<='1';</p><p>  else cout:=0;</p><p><b>  end if; </b></p><p><b>  end if; </b></p><p>  end process;</p>&l

50、t;p>  end architecture;</p><p>  圖3-1 分頻電路的時序仿真圖</p><p>  圖3-2分頻控制電路模塊圖</p><p>  3.2 10進制計數器設計</p><p>  ——10進制計數器 ,對數字做記錄當計數器記錄到9之后產生進位,有進位端cont10、復位端rst10和使能端en10。

51、</p><p>  library ieee; ——10進制計數器</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity cnt10 is</p><p>

52、;  port(clk10,rst10,en10:in std_logic;</p><p>  cq10:out std_logic_vector(3 downto 0);</p><p>  cout10:out std_logic);</p><p>  end entity cnt10;</p><p>  architecture

53、one of cnt10 is </p><p><b>  begin</b></p><p>  process(clk10,rst10,en10)</p><p>  variable cqi:std_logic_vector(3 downto 0);</p><p><b>  begin </b

54、></p><p>  if rst10='1' then cqi:=(others => '0');</p><p>  elsif clk10'event and clk10='1' then</p><p>  if en10='1' then </p><

55、p>  if cqi<9 then cqi:=cqi+1;</p><p>  else cqi:=(others => '0');</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b

56、>  end if;</b></p><p>  if cqi=9 then cout10<='1';</p><p>  else cout10<='0';</p><p><b>  end if;</b></p><p>  cq10<=cqi;&

57、lt;/p><p>  end process;</p><p>  end architecture one;</p><p>  圖3-3 10進制計數器RTL圖</p><p>  圖3-4 10進制計數器時序仿真圖</p><p>  3.3 6進制計數器設計</p><p>  ——

58、6進制計數器 ,對數字做記錄當計數器記錄到5之后產生進位,有進位端cont6、復位端rst6和使能端en6。</p><p>  library ieee; </p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p> 

59、 entity cnt6 is</p><p>  port(clk6,rst6,en6:in std_logic;</p><p>  cq6:out std_logic_vector(3 downto 0);</p><p>  cout6:out std_logic);</p><p>  end entity cnt6;</p&

60、gt;<p>  architecture one of cnt6 is </p><p><b>  begin</b></p><p>  process(clk6,rst6,en6)</p><p>  variable cqi:std_logic_vector(3 downto 0);</p><p&g

61、t;<b>  begin </b></p><p>  if rst6='1' then cqi:=(others => '0');</p><p>  elsif clk6'event and clk6='1' then</p><p>  if en6='1'

62、then </p><p>  if cqi<5 then cqi:=cqi+1;</p><p>  else cqi:=(others => '0');</p><p><b>  end if;</b></p><p><b>  end if;</b></

63、p><p><b>  end if;</b></p><p>  if cqi=5 then cout6<='1';</p><p>  else cout6<='0';</p><p><b>  end if;</b></p><p&

64、gt;<b>  cq6<=cqi;</b></p><p>  end process;</p><p>  end architecture one; </p><p>  圖3-5 6進制計數器RTL圖</p><p>  圖3-6 6進制計數器時序仿真圖 </p><p>

65、  3.4 電子秒表設計</p><p>  — —根據上面設計的10進制計數器、6進制計數器和分頻器設計一個簡單的秒表,可以記錄一個秒表的數據。</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity clock is</p>

66、<p>  port( clkk:in std_logic; ——外接時鐘信號</p><p>  enn:in std_logic; ——使能信號</p><p>  rstt:in std_logic; ——復位信號</p><p>

67、;  set:out std_logic_vector (23 downto 0) ); ——輸出數據</p><p>  end entity ;</p><p>  architecture one of miaobiao is </p><p>  component cnt10 is

68、 ——調用10進制計數器聲明語句</p><p>  port(clk10,rst10,en10:in std_logic;</p><p>  cq10:out std_logic_vector(3 downto 0);</p><p>  cout10:out std_logic);</p><p>  end component ;

69、</p><p>  component cnt6 is ——調用6進制計數器聲明語句</p><p>  port( clk6,rst6,en6:in std_logic;</p><p>  cq6:out std_logic_vector(3 downto 0);</p><p>  co

70、ut6:out std_logic);</p><p>  end component ;</p><p>  component counter IS ——調用分頻器聲明語句</p><p>  port( clk: in std_logic;</p><p>  co : out std_logic);&l

71、t;/p><p>  end component;</p><p>  signal clk1:std_logic;</p><p>  signal clk2:std_logic;</p><p>  signal clk3:std_logic;</p><p>  signal clk4:std_logic;</

72、p><p>  signal clk5:std_logic;</p><p>  signal clk6:std_logic;</p><p>  signal sett:std_logic_vector(23 downto 0);</p><p><b>  begin</b></p><p>  

73、u1: counter port map(clk=>clkk,co=>clk1); — — 例化語句</p><p>  u2:cnt10 port map(clk10=>clk1,rst10=>rstt,en10=>enn,cq10=>sett(3downto0),cout10=>clk2);</p><p>  u3:cnt10 port

74、 map(clk10=>clk2,rst10=>rstt,en10=>enn,cq10=>sett(7downto 4),cout10=>clk3);</p><p>  u4:cnt10portmap(clk10=>clk3,rst10=>rstt,en10=>enn,cq10=>sett(11downto 8),cout10=>clk4);</

75、p><p>  u5: cnt6 port map(clk6=>clk4,rst6=>rstt,en6=>enn,cq6=>sett(15 downto 12),cout6=>clk5);</p><p>  u6:cnt10portmap(clk10=>clk5,rst10=>rstt,en10=>enn,cq10=>sett(19dow

76、nto16),cout10=>clk6);</p><p>  u7:cnt6 port map(clk6=>clk6,rst6=>rstt,en6=>enn,cq6=>sett(23 downto 20));</p><p>  set<=sett;</p><p>  end architecture one;</p&g

77、t;<p>  圖3-7 電子秒表RTL圖</p><p>  圖3-8 電子秒表時序仿真圖</p><p><b>  3.5 實驗擴展</b></p><p>  根據實驗的內容可以適當的添加一些有實際作用和可行性的功能,如可以記錄并顯示多個數據。根據擴展的內容設計相應的電路和模塊來完成擴展的內容。比如記錄和顯示多個數據,可

78、以用多個秒表進行計數,在秒表電路的后面可以添加一個選擇電路,運用選擇電路選擇需要輸出的那個秒表的數值。</p><p>  3.5.1 選擇電路設計</p><p>  — — 根據輸入的rea信號,在顯示器上顯示出不同秒表記錄的數值。</p><p>  library ieee;</p><p>  use ieee.std_logic

79、_1164.all;</p><p>  entity choose is </p><p>  port ( lk: in std_logic; ——控制信號</p><p>  s1: in std_logic_vector(23 downto 0); ——秒表一的數據 </p><p

80、>  s2: in std_logic_vector(23 downto 0); ——秒表二的數據</p><p>  o : out std_logic_vector(23 downto 0)); ——輸出的數據</p><p>  end entity;</p><p>  architecture one of choose is</p

81、><p><b>  begin</b></p><p>  process(lk)</p><p><b>  begin </b></p><p>  if lk='1' then o<=s1;</p><p>  else o<=s2;

82、 </p><p><b>  end if ;</b></p><p>  end process;</p><p>  end architecture one;</p><p>  圖3-9 選擇電路RTL圖</p><p>  3.5.2 多次記錄數據秒表設計</p>

83、<p>  —— 根據兩個使能端enn1、enn2和rea信號來控制秒表1、2的輸出顯示在顯示器上。</p><p>  library ieee; ——頂層實體</p><p>  use ieee.std_logic_1164.all;</p><p>  entity clocks is</

84、p><p>  port (clk1:in std_logic; ——外接時鐘信號5MHz </p><p>  enn1:in std_logic; ——表一使能信號</p><p>  enn2:in std_logic; ——表二使能信號</p>

85、<p>  rst1:in std_logic; ——復位信號</p><p>  rea :in std_logic; ——讀取信號</p><p>  set1:out std_logic_vector (23 downto 0)) ;</p><p>  end entity;</p>

86、<p>  architecture one of miaobiao2 is</p><p>  component choose is ——調用選擇電路聲明語句</p><p>  port ( lk: in std_logic;</p><p>  s1: in std_logic_vector(23 d

87、ownto 0);</p><p>  s2: in std_logic_vector(23 downto 0);</p><p>  o : out std_logic_vector(23 downto 0) );</p><p>  end component;</p><p>  component clock is

88、 ——調用秒表聲明語句</p><p>  port(clkk:in std_logic;</p><p>  enn:in std_logic;</p><p>  rstt:in std_logic;</p><p>  set:out std_logic_vector (23 downto 0) );<

89、/p><p>  end component ;</p><p>  signal a,b,c,d: std_logic_vector(23 downto 0);</p><p>  begin ——例化語句</p><p>  u1: clock port map (clk

90、k=>clk1,enn=>enn1,rstt=>rst1,set=>a);</p><p>  u3: clock port map (clkk=>clk1,enn=>enn2,rstt=>rst1,set=>c);</p><p>  u5: choose port map (lk=>rea, s1=>a,s2=>c,o

91、=>set1);</p><p>  end architecture one;</p><p>  圖3-10 可多次記錄秒表RTL圖</p><p>  圖3-11 可多次記錄秒表時序仿真圖</p><p>  3.6 電子秒表下載實現(xiàn)</p><p>  新建一個工程,工程名為clocks,在工程中建立多

92、個VHDL文件包括 :cnt10.vhd、cnt6.vhd、counter.vhd、clock.vhd 和clocks.vhd。</p><p>  編譯頂層文件,對編譯的結果進行仿真,引腳分配,下載到硬件中等等。</p><p>  編譯程序并且驗證VHDL語言是否正確無誤 ,采用功能仿真。</p><p>  建立波形圖文件,并對輸入端進行賦值 ,并運行得到如圖

93、3-11的波形圖。</p><p>  進行引腳分配,如圖3-12所示。</p><p>  下載到實驗室的芯片(KX_DN系列)中并運行,如圖3-13所示。</p><p>  圖3-12 引腳分配圖</p><p>  圖3-13 程序下載到芯片效果圖</p><p><b>  結 論</b>

94、;</p><p>  通過此次課程設計,讓我對EDA這門技術有了更深的體會,并更好的學會了使用QuartusⅡ軟件進行硬件設計。</p><p>  在編寫程序的過程中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學習上存在的不足。通過與同學探討和請教老師,終于把問題都解決了,并加深了對數字時鐘原理和設計思路的了解。同時我也掌握了做課程設計的一般流程,為以后的電子設計這塊積累了一定的經驗,為以后從事

95、相關工作有一些幫助。最終解決了問題,攥寫成報告。</p><p>  通過對設計對實現(xiàn)和對報告對撰寫,深深體會到了VHDL語言和EDA技術的一些技巧和設計思想,在完成設計的過程中,應該具有很清晰地思路,才可以使電路更完美和簡便,要敢想敢做但是不應該有投機取巧的心理。在完成每一步的時候都有意想不到的收獲也有可能導致錯誤,所以在設計對過程中要集中精神。在寫報告的過程中,更加凸顯了細心二字。不可自認為完美,必須按照格式

96、要求來撰寫自己的報告,所以必須做到足夠的精確。</p><p>  利用EDA工具,電子設計師可以從概念、算法、協(xié)議等開始設計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計版圖的整個過程的計算機上自動處理完成。在進行設計時并不束縛設計者的想象力,這使得自學、擴展也可以很容易實現(xiàn)。在設計中充分的認識到EDA課程對硬件設計的重要性,若把本門課程學好、學精,對硬件設計將有很大對幫助。以

97、后若有機會我將會利用更多時間來學習EDA技術、更加深入的學習EDA技術。EDA技術以其獨有的優(yōu)點和應用范圍有著非常好的發(fā)展前景,是近幾年電子工業(yè)的發(fā)展趨向,中國的EDA行業(yè)發(fā)展十分迅速,有著很大的潛力。所以我們學好這門課程是十分必要的,我們不應該僅僅拘泥于一門課程的學習,要結合各學科的連接點,把我們的知識串聯(lián)起來。為我們的未來做好知識儲備。</p><p>  以上就我關于這次課程設計的想法,在以后,我會用更多的

98、時間去了解EDA。并且提高自己的知識水平。 </p><p><b>  參考文獻</b></p><p>  [1] 潘松,黃繼業(yè).EDA技術使用教程(第三版).北京:科學出版社,2006</p><p>  [2] 蔣小燕,俞偉鈞,張立臣. EDA技術及VHDL.南京:東南大學出版社,2008</p><p>  [

99、3] 鄭家龍,王小海,章安元.集成電子技術基礎教程.北京:高等教育出版社</p><p><b>  2002</b></p><p>  [4] 郭勇.EDA技術.北京:高等教育出版社,2006</p><p>  [5] 盧杰,賴毅.VHDL與數字電路設計.北京:科學出版社,2001</p><p>  [6] 趙全

100、利,秦春斌.EDA技術及應用教程.北京:機械工業(yè)出版社,2009 </p><p>  [7] 段玉生,王艷丹,何麗靜.電工電子技術與EDA基礎.北京:清華大學出版社,2009</p><p>  [8] 孫富明,李笑盈.基于多種EDA工具的FPGA設計,電子技術應用,2002年1月,第1期 </p><p>  [9] 李國麗,朱維勇.電子技術實驗指導書.合肥:中

溫馨提示

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

評論

0/150

提交評論