欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      EDA數(shù)字鐘課程設(shè)計(jì)

      時(shí)間:2019-05-14 21:02:29下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《EDA數(shù)字鐘課程設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《EDA數(shù)字鐘課程設(shè)計(jì)》。

      第一篇:EDA數(shù)字鐘課程設(shè)計(jì)

      課 程 設(shè) 計(jì) 報(bào) 告

      設(shè)計(jì)題目:用VHDL語(yǔ)言實(shí)現(xiàn)數(shù)字鐘的設(shè)計(jì)

      班 級(jí):電子1002班 學(xué) 號(hào):20102625 姓 名:于曉 指導(dǎo)教師:李世平、李寧 設(shè)計(jì)時(shí)間:2012年12月

      摘要

      數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的鐘表。本設(shè)計(jì)主要是實(shí)現(xiàn)數(shù)字鐘的功能,程序用VHDL語(yǔ)言編寫,整體采用TOP-TO-DOWN設(shè)計(jì)思路,具有基本的顯示年月日時(shí)分秒和星期的功能,此外還有整點(diǎn)報(bào)時(shí)功能。該數(shù)字鐘的實(shí)現(xiàn)程序分為頂層模塊、年月模塊、日模塊、時(shí)分秒定時(shí)模塊、數(shù)碼管顯示模塊、分頻模塊、星期模塊,此外還有一個(gè)庫(kù)。該程序主要是用了元件例化的方法,此外還有進(jìn)程等重要語(yǔ)句。

      沒有脈沖時(shí),顯示時(shí)分秒,set按鈕產(chǎn)生第一個(gè)脈沖時(shí),顯示年月日,第2個(gè)脈沖到來時(shí)可預(yù)置年份,第3個(gè)脈沖到來時(shí)可預(yù)置月份,依次第4、5、6、7、8個(gè)脈沖到來時(shí)分別可預(yù)置日期、時(shí)、分、秒、星期,第 9個(gè)脈沖到來時(shí)設(shè)置星期后預(yù)置結(jié)束,正常工作,顯示的是時(shí)分秒和星期。調(diào)整設(shè)置通過Up來控制,UP為高電平,upclk有脈沖到達(dá)時(shí),預(yù)置位加1,否則減1。當(dāng)整點(diǎn)到達(dá)時(shí),報(bào)時(shí)器會(huì)鳴響,然后手動(dòng)按鍵停止報(bào)時(shí)。

      關(guān)鍵詞:數(shù)字鐘,VHDL,元件例化,數(shù)碼管

      1、課程設(shè)計(jì)目的

      掌握利用可編程邏輯器件和EDA設(shè)計(jì)工具進(jìn)行電子系統(tǒng)設(shè)計(jì)的方法

      2、課程設(shè)計(jì)內(nèi)容及要求

      設(shè)計(jì)實(shí)現(xiàn)一個(gè)具有帶預(yù)置數(shù)的數(shù)字鐘,具有顯示年月日時(shí)分秒的功能。用6個(gè)數(shù)碼管顯示時(shí)分秒,set按鈕產(chǎn)生第一個(gè)脈沖時(shí),顯示切換年月日,第2個(gè)脈沖到來時(shí)可預(yù)置年份,第3個(gè)脈沖到來時(shí)可預(yù)置月份,依次第4、5、6、7個(gè)脈沖到來時(shí)分別可預(yù)置日期、時(shí)、分、秒,第 8個(gè)脈沖到來后預(yù)置結(jié)束,正常工作,顯示的是時(shí)分秒。Up為高電平時(shí),upclk有脈沖到達(dá)時(shí),預(yù)置位加1.否則減1,還可以在此基礎(chǔ)上增加其它功能。

      3、VHDL程序設(shè)計(jì)

      3.1整體設(shè)計(jì)思路

      本設(shè)計(jì)采用top-down 模式設(shè)計(jì),分模塊進(jìn)行,各功能都使用元件例化方式設(shè)計(jì),主要有LED顯示模塊、時(shí)分秒定時(shí)模塊、日期模塊、年月模塊、分頻模塊、星期模塊,此外還創(chuàng)建了一個(gè)程序包,用來實(shí)現(xiàn)年月日、時(shí)分秒的加減調(diào)整。主要運(yùn)用了過程語(yǔ)句、元件例化語(yǔ)句、信號(hào)賦值語(yǔ)句、和順序語(yǔ)句

      圖3-1-1 整體結(jié)構(gòu)圖

      圖3-1-2 頂層模塊引腳圖

      3.2各模塊設(shè)計(jì)思路

      3.2.1 普通計(jì)數(shù)器(時(shí)、分、秒、月、年計(jì)數(shù)器)設(shè)計(jì)

      時(shí)鐘模塊通過調(diào)用程序包的時(shí)分秒加減過程語(yǔ)句實(shí)現(xiàn)兩個(gè)六十進(jìn)制,一個(gè)二十四進(jìn)制,秒的進(jìn)位信號(hào)作為分的計(jì)數(shù)時(shí)鐘信號(hào),分的進(jìn)位信號(hào)作為時(shí)的時(shí)鐘信號(hào)。時(shí)的進(jìn)位信號(hào)通過管腳映射到日期模塊的計(jì)數(shù)時(shí)鐘信號(hào)。

      定時(shí)功能在時(shí)分秒模塊中,是由分計(jì)數(shù)器在到達(dá)59時(shí)產(chǎn)生一個(gè)脈沖,讓speaker產(chǎn)生高電位鳴響。

      年月模塊主要實(shí)現(xiàn)月份的十二進(jìn)制計(jì)數(shù)器,和100進(jìn)制的年份計(jì)數(shù)器。月份的計(jì)數(shù)信號(hào)由日期模塊的進(jìn)位信號(hào)傳遞過來,年份的時(shí)鐘信號(hào)由月份的進(jìn)位信號(hào)產(chǎn)生。

      圖3-2-1 時(shí)分秒引腳圖 圖3-2-2 年月引腳圖 3.2.2 可變進(jìn)制計(jì)數(shù)器(天計(jì)數(shù)器)模塊設(shè)計(jì)

      不同月中的天的數(shù)量是不同的,例如“大月”就有31“天”,“小月”有30“天”,平年“二月”有28“天”,而閏年“二月”有29“天”。所以天計(jì)數(shù)器應(yīng)該具備進(jìn)制可變的性能。日期模塊主要分為三個(gè)部分,預(yù)置日期加,預(yù)置日期減和產(chǎn)生進(jìn)位信號(hào),使月份增加。平閏年的判斷是通過年月模塊傳輸過來年份信號(hào)(兩個(gè)4位的BCD碼),如果高位的信號(hào)為“xxx0”且低位的信號(hào)為“xx00”(如20,84等),或高位為“xxx1”且低位為“xx10”(如32等)則判斷為閏年。這種方法的包含了一百年中的所有閏年的情況。然后判斷大月小月可以判斷月份來確定30進(jìn)制還是31進(jìn)制。進(jìn)位信號(hào)也是分為大月、小月、平年閏年來確定是否產(chǎn)生。

      圖3-2-3 日模塊引腳圖

      3.2.3 LED顯示模塊

      主要通過接受setpin的控制信號(hào)來選擇顯示的內(nèi)容,把不同的信號(hào)賦給輸出的端口,從而實(shí)現(xiàn)時(shí)分秒,年月日的切換。3.2.4 星期模塊

      通過七進(jìn)制計(jì)數(shù)器實(shí)現(xiàn),同時(shí)帶有預(yù)置的功能,不能同年月調(diào)整聯(lián)動(dòng),但是能單獨(dú)調(diào)整。

      圖3-2-4 星期模塊引腳圖

      4、仿真與分析

      4.1 日模塊

      4.1.1 年份為2000年,月份為2月,有29天,初值設(shè)為2000年2月28日,仿真中日為:28、29、1、2、?

      4.1.2 年份為1999年,月份為2月,有28天,初值設(shè)為1999年2月28日,仿真中日為:28、1、2、?

      4.1.3 年份為2000年,月份為3月,有31天,初值設(shè)為2000年3月30日,仿真中日為:30、31、1、2、?

      4.1.4 年份為2000年,月份為4月,有30天,初值設(shè)為2000年4月30日,仿真中日為:30、1、2、?

      4.2 年月模塊

      初值設(shè)為1999年12月,lock為1時(shí),顯示年月,lock為3時(shí),預(yù)置月,lock為2時(shí),預(yù)置年

      4.3 時(shí)分秒定時(shí)模塊

      lock為0時(shí),顯示時(shí)分秒,lock為5時(shí),預(yù)置時(shí),lock為6時(shí),預(yù)置分,lock為7時(shí),預(yù)置秒。當(dāng)分到達(dá)59時(shí),整點(diǎn)報(bào)時(shí)器響,speaker高電位,隨著手動(dòng)清零,恢復(fù)原位。

      4.4 星期模塊

      初值設(shè)為星期1,仿真中顯示為:1、2、3、4、5、6、7、1、?

      4.5 分頻模塊

      4.6 頂層設(shè)計(jì)模塊

      5、課程設(shè)計(jì)總結(jié)

      本次課程設(shè)計(jì)歷時(shí)兩天半,經(jīng)過自己不斷的努力完成了數(shù)字鐘的設(shè)計(jì),程序代碼的編寫調(diào)試及仿真。以前只是看書或者編一些很小的程序用來仿真,覺得沒怎么難,但當(dāng)進(jìn)行此次課程設(shè)計(jì)真正處理一個(gè)較大程序時(shí),問題便都顯現(xiàn)出來。雖然在這個(gè)過程中遇到了很多的問題,但是最終都得到了很好的解決。

      我此次設(shè)計(jì)的程序是在課本原有數(shù)字鐘程序的基礎(chǔ)上進(jìn)行添加更改得來的,最初在運(yùn)行原有程序時(shí)很順利,但是隨著加的東西越來越多,程序中出現(xiàn)的問題也就越來越多。很多同學(xué)都覺得在已有程序上再添加?xùn)|西看似簡(jiǎn)單,實(shí)則很容易混亂,理不清頭緒,而且這個(gè)原有程序是用進(jìn)程所寫,比較麻煩。雖然這樣容易出現(xiàn)問題,不過我覺得這是一個(gè)鍛煉的好機(jī)會(huì)。、在處理分頻模塊時(shí),最開始按照老師的要求設(shè)置了頻率,但是當(dāng)運(yùn)行時(shí),發(fā)現(xiàn)根本出不來,后來與同學(xué)討論后,發(fā)現(xiàn)頻率過大,后來改為八分頻,使得分頻

      模塊能夠使用。在一開始加星期模塊時(shí),沒怎么考慮,可是當(dāng)加進(jìn)去后才發(fā)現(xiàn),星期模塊不能與其他模塊很好的相連,不能很好的做到與“日模塊”相合,后來雖有改動(dòng),但最終沒能改成功。在加定時(shí)器功能時(shí),一開始單獨(dú)為定時(shí)器列了一個(gè)模塊,所寫的程序也很復(fù)雜,錯(cuò)誤百出,最后程序改好后,仿真卻出不來。后來經(jīng)過同學(xué)的提點(diǎn),就把程序改簡(jiǎn)單了,單純的來個(gè)脈沖就出現(xiàn)高電平,但后來仿真發(fā)現(xiàn)高電平一直在高位,沒法給脈沖,最后沒辦法便手動(dòng)脈沖。與頂層模塊連接后,又發(fā)現(xiàn)分滿59的脈沖沒給,因?yàn)槲业臅r(shí)分秒全都放在了一起,只能將定時(shí)模塊挪到時(shí)分秒模塊中,這樣反而使得整個(gè)工程簡(jiǎn)單了一些。

      在各個(gè)模塊都能仿真成功后,頂層模塊的程序與仿真卻出現(xiàn)了很多問題。首先是頂層模塊程序有很多警告,例如“second_waver”沒有用到之類的,后來在改動(dòng)的過程中,便把內(nèi)變量換為了外變量,但是有些原來的警告沒有了,但是新的警告又出現(xiàn)了,原本能夠連好的U3與U4 模塊均不能正常連接,后來與同學(xué)自習(xí)查找,才終于將錯(cuò)誤找出,由于粗心大意誤動(dòng)了一些元件例化時(shí)的變量,使得時(shí)間拜拜浪費(fèi)。最后在仿真的時(shí)候,仿真結(jié)果出不來,經(jīng)過與同學(xué)商量在每個(gè)程序中都給年月日等變量均付了初值,才讓仿真出來。

      此次課程設(shè)計(jì)雖然只有短短的兩天半的時(shí)間,但是經(jīng)過前期的查找資料,后來的實(shí)驗(yàn)室實(shí)際操作,再到現(xiàn)在的報(bào)告總結(jié),我收獲了很多。其實(shí)完成一個(gè)設(shè)計(jì),編程只是很小的一部分,最主要的在于查找資料以及調(diào)試程序,此次設(shè)計(jì)我在查找資料方面做的不是很充分,以至于設(shè)計(jì)的面很小,而且在遇到問題后不能很快的找出,以后一定要做好準(zhǔn)備工作。此次課程設(shè)計(jì)中遇到的問題看似不大,但都是很好的問題,對(duì)我以后的設(shè)計(jì)有很大的幫助,一定會(huì)牢牢記住。

      最后,此次課程設(shè)計(jì)的完成很大程度上取決于老師和同學(xué)對(duì)我的指導(dǎo)與幫助,這更能說明,一個(gè)較大設(shè)計(jì)的完成及實(shí)現(xiàn),不是僅限于自身,我們要學(xué)會(huì)與別人交流溝通,才能做到更好。

      6、參考文獻(xiàn)

      [1]李景華,杜玉遠(yuǎn).可編程邏輯器件與EDA技術(shù).沈陽(yáng):東北大學(xué)出版社,2000 [2] 姜如東,VHDL語(yǔ)言程序設(shè)計(jì)及應(yīng)用,北京郵電大學(xué)出版社

      [3] 康華光.電子技術(shù)基礎(chǔ)(數(shù)字部分)[M].北 京:高等教育出版社,2001.

      [4] [5]

      第二篇:EDA課程設(shè)計(jì)——多功能數(shù)字鐘

      哈爾濱工業(yè)大學(xué)(威海)電子學(xué)課程設(shè)計(jì)報(bào)告

      帶有整點(diǎn)報(bào)時(shí)的數(shù)字鐘設(shè)計(jì)與制作

      姓名: 蔣棟棟 班級(jí): 0802503 學(xué)號(hào): 080250331 指導(dǎo)教師:

      井巖

      目錄

      一、課程設(shè)計(jì)的性質(zhì)、目的和任務(wù)????????????3

      二、課程設(shè)計(jì)基本要求?????????????????3

      三、設(shè)計(jì)課題要求???????????????????3

      四、課程設(shè)計(jì)所需要儀器????????????????4

      五、設(shè)計(jì)步驟?????????????????????4

      1、整體設(shè)計(jì)框圖???????????????????4

      2、各個(gè)模塊的設(shè)計(jì)與仿真???????????????4

      2.1分頻模塊???????????????????????4

      2.2計(jì)數(shù)器模塊??????????????????????6

      2.3控制模塊??????????????????????10

      2.4數(shù)碼管分配?????????????????????13

      2.5顯示模塊??????????????????????14

      2.6報(bào)時(shí)模塊??????????????????????16

      六、調(diào)試中遇到的問題及解決的方法???????????18

      七、心得體會(huì)?????????????????????18

      一、課程設(shè)計(jì)的性質(zhì)、目的和任務(wù)

      創(chuàng)新精神和實(shí)踐能力二者之中,實(shí)踐能力是基礎(chǔ)和根本。這是由于創(chuàng)新基于實(shí)踐、源于實(shí)踐,實(shí)踐出真知,實(shí)踐檢驗(yàn)真理。實(shí)踐活動(dòng)是創(chuàng)新的源泉,也是人才成長(zhǎng)的必由之路。

      通過課程設(shè)計(jì)的鍛煉,要求學(xué)生掌握電路的一般設(shè)計(jì)方法,具備初步的獨(dú)立設(shè)計(jì)能力,提高綜合運(yùn)用所學(xué)的理論知識(shí)獨(dú)立分析和解決問題的能力,培養(yǎng)學(xué)生的創(chuàng)新精神。

      二、課程設(shè)計(jì)基本要求

      掌握現(xiàn)代大規(guī)模集成數(shù)字邏輯電路的應(yīng)用設(shè)計(jì)方法,進(jìn)一步掌握電子儀器的正確使用方法,以及掌握利用計(jì)算機(jī)進(jìn)行電子設(shè)計(jì)自動(dòng)化(EDA)的基本方法。

      三、設(shè)計(jì)課題要求

      (1)構(gòu)造一個(gè)24小時(shí)制的數(shù)字鐘。要求能顯示時(shí)、分、秒。(2)要求時(shí)、分、秒能各自獨(dú)立的進(jìn)行調(diào)整。

      (3)能利用喇叭作整點(diǎn)報(bào)時(shí)。從59分50秒時(shí)開始報(bào)時(shí),每隔一秒報(bào)時(shí)一秒,到達(dá)00分00秒時(shí),整點(diǎn)報(bào)時(shí)。整點(diǎn)報(bào)時(shí)聲的頻率應(yīng)與其它的報(bào)時(shí)聲頻有明顯區(qū)別。

      #設(shè)計(jì)提示(僅供參考):(1)對(duì)頻率輸入的考慮

      數(shù)字鐘內(nèi)所需的時(shí)鐘頻率有:基準(zhǔn)時(shí)鐘應(yīng)為周期一秒的標(biāo)準(zhǔn)信號(hào)。報(bào)時(shí)頻率可選用1KHz和2KHz左右(兩種頻率相差八度音,即頻率相差一倍)。另外,為防止按鍵反跳、抖動(dòng),微動(dòng)開關(guān)輸入應(yīng)采用寄存器輸入形式,其時(shí)鐘應(yīng)為幾十赫茲。

      (2)計(jì)時(shí)部分計(jì)數(shù)器設(shè)計(jì)的考慮 分、秒計(jì)數(shù)器均為模60計(jì)數(shù)器。

      小時(shí)計(jì)數(shù)為模24計(jì)數(shù)器,同理可建一個(gè)24進(jìn)制計(jì)數(shù)器的模塊。(3)校時(shí)設(shè)計(jì)的考慮

      數(shù)字鐘校準(zhǔn)有3個(gè)控制鍵:時(shí)校準(zhǔn)、分校準(zhǔn)和秒校準(zhǔn)。

      微動(dòng)開關(guān)不工作,計(jì)數(shù)器正常工作。按下微動(dòng)開關(guān)后,計(jì)數(shù)器以8Hz頻率連續(xù)計(jì)數(shù)(若只按一下,則計(jì)數(shù)器增加一位),可調(diào)用元件庫(kù)中的邏輯門建一個(gè)控制按鍵的模塊,即建立開關(guān)去抖動(dòng)電路(見書70頁(yè))。

      (4)報(bào)時(shí)設(shè)計(jì)的考慮

      可以將高頻時(shí)鐘分頻得到約2KHz和1KHz的音頻,作為數(shù)字鐘的報(bào)時(shí)頻率。當(dāng)電子鐘顯示XX:59:50時(shí),數(shù)字鐘開始報(bào)時(shí)“DO“,持續(xù)一秒,而且每隔一秒報(bào)一下,直至顯示XX:00:00時(shí)報(bào)“DI”,持續(xù)一秒后停止。最后輸出至喇叭。應(yīng)調(diào)用元件庫(kù)中的邏輯門建一個(gè)控制報(bào)時(shí)的模塊。

      (5)建一個(gè)七段譯碼的模塊

      因在系統(tǒng)可編程器件實(shí)驗(yàn)箱上的數(shù)碼管沒有經(jīng)過譯碼,故要用AHDL語(yǔ)言寫一個(gè)七段譯碼的模塊,且應(yīng)考慮數(shù)碼管為共陽(yáng)極。數(shù)碼管上的點(diǎn)(D2、D4、D6)應(yīng)置Vcc。

      四、課程設(shè)計(jì)所需要儀器

      1、計(jì)算機(jī)一臺(tái)

      2、quartusⅡ軟件

      3、FPGA開發(fā)板

      五、設(shè)計(jì)步驟

      1、模塊介紹

      (1)分頻模塊:產(chǎn)生1Hz、1KHz、2KHz頻率(2)計(jì)數(shù)器模塊:生成60進(jìn)制、24進(jìn)制計(jì)數(shù)器(3)控制模塊:按鍵控制、按鍵消抖

      (4)顯示模塊:7段數(shù)碼管顯示器,分別顯示小時(shí)、分鐘、秒(5)報(bào)時(shí)模塊:進(jìn)行整點(diǎn)報(bào)時(shí)

      2、各個(gè)模塊的設(shè)計(jì)與仿真

      2.1分頻模塊

      CLK晶振頻率50MHZ,分成2KHZ,1KHZ,1HZ的信號(hào)?;鶞?zhǔn)1HZ信號(hào)作為時(shí)鐘計(jì)時(shí)的秒計(jì)數(shù)時(shí)鐘信號(hào);分頻的1KHZ,2KHZ信號(hào)用于報(bào)時(shí)電路的不同聲訊。

      程序代碼:

      library ieee;use ieee.std_logic_1164.all;entity fre is port(clk ,sel: in std_logic;clk1hz,clk1khz,clk2khz:out std_logic);end fre;architecture beh of fre is signal data1khz,data2khz,data1hz : std_logic := '0';begin clk1hz <= data1hz;clk1khz <= data1khz;clk2khz <= data2khz;clk1khz_pro : process(clk)--產(chǎn)生1khz信號(hào) variable cnt : integer range 0 to 24999;begin if clk'event and clk='1' then if cnt = 24999 then cnt := 0;data1khz <= not data1khz;else cnt := cnt + 1;end if;end if;end process clk1khz_pro;clk2khz_pro : process(clk)--variable cnt : integer range 0 to 12499;begin if clk'event and clk='1' then if cnt = 12499 then cnt := 0;data2khz <= not data2khz;else cnt := cnt + 1;end if;end if;end process clk2khz_pro;clk1hz_pro : process(data1khz)--variable cnt : integer range 0 to 499;begin if data1khz'event and data1khz='1' then if sel='0' then cnt:=0;else if cnt = 499 then cnt := 0;data1hz <= not data1hz;else cnt := cnt + 1;end if;end if;end if;end process clk1hz_pro;end beh;

      輸入模塊電路圖:

      產(chǎn)生2khz信號(hào) 產(chǎn)生1hz 信號(hào) 5 freclkclk1hzclk2khzinst selclk1khz2.2計(jì)數(shù)器模塊

      由秒計(jì)數(shù)器,分計(jì)數(shù)器,時(shí)計(jì)數(shù)器組成了最基本的數(shù)字鐘計(jì)時(shí)電路,兩個(gè)六十進(jìn)制計(jì)數(shù)器與二十四進(jìn)制計(jì)數(shù)器組合構(gòu)成。

      程序代碼:

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;

      entity shuzizhong is port(clk_change : in std_logic;s_en,m_en,h_en:in std_logic;sel:in std_logic;secout,minout,hourout :out std_logic;sl,sh,ml,mh,hl,hh:out std_logic_vector(3 downto 0);a:out std_logic_vector(15downto 0));end shuzizhong;architecture behav of shuzizhong is

      signal low_rega,high_rega,low_regb,high_regb,low_regc,high_regc :std_logic_vector(3 downto 0):=“0000”;signal sout,mout,hout :std_logic :='0';begin--秒的60進(jìn)制進(jìn)制 counter_sec_l : process(clk_change,s_en)begin

      sl<=low_rega;sh<=high_rega;ml<=low_regb;mh<=high_regb;hl<=low_regc;hh<=high_regc;6 if clk_change'event and clk_change='1' then if s_en='1' then if low_rega=“1001” then low_rega <= “0000”;else low_rega <= low_rega+'1';end if;end if;end if;end process counter_sec_l;counter_sec_h : process(clk_change,s_en,low_rega)begin if clk_change'event and clk_change='1' then if s_en='1' then if low_rega=“1001” then if high_rega =“0101”then high_rega <= “0000”;else high_rega <= high_rega+'1';end if;end if;end if;end if;end process counter_sec_h;sout <= '1' when low_rega=“1001” and high_rega=“0101” else '0';

      ----分鐘的60進(jìn)制設(shè)置 counter_min_l : process(clk_change,m_en)begin if clk_change'event and clk_change='1' then if m_en='1' then if sout='1'or sel='0' then if low_regb=“1001” then low_regb <= “0000”;else low_regb <= low_regb+'1';end if;end if;end if;end if;end process counter_min_l;counter_min_h : process(clk_change,m_en,low_regb)begin if clk_change'event and clk_change='1' then 7 if sout='1'or sel='0' then if m_en='1' then if low_regb=“1001” then

      if high_regb =“0101”then

      high_regb <= “0000”;else high_regb <= high_regb+'1';end if;end if;end if;end if;end if;end process counter_min_h;mout <= '1' when low_regb=“1001” and high_regb=“0101”and sout='1' else '0';--小時(shí)的24進(jìn)制設(shè)置 counter_hour_l : process(clk_change,h_en)begin if clk_change'event and clk_change='1' then if h_en='1' then if mout='1'or sel='0' then if low_regc=“1001”or hout='1' then low_regc <= “0000”;else low_regc <= low_regc+'1';end if;end if;end if;end if;end process counter_hour_l;counter_hour_h : process(clk_change,h_en,hout)begin if clk_change'event and clk_change='1' then if mout='1'or sel='0' then if h_en='1' then if hout='1' then high_regc<=“0000”;else if low_regc=“1001” then high_regc <= high_regc+'1';end if;end if;end if;8 end if;end if;end process counter_hour_h;hout <= '1' when low_regc=“0011” and high_regc=“0010” else '0';secout<=sout;minout<=mout;hourout<=hout;a<=high_regb&low_regb&high_rega&low_rega;end behav;

      輸入模塊電路圖:

      shuzizhongclk_changes_enm_enh_enselsecoutminouthouroutsl[3..0]sh[3..0]ml[3..0]mh[3..0]hl[3..0]hh[3..0]a[15..0]inst

      2.3控制模塊

      分五個(gè)狀態(tài)0狀態(tài)正常計(jì)時(shí),按下按鍵進(jìn)入下一狀態(tài)開始調(diào)時(shí)模式1,按下按鍵進(jìn)入調(diào)秒模式2,按下按鍵進(jìn)入調(diào)分模式3,按下按鍵進(jìn)入調(diào)小時(shí)模式4.按下按鍵恢復(fù)正常計(jì)時(shí)模式。

      程序代碼:

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity key_press is port(set ,mode: in std_logic;clk1khz,clk1hz: in std_logic;secout,minout: in std_logic;clk_change,clk2hz_en:out std_logic;sel,s_ce,m_ce,h_ce:out std_logic;s_en,m_en,h_en:out std_logic);end key_press;architecture beh of key_press is 9 signal key1,key2:std_logic;signal sce_reg, mce_reg ,hce_reg:std_logic;signal ssl,ssen,mmen,hhen:std_logic;signal con : integer range 0 to 4 :=0;--按鍵按下(延時(shí))begin

      key_press2 : process(set,clk1khz)variable cnt :integer range 0 to 999;begin if set='0' then if clk1khz'event and clk1khz='1'then if cnt=50 and set='0' then cnt :=cnt+1;key2 <= '1';else cnt:=cnt+1;key2 <= '0';end if;end if;else cnt:=0;key2<='0';end if;end process key_press2;key_press1 : process(mode,clk1khz)variable cnt :integer range 0 to 999;begin if mode='0' then if clk1khz'event and clk1khz='1'then if cnt=50 and mode='0' then cnt :=cnt+1;key1 <= '1';else cnt:=cnt+1;key1 <= '0';end if;end if;else cnt:=0;key1<='0';end if;end process key_press1;count : process(key1,key2)begin if key1'event and key1='1' then if con=4 then con<=0;else con<=con+1;end if;end if;10 end process count;con_pro : process(con)begin case con is when 0 => ssl<='1';sce_reg <= '0';ssen <='1';mce_reg <= '0';mmen <='1';hce_reg <= '0';hhen <='1';clk2hz_en <='0';when 1 => ssl<='0';sce_reg <= '0';ssen <='1';mce_reg <= '0';mmen <='1';hce_reg <= '0';hhen <='1';clk2hz_en <='1';when 2 => ssl<='0';sce_reg <= '1';ssen <='1';mce_reg <= '0';mmen <='0';hce_reg <= '0';hhen <='0';clk2hz_en <='1';when 3 => ssl<='0';sce_reg <= '0';ssen <='0';mce_reg <= '1';mmen <='1';hce_reg <= '0';hhen <='0';clk2hz_en <='1';when 4 => ssl<='0';sce_reg <= '0';ssen <='0';mce_reg <= '0';mmen <='0';hce_reg <= '1';hhen <='1';clk2hz_en <='1';when others => ssl<='0';sce_reg <= '0';ssen <='1';mce_reg <= '0';mmen <='1';hce_reg <= '0';hhen <='1';clk2hz_en <='0';end case;end process con_pro;sel_pro : process(ssl)begin case ssl is when '0'=> s_ce<=sce_reg;m_ce<=mce_reg;h_ce<=hce_reg;clk_change<=key2;when '1'=> s_ce<=ssen;11 m_ce<=mmen;h_ce<=hhen;clk_change<=clk1hz;when others=> s_ce<=ssen;m_ce<=secout;h_ce<=minout;clk_change<=clk1hz;end case;end process sel_pro;sel<=ssl;s_en<=ssen;m_en<=mmen;h_en<=hhen;end beh;

      輸入模塊電路圖: key_presssetclk_changemodeclk2hz_enclk1khzselclk1hzs_cesecoutm_ceminouth_ces_enm_enh_eninst

      2.4數(shù)碼管分配

      程序代碼:

      library ieee;use ieee.std_logic_1164.all;entity display is port(datain : in std_logic_vector(3 downto 0);dataout : out std_logic_vector(7 downto 0));end display;architecture duan of display is begin process(datain)begin case datain is 12 when “0000” => dataout <=“11000000”;--dp,g,f,e,d,c,b,a when “0001” => dataout <=“11111001”;when “0010” => dataout <=“10100100”;when “0011” => dataout <=“10110000”;when “0100” => dataout <=“10011001”;when “0101” => dataout <=“10010010”;when “0110” => dataout <=“10000010”;when “0111” => dataout <=“11111000”;when “1000” => dataout <=“10000000”;when “1001” => dataout <=“10010000”;when “1010” => dataout <=“10111111”;when “1011” => dataout <=“10000011”;when “1100” => dataout <=“10100111”;when “1101” => dataout <=“10100001”;when “1110” => dataout <=“10000110”;when “1111” => dataout <=“10001110”;when others => null;end case;end process;end;

      輸入模塊電路圖:

      displaydatain[3..0]dataout[7..0]inst

      2.5顯示模塊

      使用七段數(shù)碼管顯示小時(shí)、分鐘與秒

      程序代碼:

      library ieee;use ieee.std_logic_1164.all;entity scan is port(clk1khz : in std_logic;sl,sh,ml,mh,hl,hh : in std_logic_vector(3 downto 0);clk2hz_en : in std_logic;s_ce,m_ce,h_ce : in std_logic;en_out : out std_logic_vector(7 downto 0);13 dataout : out std_logic_vector(3 downto 0));end scan;architecture beh of scan is signal cnt : integer range 0 to 7;signal en : std_logic_vector(7 downto 0);signal clk2hz : std_logic;signal h_ce_reg,m_ce_reg,s_ce_reg : std_logic;begin h_ce_reg <= not h_ce;m_ce_reg <= not m_ce;s_ce_reg <= not s_ce;cnt_pro : process(clk1khz)begin if clk1khz'event and clk1khz='1' then if cnt = 7 then cnt <= 0;else cnt <= cnt + 1;end if;end if;end process cnt_pro;clk2hz_pro :process(clk1khz)variable c : integer range 0 to 499 := 0;begin if clk1khz'event and clk1khz='1' then if clk2hz_en ='1' then if c =499 then c := 0;clk2hz <= not clk2hz;else c := c + 1;end if;else clk2hz <= '0';end if;end if;end process clk2hz_pro;scan_pro : process(cnt,sl,sh,ml,mh,hl,hh)begin case cnt is when 0 => dataout <= sl;en <= “11111110”;when 1 => dataout <= sh;en <= “11111101”;when 2 => dataout <= ml;en <= “11110111”;when 3 => dataout <= mh;en <= “11101111”;when 4 => dataout <= hl;en <= “10111111”;14 when 5 => dataout <= hh;en <= “01111111”;when 6 => dataout <= “1010”;en <= “11111011”;when 7 => dataout <= “1010”;en <= “11011111”;when others => null;end case;end process scan_pro;

      en_out <= en or((clk2hz & clk2hz)or(h_ce_reg & h_ce_reg))& clk2hz &((clk2hz & clk2hz)or(m_ce_reg & m_ce_reg))& clk2hz &((clk2hz & clk2hz)or(s_ce_reg & s_ce_reg));end beh;

      輸入模塊電路圖:

      scanclk1khzen_out[7..0]sl[3..0]dataout[3..0]sh[3..0]ml[3..0]mh[3..0]hl[3..0]hh[3..0]clk2hz_ens_cem_ceh_ceinst

      2.6報(bào)時(shí)模塊

      利用蜂鳴器進(jìn)行整點(diǎn)報(bào)時(shí)

      程序代碼:

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;--整點(diǎn)報(bào)時(shí) entity baoshi is port(clk1khz,clk2khz : in std_logic;a:in std_logic_vector(15 downto 0);sel:in std_logic;bell:out std_logic);end baoshi;architecture zhong of baoshi is signal c1,ring:std_logic;begin ring_bell :process(clk1khz,clk2khz)15 begin case a is when “***0” => c1<=clk1khz;when “***0” => c1<=clk1khz;when “***0” => c1<=clk1khz;when “***0” => c1<=clk1khz;when “***0” => c1<=clk1khz;when “***0” => c1<=clk2khz;when “***0” => c1<=clk2khz;when others => c1<='0';end case;end process ring_bell;

      bs: process(c1)begin if sel='1' then if c1='1' then ring<='0';else ring<='1';end if;end if;end process bs;bell<=ring;

      end zhong;

      輸入模塊電路圖:

      baoshiclk1khzbellclk2khza[15..0]selinst

      整體模塊電路圖

      displayshuzizhongs_enm_enh_enselclk_changes_enm_enh_enselsecoutminouthouroutsl[3..0]sh[3..0]ml[3..0]mh[3..0]hl[3..0]hh[3..0]setmodefreclkINPUTVCCINPUTVCCdata[3..0]datain[3..0]secoutminoutinst1scanclk1khzclk1khzsl[3..0]sh[3..0]ml[3..0]mh[3..0]hl[3..0]a[15..0]dataout[7..0]OUTPUTdataout[7..0]en_out[7..0]dataout[3..0]OUTPUTen_out[7..0]data[3..0]key_presssetclk1khzmodeclk1khzclk1hzsecoutminoutclk_changeclk2hz_ensels_cem_ceh_ces_enm_enh_eninst6s_enm_enh_enselinst7a[15..0]INPUTVCChh[3..0]clk2hz_ens_cem_ceh_ceinst4baoshiclk1khzclk2khza[15..0]selclk1khzbellclk2khza[15..0]sel++selclkclk1hzselclk1khzclk2khzinst2clk1khzclk2khzsecoutminoutOUTPUTbellinst

      六、調(diào)試中遇到的問題及解決的方法:

      1、編程時(shí),經(jīng)常導(dǎo)致語(yǔ)法錯(cuò)誤,如:“;”沒有寫上,變量類型沒有預(yù)先標(biāo)明,前后變量名字由于缺少一個(gè)或多一個(gè)字母而導(dǎo)致出錯(cuò)。解決辦法:對(duì)照錯(cuò)誤,認(rèn)真檢查程序,看哪個(gè)地方的標(biāo)點(diǎn),變量沒有寫上或標(biāo)明。

      2、進(jìn)行編譯或波形仿真時(shí),經(jīng)常得到的不是預(yù)想中的結(jié)果。

      解決辦法:將需要編譯或進(jìn)行仿真的實(shí)體文件置頂,經(jīng)檢錯(cuò)無誤后,進(jìn)行波形仿真,在仿真之前需要合理設(shè)置仿真結(jié)束時(shí)間和信號(hào)周期。

      3、在控制時(shí)間的顯示的時(shí)候,由于變量太多多發(fā)現(xiàn)不能完全的控制住變量,導(dǎo)致顯示的時(shí)候出現(xiàn)了亂碼,數(shù)碼管顯示不正常 解決辦法:減少變量,仔細(xì)推敲,合理命名。

      七、心得體會(huì)

      一個(gè)多星期的課程設(shè)計(jì)讓我受益匪淺,也讓我真正明白理論與實(shí)踐相結(jié)合的重要性。通過具體實(shí)踐才能讓自己清楚哪些知識(shí)已經(jīng)掌握,哪些知識(shí)仍需鞏固加強(qiáng)。與此同時(shí),我也對(duì)EDA以及VHDL語(yǔ)言有了進(jìn)一步了解,對(duì)于其結(jié)構(gòu)、語(yǔ)法、功能等認(rèn)識(shí)不少。當(dāng)然,我目前所做的還僅僅只是一些基本操作,要想真正將其融會(huì)貫通還需要今后更多的學(xué)習(xí)與實(shí)踐。雖然只是一個(gè)小設(shè)計(jì),我卻也從中學(xué)到了不少設(shè)計(jì)流程和一些相關(guān)問題。設(shè)計(jì)是一個(gè)十分嚴(yán)謹(jǐn)?shù)倪^程,容不得隨意和馬虎。要想快速而高效地完成一項(xiàng)設(shè)計(jì),必須先有一個(gè)清晰明了的設(shè)計(jì)思路,設(shè)想好一個(gè)整體框架,然后在此基礎(chǔ)上,逐漸將各個(gè)部分功能進(jìn)行完善。在設(shè)計(jì)的過程中,也曾遇到不少困難,但正所謂堅(jiān)持就是勝利,要想取得成功,必須要有努力付出,這樣所取得的結(jié)果才更有意義。

      第三篇:EDA數(shù)字鐘設(shè)計(jì)

      數(shù)字鐘

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、掌握多位計(jì)數(shù)器相連的設(shè)計(jì)方法。

      2、掌握十進(jìn)制,六進(jìn)制,二十四進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法。

      3、掌握揚(yáng)聲器的驅(qū)動(dòng)及報(bào)時(shí)的設(shè)計(jì)。

      4、LED燈的花樣顯示。

      5、掌握CPLD技術(shù)的層次化設(shè)計(jì)方法。

      二、實(shí)驗(yàn)器材

      1、主芯片Altera EPF10K10LC84-4。2、8個(gè)LED燈。

      3、揚(yáng)聲器。4、4位數(shù)碼顯示管。5、8個(gè)按鍵開關(guān)(清零,調(diào)小時(shí),調(diào)分鐘)。

      三、實(shí)驗(yàn)內(nèi)容

      根據(jù)電路特點(diǎn),運(yùn)用層次設(shè)計(jì)概念設(shè)計(jì)。將此設(shè)計(jì)任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口。

      1、時(shí)計(jì)時(shí)程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

      entity hour is

      port(reset,clk : in std_logic;

      daout : out std_logic_vector(7 downto 0));end hour;

      architecture behav of hour is

      signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);begin

      p1: process(reset,clk)

      begin

      if reset='0' then

      count<=“0000”;

      counter<=“0000”;

      elsif(clk'event and clk='1')then

      if(counter<2)then

      if(count=9)then

      count<=“0000”;

      counter<=counter + 1;

      else

      count<=count+1;

      end if;

      else

      if(count=3)

      then

      counter<=“0000”;

      else

      count<=count+1;

      count<=“0000”;

      end if;

      end if;

      end if;

      end process;

      daout(7 downto 4)<=counter;daout(3 downto 0)<=count;

      end behav;

      2、分計(jì)時(shí)程序: library ieee;

      use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

      entity minute is

      port(reset,clk,sethour: in std_logic;

      daout : out std_logic_vector(7 downto 0);

      enhour : out std_logic);end minute;

      architecture behav of minute is

      signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin

      p1: process(reset,clk)begin

      if reset='0' then

      count<=“0000”;

      counter<=“0000”;

      elsif(clk'event and clk='1')then

      if(counter<5)then

      if(count=9)then

      count<=“0000”;

      counter<=counter + 1;

      else

      count<=count+1;

      end if;

      carry_out1<='0';

      else

      if(count=9)then

      count<=“0000”;

      counter<=“0000”;

      carry_out1<='1';

      else

      count<=count+1;

      carry_out1<='0';

      end if;

      end if;end if;end process;

      p2: process(clk)begin

      if(clk'event and clk='0')then

      if(counter=0)then

      if(count=0)then

      carry_out2<='0';

      end if;

      else

      carry_out2<='1';

      end if;end if;end process;

      daout(7 downto 4)<=counter;daout(3 downto 0)<=count;enhour<=(carry_out1 and carry_out2)or sethour;end behav;

      3、秒計(jì)時(shí)程序: library ieee;

      use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

      entity second is

      port(reset,clk,setmin : in std_logic;

      daout : out std_logic_vector(7 downto 0);

      enmin : out std_logic);end second;

      architecture behav of second is

      signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin

      p1: process(reset,clk)begin

      if reset='0' then

      count<=“0000”;

      counter<=“0000”;

      elsif(clk'event and clk='1')then

      if(counter<5)

      then

      if

      (count=9)

      then

      count<=“0000”;

      counter<=counter + 1;

      else

      count<=count+1;

      end if;

      carry_out1<='0';

      else

      if(count=9)

      then

      count<=“0000”;

      counter<=“0000”;

      carry_out1<='1';

      else

      count<=count+1;

      carry_out1<='0';

      end if;

      end if;end if;end process;daout(7 downto

      4)<=counter;

      daout(3

      downto

      0)<=count;enmin<=carry_out1 or setmin;end behav;6

      4、alert程序: library ieee;

      use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

      entity alert is port(clkspk : in std_logic;

      second : in std_logic_vector(7 downto 0);

      minute : in std_logic_vector(7 downto 0);

      speak : out std_logic;

      lamp : out std_logic_vector(8 downto 0));end alert;

      architecture behav of alert is signal divclkspk2 : std_logic;begin p1: process(clkspk)begin

      if(clkspk'event and clkspk='1')then

      divclkspk2<=not divclkspk2;

      end if;end process;p2: process(second,minute)begin if(minute=“01011001”)then case second is

      when “01010001”=>lamp<=“000000001”;speak<=divclkspk2;when “01010010”=>lamp<=“000000010”;speak<='0';when “01010011”=>lamp<=“000000100”;speak<=divclkspk2;when “01010100”=>lamp<=“000001000”;speak<='0';when “01010101”=>lamp<=“000010000”;speak<=divclkspk2;when “01010110”=>lamp<=“000100000”;speak<='0';when “01010111”=>lamp<=“001000000”;speak<=divclkspk2;when “01011000”=>lamp<=“010000000”;speak<='0';when “01011001”=>lamp<=“100000000”;speak<=clkspk;when others=>lamp<=“000000000”;end case;end if;end process;end behav;8

      5、seltime程序 library ieee;

      use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

      entity seltime is port(ckdsp : in std_logic;

      reset : in std_logic;

      second : in std_logic_vector(7 downto 0);

      minute : in std_logic_vector(7 downto 0);

      hour : in std_logic_vector(7 downto 0);

      daout : out std_logic_vector(3 downto 0);

      sel : out std_logic_vector(2 downto 0));end seltime;

      architecture behav of seltime is signal sec : std_logic_vector(2 downto 0);begin

      process(reset,ckdsp)begin

      if(reset='0')then sec<=“000”;

      elsif(ckdsp'event and ckdsp='1')then

      sec<=“000”;else

      sec<=sec+1;end if;end if;end process;

      process(sec,second,minute,hour)begin case sec is

      when “000”=>daout<=second(3 downto 0);when “001”=>daout<=second(7 downto 4);when “011”=>daout<=minute(3 downto 0);when “100”=>daout<=minute(7 downto 4);when “110”=>daout<=hour(3 downto 0);when “111”=>daout<=hour(7 downto 4);when others=>daout<=“1111”;end case;end process;

      if(sec=“111”)then

      sel<=sec;end behav;

      6、deled程序: LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;

      ENTITY deled IS PORT(S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      A,B,C,D,E,F,G,H: OUT STD_LOGIC);END deled;

      ARCHITECTURE BEHAV OF deled IS

      SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN DATA<=S;PROCESS(DATA)BEGIN

      CASE DATA IS

      WHEN “0000”=>DOUT<=“00111111”;WHEN “0001”=>DOUT<=“00000110”;WHEN “0010”=>DOUT<=“01011011”;WHEN “0011”=>DOUT<=“01001111”;WHEN “0100”=>DOUT<=“01100110”;WHEN “0101”=>DOUT<=“01101101”;WHEN “0110”=>DOUT<=“01111101”;WHEN “0111”=>DOUT<=“00000111”;WHEN “1000”=>DOUT<=“01111111”;WHEN “1001”=>DOUT<=“01101111”;WHEN “1010”=>DOUT<=“01110111”;WHEN “1011”=>DOUT<=“01111100”;WHEN “1100”=>DOUT<=“00111001”;WHEN “1101”=>DOUT<=“01011110”;WHEN “1110”=>DOUT<=“01111001”;WHEN “1111”=>DOUT<=“01000000”;WHEN OTHERS=>DOUT<=“00000000”;END CASE;END PROCESS;H<=DOUT(7);

      G<=DOUT(6);

      F<=DOUT(5);

      E<=DOUT(4);D<=DOUT(3);C<=DOUT(2);B<=DOUT(1);A<=DOUT(0);END BEHAV;

      7、頂層原理圖:

      四、實(shí)驗(yàn)結(jié)果 頂層原理圖仿真波形:

      五、心得體會(huì)

      1、系統(tǒng)設(shè)計(jì)進(jìn)要行充分的方案論證,不可盲目就動(dòng)手去做;

      2、實(shí)驗(yàn)中對(duì)每一個(gè)細(xì)節(jié)部分都要全面思考,要對(duì)特殊情況進(jìn)行處理;

      3、對(duì)于數(shù)字系統(tǒng),要考慮同步、異步問題;

      4、數(shù)字電路的理論分析要結(jié)合時(shí)序圖;

      5、遇到問題,要順藤摸瓜,分析清楚,不可胡亂改動(dòng),每做一次改變都要有充分的理由;

      6、模塊化設(shè)計(jì)方法的優(yōu)點(diǎn)在于其簡(jiǎn)潔性,但是在實(shí)驗(yàn)設(shè)計(jì)中也發(fā)現(xiàn),在實(shí)驗(yàn)最終電路確定之前,要盡量減少模塊重疊嵌套,因?yàn)樵诳偟碾娐非枚ㄖ?,電路還不成熟,很多地方需要改進(jìn),如果在開始時(shí)就進(jìn)行多層模塊化,里層模塊電路的修改將影響其外層的全部電路,這樣就是牽一發(fā)動(dòng)全身,很顯然,這樣將導(dǎo)致電 數(shù)字鐘課程設(shè)計(jì) 電路設(shè)計(jì)的低效,所以在設(shè)計(jì)過程中,一定要盡量減少超過兩層的模塊;

      7、遇到問題花了很長(zhǎng)時(shí)間沒有解決掉,要學(xué)會(huì)想他人請(qǐng)教,別人的不經(jīng)意一點(diǎn),可能就能把自己帶出思維死區(qū)。

      第四篇:EDA數(shù)字鐘畢業(yè)設(shè)計(jì)

      [ 標(biāo)簽:數(shù)字鐘, eda ]

      1、設(shè)計(jì)一個(gè)能顯示1/10秒、秒、分、時(shí)的12小時(shí)數(shù)字鐘。

      2、時(shí)鐘源使用頻率為0.1Hz的連續(xù)脈沖。

      3、設(shè)置兩個(gè)按鈕,一個(gè)供“開始”及“停止”用,一個(gè)供系統(tǒng)“復(fù)位”用。

      4、時(shí)鐘顯示使用數(shù)碼管顯示。

      基于VHDL的多功能數(shù)字鐘的設(shè)計(jì) EDA課程設(shè)計(jì) 資料類別課程(專業(yè))EDA 適用年級(jí)大學(xué)文件格式word+DLS 文件大小1725K 上傳時(shí)間2008-10-10 20:57:00 預(yù)覽文件無(只能預(yù)覽文件中的部分內(nèi)容)下載次數(shù)0內(nèi)容簡(jiǎn)介:EDA課程設(shè)計(jì) 基于VHDL的多功能數(shù)字鐘的設(shè)計(jì),共11頁(yè),6086字,附源程序。摘要:介紹了利用VHDL硬件描述語(yǔ)言設(shè)計(jì)的多功能數(shù)字鐘的思路和技巧。在MAX+PLUSII開發(fā)環(huán)境中編譯和仿真了所設(shè)計(jì)的程序,并在可編程邏輯器件上下栽驗(yàn)證。仿真和驗(yàn)證結(jié)果表明,該設(shè)計(jì)方法切實(shí)可行。

      EDA-時(shí)鐘設(shè)計(jì)-基于Altera數(shù)字鐘的實(shí)

      現(xiàn):EDA課程設(shè)計(jì) 基于VHDL的多功能數(shù)字鐘的設(shè)計(jì):EDA數(shù)字鐘設(shè)計(jì)報(bào)告:資料包括: 論文(12頁(yè)2036字)圖紙說明:中文摘要:數(shù)字鐘學(xué)習(xí)的目的是掌握各類計(jì)數(shù)器及它們相連的設(shè)計(jì)方法;掌握多個(gè)數(shù)碼管顯示的原理與方法;掌握FPGA技術(shù)的層次化設(shè)計(jì)方法;掌握用VHDL語(yǔ)言的設(shè)計(jì)思想以及整個(gè)數(shù)字系統(tǒng)的設(shè)計(jì)。此數(shù)字鐘設(shè)計(jì)具有時(shí),分,秒計(jì)數(shù)顯示功能,以24小時(shí)為計(jì)數(shù)循環(huán);能實(shí)現(xiàn)清零,調(diào)節(jié)小時(shí),分鐘以及整點(diǎn)報(bào)時(shí)的功能。

      第五篇:eda數(shù)字鐘程序

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock IS PORT(EN

      :IN STD_LOGIC;數(shù)碼管使能

      CLK

      :IN STD_LOGIC;時(shí)鐘信號(hào)

      RST

      :IN STD_LOGIC;復(fù)位信號(hào)

      SEC_1

      :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);秒高位

      SEC_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);秒低位

      MIN_1

      :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);分高位

      MIN_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);分低位

      HOU_1

      :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);時(shí)高位

      HOU_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);時(shí)低位

      BEE

      :OUT STD_LOGIC);END clock;

      ARCHITECTURE behovior OF clock IS SIGNAL SEC_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL SEC_LOW

      :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL MIN_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL HOU_LOW

      :STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL CY_MIN

      :STD_LOGIC;分進(jìn)位

      SIGNAL CY_HOU

      :STD_LOGIC;時(shí)進(jìn)位

      SIGNAL LOGO_1

      :STD_LOGIC;標(biāo)志

      SIGNAL LOGO_2

      :STD_LOGIC;

      SIGNAL LOGO_3

      :STD_LOGIC;

      BEGIN MIAOLOW:PROCESS(CLK,RST,EN)

      BEGIN

      IF(RST = '0')

      THEN

      SEC_LOW <= “1000”;附給秒低位為8

      ELSIF(CLK'EVENT AND CLK = '1' AND EN = '1')THEN 檢測(cè)時(shí)鐘上升沿及數(shù)碼管使能端

      IF(SEC_LOW = “1001”)THEN

      SEC_LOW <= “0000”;

      ELSE

      SEC_LOW <= SEC_LOW + “0001”;加一

      END IF;

      END IF;

      END PROCESS MIAOLOW;

      LOGO_1 <= SEC_LOW(3)AND SEC_LOW(0);

      SEC_01<= SEC_LOW;秒個(gè)位放8

      MIAOHIGH:PROCESS(CLK,RST)

      BEGIN

      IF(RST = '0')

      THEN

      SEC_HIGH <= “0101”;

      ELSIF(CLK'EVENT AND CLK = '1')THEN檢測(cè)時(shí)鐘上升沿

      IF(LOGO_1 = '1')THEN

      IF(SEC_HIGH = “0101”)THEN

      SEC_HIGH <= “0000”;

      CY_MIN <= '1';

      ELSE

      SEC_HIGH <= SEC_HIGH + “0001”;加一

      CY_MIN <= '0';

      END IF;

      END IF;

      END IF;

      END PROCESS MIAOHIGH;

      SEC_1 <= SEC_HIGH;秒十位放5

      FENLOW:PROCESS(CY_MIN,RST,EN)

      BEGIN

      IF(RST = '0')

      THEN 若復(fù)位位為0

      MIN_LOW <= “1000”;則分個(gè)位為8

      ELSIF(CY_MIN'EVENT AND CY_MIN = '1' AND EN = '1')THEN檢測(cè)時(shí)鐘上升沿及數(shù)碼管使能端

      IF(MIN_LOW = “1001”)THEN

      MIN_LOW <= “0000”;

      ELSE

      MIN_LOW <= MIN_LOW + “0001”;加一

      END IF;

      END IF;

      END PROCESS FENLOW;

      LOGO_2 <= MIN_LOW(3)AND MIN_LOW(0);

      MIN_01 <= MIN_LOW;分個(gè)位放8

      FENHIGH:PROCESS(CY_MIN,RST)

      BEGIN

      IF(RST = '0')

      THEN

      MIN_HIGH <= “0101”;

      ELSIF(CY_MIN'EVENT AND CY_MIN = '1')THEN檢測(cè)分進(jìn)位上升沿

      IF(LOGO_2 = '1')THEN

      IF(MIN_HIGH = “0101”)THEN若分十位為5

      MIN_HIGH <= “0000”;

      CY_HOU <= '1';時(shí)進(jìn)位為1

      ELSE

      MIN_HIGH <= MIN_HIGH + “0001”;加一

      CY_HOU <= '0';

      END IF;

      END IF;

      END IF;

      END PROCESS FENHIGH;

      MIN_1 <= MIN_HIGH;分十位放5

      SHILOW:PROCESS(CY_HOU,RST,EN)

      BEGIN

      IF(RST = '0')

      THEN

      HOU_LOW <= “1001”;

      ELSIF(CY_HOU'EVENT AND CY_HOU = '1'

      AND EN = '1')THEN檢測(cè)時(shí)進(jìn)位上升沿及數(shù)碼管使能端

      IF(HOU_LOW = “1001”)THEN若時(shí)低位為9

      HOU_LOW <= “0000”;

      ELSIF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN若時(shí)十位為2,個(gè)位為3

      HOU_LOW <= “0000”;

      ELSE

      HOU_LOW <= HOU_LOW + “0001”;加一

      END IF;

      END IF;

      END PROCESS SHILOW;

      LOGO_3 <= HOU_LOW(3)AND HOU_LOW(0);

      HOU_01 <= HOU_LOW;時(shí)個(gè)位放3

      SHIHIGH:PROCESS(CY_HOU,RST)

      BEGIN

      IF(RST = '0')

      THEN

      HOU_HIGH <= “0001”;

      ELSIF(CY_HOU'EVENT AND CY_HOU = '1')THEN檢測(cè)時(shí)進(jìn)位上升沿

      IF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN若時(shí)十位為2,時(shí)個(gè)位為3

      HOU_HIGH <= “0000”;

      ELSIF(LOGO_3 = '1')THEN

      HOU_HIGH <= HOU_HIGH + “0001”;加一

      END IF;

      END IF;

      END PROCESS SHIHIGH;

      BEE_CLOCK:PROCESS(CLK)

      BEGIN

      IF(CLK'EVENT AND CLK = '1')THEN檢測(cè)時(shí)鐘上升沿

      IF(SEC_HIGH = “0101” AND SEC_LOW = “1001”

      AND MIN_HIGH = “0101” AND MIN_LOW = “1001”)THEN

      BEE <= '1';

      ELSE

      BEE <= '0';

      END IF;

      END IF;

      END PROCESS BEE_CLOCK;

      HOU_1 <= HOU_HIGH;時(shí)十位放2

      END behovior;

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock1 IS PORT(EN

      :IN STD_LOGIC;

      CLK

      :IN STD_LOGIC;

      RST

      :IN STD_LOGIC;SEC_1

      :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      SEC_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN_1

      :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      MIN_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HOU_1

      :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      HOU_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      BEE

      :OUT STD_LOGIC);END clock1;

      ARCHITECTURE behovior OF clock1 IS SIGNAL SEC_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL SEC_LOW

      :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL MIN_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL HOU_LOW

      :STD_LOGIC_VECTOR(3 DOWNTO 0);

      SIGNAL CY_MIN

      :STD_LOGIC;

      SIGNAL CY_HOU

      :STD_LOGIC;SIGNAL LOGO_1

      :STD_LOGIC;

      SIGNAL LOGO_2

      :STD_LOGIC;

      SIGNAL LOGO_3

      :STD_LOGIC;

      BEGIN MIAOLOW:PROCESS(CLK,RST,EN)

      BEGIN

      IF(RST = '0')

      THEN

      SEC_LOW <= “1000”;

      ELSIF(CLK'EVENT AND CLK = '1' AND EN = '1')THEN

      IF(SEC_LOW = “1001”)THEN

      SEC_LOW <= “0000”;

      ELSE

      SEC_LOW <= SEC_LOW + “0001”;

      END IF;

      END IF;

      END PROCESS MIAOLOW;

      LOGO_1 <= SEC_LOW(3)AND SEC_LOW(0);

      SEC_01<= SEC_LOW;

      MIAOHIGH:PROCESS(CLK,RST)

      BEGIN

      IF(RST = '0')

      THEN

      SEC_HIGH <= “0101”;

      ELSIF(CLK'EVENT AND CLK = '1')THEN

      IF(LOGO_1 = '1')THEN

      IF(SEC_HIGH = “0101”)THEN

      SEC_HIGH <= “0000”;

      CY_MIN <= '1';

      ELSE

      SEC_HIGH <= SEC_HIGH + “0001”;

      CY_MIN <= '0';

      END IF;

      END IF;

      END IF;

      END PROCESS MIAOHIGH;

      SEC_1 <= SEC_HIGH;FENLOW:PROCESS(CY_MIN,RST,EN)

      BEGIN

      IF(RST = '0')

      THEN

      MIN_LOW <= “1000”;

      ELSIF(CY_MIN'EVENT AND CY_MIN = '1' AND EN = '1')THEN

      IF(MIN_LOW = “1001”)THEN

      MIN_LOW <= “0000”;

      ELSE

      MIN_LOW <= MIN_LOW + “0001”;

      END IF;

      END IF;

      END PROCESS FENLOW;

      LOGO_2 <= MIN_LOW(3)AND MIN_LOW(0);

      MIN_01 <= MIN_LOW;

      FENHIGH:PROCESS(CY_MIN,RST)

      BEGIN

      IF(RST = '0')

      THEN

      MIN_HIGH <= “0101”;

      ELSIF(Cy_MIN'EVENT AND CY_MIN = '1')THEN

      IF(LOGO_2 = '1')THEN

      IF(MIN_HIGH = “0101”)THEN

      MIN_HIGH <= “0000”;

      CY_HOU <= '1';

      ELSE

      MIN_HIGH <= MIN_HIGH + “0001”;

      CY_HOU <= '0';

      END IF;

      END IF;

      END IF;

      END PROCESS FENHIGH;

      MIN_1 <= MIN_HIGH;SHILOW:PROCESS(CY_HOU,RST,EN)

      BEGIN

      IF(RST = '0')

      THEN

      HOU_LOW <= “1001”;

      ELSIF(CY_HOU'EVENT AND CY_HOU = '1' AND EN = '1')THEN

      IF(HOU_LOW = “1001”)THEN

      HOU_LOW <= “0000”;

      ELSIF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN

      HOU_LOW <= “0000”;

      ELSE

      HOU_LOW <= HOU_LOW + “0001”;

      END IF;

      END IF;

      END PROCESS SHILOW;

      LOGO_3 <= HOU_LOW(3)AND HOU_LOW(0);

      HOU_01 <= HOU_LOW;

      SHIHIGH:PROCESS(Cy_HOU,RST)

      BEGIN

      IF(RST = '0')

      THEN

      HOU_HIGH <= “0001”;

      ELSIF(CY_HOU'EVENT AND CY_HOU = '1')THEN

      IF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN

      HOU_HIGH <= “0000”;

      ELSIF(LOGO_3 = '1')THEN

      HOU_HIGH <= HOU_HIGH + “0001”;

      END IF;

      END IF;

      END PROCESS SHIHIGH;

      BEE_CLOCK:PROCESS(CLK)

      BEGIN

      IF(CLK'EVENT AND CLK = '1')THEN

      IF(SEC_HIGH = “0101” AND SEC_LOW = “1001”

      AND MIN_HIGH = “0101” AND MIN_LOW = “1001”)THEN

      BEE <= '1';

      ELSE

      BEE <= '0';

      END IF;

      END IF;

      END PROCESS BEE_CLOCK;

      HOU_1 <= HOU_HIGH;

      END behovior;

      下載EDA數(shù)字鐘課程設(shè)計(jì)word格式文檔
      下載EDA數(shù)字鐘課程設(shè)計(jì).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)字鐘課程設(shè)計(jì)

        晶體振蕩器電路晶體振蕩器電路給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的32768Hz的脈沖,可保證數(shù)字鐘的走時(shí)準(zhǔn)確及穩(wěn)定。不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電......

        數(shù)字鐘課程設(shè)計(jì)

        數(shù)字電子鐘邏輯電路設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康模?1、掌握數(shù)字鐘的設(shè)計(jì)方法; 2、熟悉集成電路的使用方法。 二、設(shè)計(jì)任務(wù)和要求: 1、設(shè)計(jì)一個(gè)有“時(shí)”,“分”,“秒”(23小時(shí)59分59秒)顯示且有......

        數(shù)字鐘課程設(shè)計(jì)

        南 昌 大 學(xué) 數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告 姓名: 付容 學(xué)號(hào):6100212236 學(xué)院:信息工程學(xué)院 班級(jí):電氣信息I類126班 實(shí)驗(yàn)名稱: 數(shù)字鐘設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?1、熟悉數(shù)字系統(tǒng)的分析和......

        數(shù)字鐘課程設(shè)計(jì)

        ORG 0000H SJMP ONE ORG 0003H LJMP ELEVEN ORG 000BH LJMP NINE ORG 001BH LJMP TEN ONE:LED12 EQU 30H ;數(shù)碼管12顯示緩存 LED34 EQU 31H ;數(shù)碼管34顯示緩存 LED56 EQU 32......

        EDA 課程設(shè)計(jì)

        《電子系統(tǒng)設(shè)計(jì)自動(dòng)化》課程設(shè)計(jì)報(bào)告 學(xué) 院: 機(jī)電工程學(xué)院 題 目: 數(shù)字時(shí)鐘電路設(shè)計(jì) 課 程: 《電子系統(tǒng)設(shè)計(jì)自動(dòng)化》課程設(shè)計(jì) 專業(yè)班級(jí): 電信10級(jí)2 班 學(xué)生姓名: 劉星 秦玉杰 王......

        《EDA課程設(shè)計(jì)》

        《EDA課程設(shè)計(jì)》 課程設(shè)計(jì)題目: 基于單片機(jī)的溫濕度采集系統(tǒng) 姓 名: xxx 學(xué)班時(shí)地 號(hào):xxxx 級(jí): xxxx 間:2014.4.21~ 2013.5.5 點(diǎn): xxxxx 指 導(dǎo)老師: xxxxx 目錄 一、電路原理......

        EDA課程設(shè)計(jì)

        考試序號(hào):28 自動(dòng)打鈴系統(tǒng)設(shè)計(jì)說明書 學(xué) 生 姓 名:周文江 學(xué) 號(hào):14112502521 專 業(yè) 班 級(jí):1102 報(bào)告提交日期:2013.11.26 湖 南 理 工 學(xué) 院 物 電 學(xué) 院 目錄 一、題目及要......

        EDA實(shí)現(xiàn)多功能數(shù)字鐘

        EDA實(shí)現(xiàn)多功能數(shù)字鐘 實(shí) 驗(yàn) 報(bào) 告 專業(yè)班級(jí):學(xué)生姓名:學(xué)生學(xué)號(hào): 目錄 一、內(nèi)容摘要 二、實(shí)驗(yàn)要求 三、各底層模塊設(shè)計(jì) 四、總體方案 五、 心得體會(huì)一、實(shí)驗(yàn)內(nèi)容 利用 QuartusI......