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

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

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

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

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

      數(shù)字電子EDA課程設(shè)計八音電子琴

      時間:2019-05-15 10:28:25下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)字電子EDA課程設(shè)計八音電子琴》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)字電子EDA課程設(shè)計八音電子琴》。

      第一篇:數(shù)字電子EDA課程設(shè)計八音電子琴

      燕山大學(xué)EDA課程設(shè)計

      實驗報告

      院系:信息科學(xué)與工程學(xué)院

      姓名:

      班級:

      學(xué)號:

      日期:

      [實驗名稱] 八音電子琴

      [實驗要求] 1.能發(fā)出1.2.3.4.5.6.7.i八個音

      2.用按鍵作為鍵盤

      3.C調(diào)至B調(diào)對應(yīng)頻率如下表

      音調(diào) C(高音)B A G F E D C

      頻率(Hz)261.63x2 493.88 440.00 392.00 349.23 329.63 293.66 261.63 [實驗電路設(shè)計] 1.命題分析

      根據(jù)命題的要求,要使揚(yáng)聲器發(fā)音,需要在其輸入信號端連接一個對應(yīng)頻率的方波信號.實驗使用的信號源可以提供從幾Hz到幾兆Hz不等的信號頻率,自然可以想到本實驗命題的關(guān)鍵是一個具有相應(yīng)分頻比的分頻器.考慮到硬件(按鈕)在實際工作過程中會因元件的接觸產(chǎn)生一些不可避免的抖動脈沖電平,會對實驗造成影響,因此需要在按鍵接入線路中安裝防抖動電路.2.設(shè)計過程

      1>分頻器

      為了取得合適的電路復(fù)雜度和可接受的誤差范圍,分頻器的時鐘信號選取為器件所提供的JPCK—1(3MHz音頻信號).然后通過計算,用時鐘信號頻率除以各發(fā)音頻率,得到的分頻比如下表:

      分頻比(16進(jìn)

      制)

      5DEE 6384 6F84 7D62 8ADE 951C A760 BBDE

      頻率(Hz)高C:261.63x2 B:493.88 A:440.00 G:392.00 F:349.23 E:329.63 D:293.66 C:261.63 利用四片十六進(jìn)制計數(shù)器74LS161就可以連接成適用的分頻器.分頻器連接完成后會產(chǎn)生一個預(yù)定頻率的周期脈沖.但是實驗要求的方波其占空比應(yīng)該為1:1,因此在輸出脈沖端加裝一個T觸發(fā)器,每次脈沖到達(dá)觸發(fā)器的時候輸出便會跳變電平,這就達(dá)到了驅(qū)動揚(yáng)聲器的條件.但是在應(yīng)用了T觸發(fā)器后輸出方波的周期比預(yù)定的擴(kuò)大了一倍,也就是說頻率減至原來的二分之一.此時應(yīng)重新選擇時鐘信號,令其為原來2倍即可.根據(jù)實驗指導(dǎo)書,最終確定選擇的時鐘信號為6MHz.2>防抖動電路

      利用D觸發(fā)器的電壓跟隨特性可以用一個頻率較低的時鐘信號驅(qū)動,達(dá)到防止按鍵抖動的目的.電路較簡單,見圖3.圖1.時鐘分頻電路(downway)

      圖2.CP為375K時上圖的B4輸出波形

      由于設(shè)計的原因,本電路只能支持單音節(jié)輸入.當(dāng)同時鍵入兩個以上的音階時,分頻比較小的(比較高的音階)優(yōu)先發(fā)聲.圖3.按鍵輸入防抖動電路

      3>電路組合

      組合后的電路模塊如圖4.共有11個輸入端和1個輸出端.其中,CP_6M為整個電路的主頻,使用電路板上的6MHz信號輸出端;CP_1US為防抖動電路中觸發(fā)器所使用的時鐘,要求頻率不高,選擇電路板提供的CLK3-3(12Hz);KEYCa-B是電子琴的輸入按鍵接口,依次是從低音到高音.Speaker是電路的輸出端,接入揚(yáng)聲器,為其產(chǎn)生相應(yīng)音階的頻率.實際電路如圖4.連接完成后,對該電路進(jìn)行仿真測試,如圖5,令其CP_6M為6MHz,CP_1US為一個較低頻率脈沖,設(shè)臵KEYB(音節(jié)B)為有效電平,在speaker上得到的輸出頻率為493,與實際音節(jié)的頻率相同.圖4.八音電子琴

      圖5.電子琴完成品的仿真波形

      T觸發(fā)器2分頻電路

      [硬件測試] [實習(xí)心得] 第一感覺,數(shù)字電子技術(shù)EDA實習(xí)很有意思.我們可以有充分的時間去思考怎么做出一個東西,這個東西的用處也許不大甚至幾乎沒有,但重要的是思考的過程:從它的用途總結(jié)出它的特性,從它的特性構(gòu)思出它的原理,從原理到構(gòu)建模型,再到模型的實現(xiàn),利用已有的知識,可用的元件,最終組合出一個具有高度邏輯性的組合電路,這和我們小時候玩搭積木差不多.把積木一塊塊的搭成一座城堡,中間缺少任何一層甚至任何一塊,城堡都可能會倒塌.同理,在我們構(gòu)建命題所給的元器件時任何一個邏輯錯誤都可能是致命的,導(dǎo)致最后無法出現(xiàn)正確結(jié)果或者干脆不能用.因此,實習(xí),有意思的同時還不能大意.這是一個鍛煉邏輯思維和思維嚴(yán)謹(jǐn)性的極好的機(jī)會,我和我的同學(xué)們在這次工作中受益非淺.大家都積極思思考,查找資料,集思廣益來解決現(xiàn)有的問題。在這個過程中我?guī)椭藙e人也得到了別人的幫助。

      我在和別人研究問題的時候發(fā)現(xiàn)在所有題目當(dāng)中,以分頻器為基本的[八音電子琴]算是比較簡單的,我很早就做完了.但是很多人的題目除了分頻以外還要求臵數(shù),可調(diào),顯示輸出,以及產(chǎn)生相對復(fù)雜的多的時序,這讓我覺得我做的快只是運(yùn)氣好,抽了個好簽而已,同時我也了解到自己的不足之處.仍需努力.最后感謝老師們耐心的講解和提點。

      第二篇:EDA課程設(shè)計 電子琴

      簡易電子琴的設(shè)計和實現(xiàn)

      ----結(jié)題報告

      學(xué)號:110342241

      姓名:章譯文

      一.設(shè)計要求

      1.能發(fā)出1234567基本音。

      2.能自動播放《偶像萬萬歲》和《梁祝》。3.能在數(shù)碼管上顯示彈奏時的音名。

      二.設(shè)計原理分析

      1.音階的獲得

      系統(tǒng)要求要求用7個按鍵控制發(fā)聲,我們用7個鍵盤來控制產(chǎn)生低音(或中音)段的7個音階頻率。所有的音名頻率都是通過一個基準(zhǔn)頻率經(jīng)過分頻得到的。但部分分頻過大的音頻直接輸出給揚(yáng)聲器,頻率信號脈沖的占空比會非常窄,不能驅(qū)動揚(yáng)聲器工作。于是,我們設(shè)計了一個“帶有預(yù)置數(shù)的計數(shù)器”來簡化整個設(shè)計過程。將原頻率分頻成期望值的2倍頻率信號。再通過二分頻,驅(qū)動揚(yáng)聲器工作。

      簡易電子琴控制流程圖

      2.MUSICAL_NOTE內(nèi)部電路

      MUSICAL_NOTE內(nèi)部電路

      使用MUSICAL_NOTE電路,實現(xiàn)初值可變的計數(shù)器,并對音階實現(xiàn)二分頻,使電子琴實現(xiàn)正常發(fā)音。

      按鍵播放部分電路

      3.自動播放功能的實現(xiàn)

      自動播放部分電路

      Hebing.mif文件(偶像萬萬歲&梁祝)

      歌曲長度為352位,利用三個74261設(shè)計0~352的計數(shù)器,自動尋址,將音頻導(dǎo)入lpm_rom,與MUSICAL_NOTE相互作用,實現(xiàn)自動播放。

      按鍵除顫電路原理圖

      作為機(jī)械開關(guān)的鍵盤,在按鍵操作時,機(jī)械觸點的彈性及電壓跳動等原因,再觸點閉合或者開啟的瞬間會出現(xiàn)電壓的抖動,如果不進(jìn)行處理就會造成誤操作。按鍵去抖動的關(guān)鍵在于提取穩(wěn)定的低電平狀態(tài),濾去前沿后沿的抖動毛刺。4.在數(shù)碼管上顯示彈奏時的音名

      顯示部分電路圖

      Display內(nèi)部電路

      電路中的74161是16進(jìn)制的計數(shù)器,它的低三位接到3—8譯碼器模塊74138的地址輸入端,這樣就可以實現(xiàn)74138的8個輸出端輪流輸出低電平,恰好用來控制“位碼”DIG7~DIG0。LPM_MUX是QuartusⅡ中的宏模塊,用來實現(xiàn)多位的“多選一”,它的數(shù)據(jù)位數(shù)可以以及數(shù)據(jù)的數(shù)量可以任意設(shè)定。

      電路中使用了與非門,實現(xiàn)發(fā)音與現(xiàn)實同時實現(xiàn),在此要注意的是,因為使用了與非門,靜態(tài)字符現(xiàn)實數(shù)碼管管腳的設(shè)定值應(yīng)該與原值相反。

      三.設(shè)計原理圖

      簡易電子琴原理圖

      根據(jù)以上分析,將三個模塊組合,便得到了簡易電子琴的整體設(shè)計。在整體設(shè)計的過程中,要注意三個模塊之間的關(guān)系,使其能夠相互作用,正常發(fā)音和顯示。

      四.實驗總結(jié) 在這三天的實驗過程中,通過對于實驗?zāi)康牡姆治?,有目?biāo)的查找資料,研讀教材,在分清楚模塊的基礎(chǔ)上,寫下了實驗計劃,規(guī)劃好時間,確定每天要做的事。在實驗的第一天,實現(xiàn)了按鍵發(fā)音,同時,也基本弄清楚了自動播放的原理,有了設(shè)計思路,第二天上午,完成了自動循環(huán)播放的功能,下午在同學(xué)的幫助下,確定了數(shù)碼管顯示的基本思路,通過對于以前知識的復(fù)習(xí)和查找,成功實現(xiàn)了數(shù)碼管的顯示功能。

      在實驗的過程中,也遇到很多的困難。在自動播放的時候,由于沒有修改hebing.mif的進(jìn)制,音樂總不能正常播放。還有就是在數(shù)碼管顯示的時候,一開始沒有弄清與非門的作用,顯示的數(shù)字總是反著的。后來經(jīng)過冷靜的分析,在老師和同學(xué)的幫助下,成功完成了電子琴的設(shè)計,實現(xiàn)了所有的功能。當(dāng)然,設(shè)計也還有很多可以完善和改進(jìn)的地方,在以后的學(xué)習(xí)過程中,我會更加用心,多做,多思考。

      這次課程設(shè)計,我受益匪淺,這種認(rèn)真研讀,查找資料,動手操作的學(xué)習(xí)方式,應(yīng)該貫徹到每一門課程的學(xué)習(xí),也應(yīng)該貫徹到我們的生活中。一直保持這樣的方式,不管做什么事,都會取得很好的結(jié)果。

      第三篇:EDA課程設(shè)計——數(shù)字時鐘

      Hefei University

      EDA課程綜述

      論文題目: EDA課程綜述

      專 業(yè): 09通信(2)班

      姓 名: 唐吉祥

      學(xué) 號: 0905072035 指導(dǎo)老師: 查長軍

      隨著基于PLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大和深入,EDA技術(shù)在電子信息、通信、自動控制及計算機(jī)應(yīng)用領(lǐng)域的重要性日益提高。

      作為現(xiàn)在的大學(xué)生應(yīng)熟練掌握這門技術(shù),為以后的發(fā)展打下良好的基礎(chǔ),本實驗設(shè)計是應(yīng)用QuartusII環(huán)境及VHDL語言設(shè)計一個時間可調(diào)的數(shù)字時鐘。使自己熟練使用QuartusII環(huán)境來進(jìn)行設(shè)計,掌握VHDL語言的設(shè)計方法。要注重理論與實踐之間的不同,培養(yǎng)自己的實踐能力!

      目錄

      一、課程設(shè)計任務(wù)及要求............................................................................................3

      1.1實驗?zāi)康?.........................................................................................................3 1.2功能設(shè)計..........................................................................................................3

      二、整體設(shè)計思想........................................................................................................3

      2.1性能指標(biāo)及功能設(shè)計......................................................................................3 2.2總體方框圖......................................................................................................4

      三、詳細(xì)設(shè)計................................................................................................................4

      3.1數(shù)字鐘的基本工作原理:..............................................................................4

      3.1.1時基T 產(chǎn)生電路..................................................................................4 3.1.2調(diào)時、調(diào)分信號的產(chǎn)生......................................................................4 3.1.3計數(shù)顯示電路.......................................................................................5 3.2設(shè)計思路..........................................................................................................5 3.3設(shè)計步驟..........................................................................................................6

      3.3.1工程建立及存盤...................................................................................6 3.3.2工程項目的編譯...................................................................................7 3.3.3目標(biāo)芯片的選擇...................................................................................7 3.3.4時序仿真...............................................................................................8 3.3.5引腳鎖定.............................................................................................10 3.3.6硬件測試.............................................................................................11 3.3.7實驗結(jié)果.............................................................................................11

      四、設(shè)計總結(jié)..............................................................................................................12

      五、附錄......................................................................................................................12

      5.1 VHDL源程序..................................................................................................12 5.2配置符號圖....................................................................................................17

      一、課程設(shè)計任務(wù)及要求

      1.1實驗?zāi)康?/p>

      1)掌握VHDL語言的基本運(yùn)用

      2)掌握QuartusII的簡單操作并會使用EDA實驗箱 3)掌握一個基本EDA課程設(shè)計的操作

      1.2功能設(shè)計

      1)有時、分、秒計數(shù)顯示功能,小時為24進(jìn)制,分鐘和秒為60進(jìn)制以24小時循環(huán)計時

      2)設(shè)置復(fù)位、清零等功能

      3)有校時功能,可以分別對時及分進(jìn)行單獨校時,使其校正到標(biāo)準(zhǔn)時間 4)時鐘計數(shù)顯示時有LED燈顯示

      二、整體設(shè)計思想

      2.1性能指標(biāo)及功能設(shè)計

      1)時、分、秒計時器

      時計時器為一個24進(jìn)制計數(shù)器,分、秒計時器均為60進(jìn)制計數(shù)器。當(dāng)秒計時器接受到一個秒脈沖時,秒計數(shù)器開始從1計數(shù)到60,此時秒顯示器將顯示00、01、02、...、59、00;每當(dāng)秒計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至分計時器,此時分計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、...、59、00;每當(dāng)分計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至?xí)r計時器,此時時計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、...、23、00。即當(dāng)數(shù)字鐘運(yùn)行到23點59分59秒時,當(dāng)秒計時器在接受一個秒脈沖,數(shù)字鐘將自動顯示00點00分00秒。2)校時電路

      當(dāng)開關(guān)撥至校時檔時,電子鐘秒計時工作,通過時、分校時開關(guān)分別對時、分進(jìn)行校對,開關(guān)每按1次,與開關(guān)對應(yīng)的時或分計數(shù)器加1,當(dāng)調(diào)至需要的時與分時,撥動reset開關(guān),電子鐘從設(shè)置的時間開始往后計時。2.2總體方框圖

      三、詳細(xì)設(shè)計

      3.1數(shù)字鐘的基本工作原理:

      3.1.1時基T 產(chǎn)生電路

      數(shù)字鐘以其顯示時間的直觀性、走時準(zhǔn)確性作為一種計時工具,數(shù)字鐘的基本組成部分離不開計數(shù)器,在控制邏輯電路的控制下完成預(yù)定的各項功能。

      由晶振產(chǎn)生的頻率非常穩(wěn)定的脈沖,經(jīng)整形、穩(wěn)定電路后,產(chǎn)生一個頻率為1Hz的、非常穩(wěn)定的計數(shù)時鐘脈沖。

      3.1.2調(diào)時、調(diào)分信號的產(chǎn)生

      由計數(shù)器的計數(shù)過程可知,正常計數(shù)時,當(dāng)秒計數(shù)器(60進(jìn)制)計數(shù)到59 時,再來一個脈沖,則秒計數(shù)器清零,重新開始新一輪的計數(shù),而進(jìn)位則作為分計數(shù)器的計數(shù)脈沖,使分計數(shù)器計數(shù)加1?,F(xiàn)在我們把電路稍做變動:把秒計數(shù)器的進(jìn)位脈沖和一個頻率為2Hz的脈沖信號同時接到一個2選1數(shù)據(jù)選擇器的兩個數(shù)據(jù)輸入端,而位選信號則接一個脈沖按鍵開關(guān),當(dāng)按鍵開關(guān)不按下去時(即為0),則數(shù)據(jù)選擇器將秒計數(shù)器的進(jìn)位脈沖送到分計數(shù)器,此時,數(shù)字鐘正常工作;當(dāng)按鍵開關(guān)按下去時(即為1),則數(shù)據(jù)選擇器將另外一個2Hz 的信號作為分計數(shù) 器的計數(shù)脈沖,使其計數(shù)頻率加快,當(dāng)達(dá)到正確時間時,松開按鍵開關(guān),從而達(dá)到調(diào)時的目的。調(diào)節(jié)小時的時間也一樣的實現(xiàn)。

      3.1.3計數(shù)顯示電路

      由計數(shù)部分、數(shù)據(jù)選擇器、譯碼器組成,是時鐘的關(guān)鍵部分。

      1、計數(shù)部分:由兩個60進(jìn)制計數(shù)器和一個24 進(jìn)制計數(shù)器組成,其中60 進(jìn)制計數(shù)器可用6 進(jìn)制計數(shù)器和10 進(jìn)制計數(shù)器構(gòu)成;24 進(jìn)制的小時計數(shù)同樣可用6 進(jìn)制計數(shù)器和10 進(jìn)制計數(shù)器得到:當(dāng)計數(shù)器計數(shù)到24 時,“2”和“4”同時進(jìn)行清零,則可實現(xiàn)24 進(jìn)制計數(shù)。

      2、數(shù)據(jù)選擇器:84 輸入14 輸出的多路數(shù)據(jù)選擇器,因為本實驗用到了8個數(shù)碼管(有兩個用來產(chǎn)生隔離符號‘—’)。

      3、譯碼器:七段譯碼器。譯碼器必須能譯出‘—’,由實驗二中譯碼器真值表可得:字母F 的8421BCD 碼為“1111”,譯碼后為“1000111”,現(xiàn)在如果只譯出‘—’,即字母F的中間一橫,則譯碼后應(yīng)為“0000001”,這樣,在數(shù)碼管上顯示的就為‘—’。

      3.2設(shè)計思路

      根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)設(shè)計采用自頂向下設(shè)計方法,由時鐘分頻部分、計時部分、按鍵部分調(diào)時部分和顯示部分五個部分組成。這些模塊都放在一個頂層文件中。

      1)時鐘計數(shù):

      首先下載程序進(jìn)行復(fù)位清零操作,電子鐘從00:00:00計時開始。sethour可以調(diào)整時鐘的小時部分, setmin可以調(diào)整分鐘,步進(jìn)為1。

      由于電子鐘的最小計時單位是1s,因此提供給系統(tǒng)的內(nèi)部的時鐘頻率應(yīng)該大于1Hz,這里取100Hz。CLK端連接外部10Hz的時鐘輸入信號clk。對clk進(jìn)行計數(shù),當(dāng)clk=10時,秒加1,當(dāng)秒加到60時,分加1;當(dāng)分加到60時,時加1;當(dāng)時加到24時,全部清0,從新計時。

      用6位數(shù)碼管分別顯示“時”、“分”、“秒”,通過OUTPUT(6 DOWNTO 0)上的信號來點亮指定的LED七段顯示數(shù)碼管。

      2)時間設(shè)置:

      手動調(diào)節(jié)分鐘、小時,可以對所設(shè)計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實驗板上的鍵7和鍵4進(jìn)行任意的調(diào)整,因為我們用的時鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。3)清零功能: reset為復(fù)位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復(fù)位。

      3.3設(shè)計步驟

      3.3.1工程建立及存盤

      1.打開 QuartusⅡ,單擊“File”菜單,選擇 File→New Project Wizard,對話框如下:分別輸入項目的工作路徑、項目名和實體名,單擊Finish。

      2.單擊“File”菜單,選擇New,彈出小對話框,雙擊“VHDL File“,即選中了文本編輯方式。在出現(xiàn)的“Vhdl1.vhd”文本編輯窗中鍵入VHDL程序,輸入完畢后,選擇File→Save As,即出現(xiàn)“Save As”對話框。選擇自己建立好的存放本文件的目錄,然后在文件名框中鍵入文件名,按“Save”按鈕。

      3.建立工程項目,在保存VHDL文件時會彈出是否建立項目的小窗口,點擊“Yes”確定。即出現(xiàn)建立工程項目的導(dǎo)航窗口,點擊“Next”,最后在出現(xiàn)的屏幕中分別鍵入新項目的工作路徑、項目名和實體名。注意,原理圖輸入設(shè)計方法中,存盤的原理圖文件名可以是任意的,但VHDL程序文本存盤的文件名必須與文件的實體名一致,輸入后,單擊“Finish”按鈕。3.3.2工程項目的編譯

      單擊工具條上的編譯符號開始編譯,并隨著進(jìn)度不斷變化屏幕,編譯完成后的屏幕如圖所示:

      3.3.3目標(biāo)芯片的選擇

      選擇菜單 Assignments 選項的下拉菜單中選擇器件 Device ?,如圖所示: 在彈出的對話框中的 Family(器件序列欄)對應(yīng)的序列名,EP1C3 對應(yīng)的是 Cyclone 系列。在 Available Devices里選擇 EP1C3T144-C8(有時需要把 Show advanced devices的勾消去,以便顯示出所有速度級別的器件)。注意:所選器件必須與目標(biāo)板的器件型號完全一致。

      在圖中,單擊“Device and Pin Options?”,在彈出的“Device and Pin Options?”窗口中,單擊“Unused Pins”標(biāo)簽。選擇“As output driving an unspecified signal ”(由于學(xué)習(xí)機(jī)的“FPGA”具有很多功能,為了避免使用引腳對其它器件造成影響,保證本系統(tǒng)可靠工作,將未使用引腳設(shè)定為輸出不定狀態(tài))后,單擊確定后,無誤后單擊“OK”。

      3.3.4時序仿真

      建立波形文件:選擇 File→New,在New窗中選中“Other File”標(biāo)簽。在出現(xiàn)的屏幕中選擇“Vector Waveform File”項出現(xiàn)一新的屏幕。在出現(xiàn)的新屏幕中,雙擊“Name”下方的空白處,彈出“Insert Nod or Bus”對話框,單擊該對話框的“Node Finder??”。在屏幕中的 Filter 中選擇 Pins,單擊“List”。而后,單擊“>>”,所有輸入/輸出都被拷貝到右邊的一側(cè),這些正是我們希望的各個引腳,也可以只選其中的的一部分,根據(jù)實際情況決定。然后單擊屏幕右上腳的 “OK”。在出現(xiàn)的小屏幕上單擊“OK”。

      設(shè)定仿真時間寬度。選擇 Edit → End time?選項,在End time選擇窗中選擇適當(dāng)?shù)姆抡鏁r間域,以便有足夠長的觀察時間。

      波形文件存盤。選擇File→Save as 選項,直接存盤即可。運(yùn)行仿真器。在菜單中選擇項,直到出現(xiàn),仿真結(jié)束。

      未曾編輯的仿真波形

      仿真波形 3.3.5引腳鎖定

      將設(shè)計編程下載進(jìn)選定的目標(biāo)器件中,如EPF10K10,作進(jìn)一步的硬件測試,將設(shè)計的所有輸入輸出引腳分別與目標(biāo)器件的EPF10K10的部分引腳相接,操作如下:

      1.選擇 Assignments → Assignments Editor ,即進(jìn)入 Assignments Editor編輯器。在Category 欄選擇 Pin,或直接單擊右上側(cè)的 Pin 按鈕。

      2.雙擊 TO 欄的《new》,在出現(xiàn)的的下拉欄中選擇對應(yīng)的端口信號名(如 D[0]);然后雙擊對應(yīng)的欄的《new》,在出現(xiàn)的下拉欄中選擇對應(yīng)的端口信號名的期間引腳號。

      3.最后存儲這些引腳鎖定信息后,必須再編譯(啟動)一次,才能將引腳鎖定信息編譯進(jìn)編程下載文件中。此后就可以準(zhǔn)備將編譯好的 SOF 文件下載到試驗系統(tǒng)的FPGA中去了。

      引腳鎖定 3.3.6硬件測試

      1.首先將下載線把計算機(jī)的打印機(jī)口與目標(biāo)板(如開發(fā)板或?qū)嶒灠澹┻B接好,打開電源,選擇模式7。

      2.打開編輯窗和配置文件。選擇,彈出一個編輯窗。在Mode欄中選擇JTAG,并在選項下的小方框打勾。注意核對下載文件路徑與文件名。如果文件沒有出現(xiàn)或者出錯,單擊左Add file側(cè)按鈕,手動選擇配置文件 clock.sof。

      3.最后單擊下載標(biāo)符Start,即進(jìn)入對目標(biāo)器件 FPGA 的配置下載操作。當(dāng) Progress 顯示100%,以及在底部的處理欄中出現(xiàn) Configuration Succeeded 時,表示編程成功,如圖所示。注意,如果必要時,可再次單擊 Start,直至編程成功。

      4.下載完成后,通過硬件測試進(jìn)一步確定設(shè)計是否達(dá)到所有的技術(shù)指標(biāo),如未達(dá)到,可逐步檢查,哪部分出現(xiàn)問題。如果是代碼出現(xiàn)問題,須修改代碼;若是時序波形圖有問題,須重新設(shè)置。

      3.3.7實驗結(jié)果

      實驗箱使用模式7,鍵8為復(fù)位按鍵,鍵8為1時正常工作。鍵4設(shè)置小時,鍵7設(shè)置分鐘。

      下載成功后,按下鍵8,及使六個LED復(fù)位清零,顯示數(shù)秒的自動計時,可以通過4鍵設(shè)置小時數(shù),7鍵設(shè)置分鐘數(shù)。當(dāng)秒數(shù)滿60則進(jìn)一位,分鐘數(shù)滿60進(jìn)一位,當(dāng)顯示為23:59:59時,秒數(shù)在加一則顯示00:00:00,之后從新計時。

      四、設(shè)計總結(jié)

      通過這次課程設(shè)計,我進(jìn)一步加深了對電子設(shè)計自動化的了解。并進(jìn)一步熟練了對QuartusII軟件的操作。在編寫程序的過程中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學(xué)習(xí)上存在的不足。通過與同學(xué)探討和請教老師,終于把問題都解決了,并加深了對數(shù)字時鐘原理和設(shè)計思路的了解。

      同時也掌握了做課程設(shè)計的一般流程,為以后的設(shè)計積累了一定的經(jīng)驗。做課程設(shè)計時,先查閱相關(guān)知識,把原理吃透,確定一個大的設(shè)計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。最后參照每個模塊把輸入和輸出引腳設(shè)定,運(yùn)用我們所學(xué)的VHDL語言進(jìn)行編程??傊?,通過這次的設(shè)計,進(jìn)一步了解了EDA技術(shù),收獲很大,對軟件編程、排錯調(diào)試、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。

      在此,也感謝康老師的悉心指導(dǎo),使自己學(xué)到了很多東西!

      五、附錄

      5.1 VHDL源程序

      Alert模塊

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY alert IS

      PORT(clk:IN STD_LOGIC;

      dain:IN STD_LOGIC_VECTOR(6 DOWNTO 0);

      speak:OUT STD_LOGIC;

      lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END alert;ARCHITECTURE fun OF alert IS

      SIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL count1:STD_LOGIC_VECTOR(1 DOWNTO 0);

      BEGIN speaker:PROCESS(clk)

      BEGIN

      --speak<=count1(1);

      IF(clk'event and clk='1')THEN

      IF(dain=”0000000“)THEN

      speak<=count1(1);

      IF(count1>=”10“)THEN

      count1<=”00“;--count1為三進(jìn)制加法計數(shù)器

      ELSE

      count1<=count1+1;--speak<=count1(0);

      END IF;

      END IF;

      END IF;

      END PROCESS speaker;lamper:PROCESS(clk)

      BEGIN

      IF(rising_edge(clk))THEN

      IF(count<=”10“)THEN

      IF(count=”00“)THEN

      lamp<=”001“;--循環(huán)點亮三只燈

      ELSIF(count=”01“)THEN

      lamp<=”010“;

      ELSIF(count=”10“)THEN

      lamp<=”100“;

      END IF;

      count<=count+1;

      ELSE

      count<=”00“;

      END IF;

      END IF;

      END PROCESS lamper;END fun;Hour模塊

      LIBRARY IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour IS

      PORT(clk,reset:IN STD_LOGIC;

      daout:out STD_LOGIC_VECTOR(5 DOWNTO 0));END ENTITY hour;ARCHITECTURE fun OF hour IS SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);

      BEGIN

      daout<=count;

      PROCESS(clk,reset)

      BEGIN

      IF(reset='0')THEN count<=”000000“;--若reset=0,則異步清零

      ELSIF(clk'event and clk='1')THEN

      --否則,若clk上升沿到

      IF(count(3 DOWNTO 0)=”1001“)THEN--若個位計時恰好到”1001“即9

      IF(count<16#23#)THEN

      --23進(jìn)制

      count<=count+7;

      --若到23D則

      else

      count<=”000000“;

      --復(fù)0

      END IF;

      ELSIF(count<16#23#)THEN

      --若未到23D,則count進(jìn)1

      count<=count+1;

      ELSE

      --否則清零

      count<=”000000“;

      END IF;

      --END IF(count(3 DOWNTO 0)=”1001“)

      END IF;

      --END IF(reset='0')

      END PROCESS;END fun;Minute模塊

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute IS

      PORT(clk,clk1,reset,sethour:IN STD_LOGIC;

      enhour:OUT STD_LOGIC;

      daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY minute;ARCHITECTURE fun OF minute IS SIGNAL count :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enhour_1, enhour_2: STD_LOGIC;--enmin_1為59分時的進(jìn)位信號 BEGIN

      --enmin_2由clk調(diào)制后的手動調(diào)時脈沖信號串

      daout<=count;

      enhour_2<=(sethour and clk1);--sethour為手動調(diào)時控制信號,高電平有效

      enhour<=(enhour_1 or enhour_2);PROCESS(clk,reset,sethour)

      BEGIN

      IF(reset='0')THEN--若reset為0,則異步清零

      count<=”0000000“;

      ELSIF(clk'event and clk='1')THEN--否則,若clk上升沿到

      IF(count(3 DOWNTO 0)=”1001“)THEN--若個位計時恰好到”1001“即9

      IF(count <16#60#)THEN--又若count小于16#60#,即60

      IF(count=”1011001“)THEN--又若已到59D

      enhour_1<='1';--則置進(jìn)位為1

      count<=”0000000“;--count復(fù)0

      ELSE

      count<=count+7;--若count未到59D,則加7,即作”加6校正“

      END IF;--使前面的16#60#的個位轉(zhuǎn)變?yōu)?421BCD的容量

      ELSE

      count<=”0000000“;--count復(fù)0(有此句,則對無效狀態(tài)電路可自啟動)

      END IF;

      --END IF(count<16#60#)

      ELSIF(count <16#60#)THEN

      count<=count+1;--若count<16#60#則count加1

      enhour_1<='0' after 100 ns;--沒有發(fā)生進(jìn)位

      ELSE

      count<=”0000000“;--否則,若count不小于16#60# count復(fù)0

      END IF;--END IF(count(3 DOWNTO 0)=”1001“)

      END IF;--END IF(reset='0')

      END process;END fun;Second模塊

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second IS PORT(clk,reset,setmin:STD_LOGIC;

      enmin:OUT STD_LOGIC;

      daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY second;ARCHITECTURE fun OF second IS SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enmin_1,enmin_2:STD_LOGIC;

      --enmin_1為59秒時的進(jìn)位信號

      BEGIN

      --enmin_2由clk調(diào)制后的手動調(diào)分脈沖信號串

      daout<=count;

      enmin_2<=(setmin and clk);--setmin為手動調(diào)分控制信號,高電平有效

      enmin<=(enmin_1 or enmin_2);--enmin為向分進(jìn)位信號

      PROCESS(clk,reset,setmin)

      BEGIN

      IF(reset='0')THEN count<=”0000000“;--若reset為0,則異步清零

      ELSIF(clk 'event and clk='1')then--否則,若clk上升沿到

      IF(count(3 downto 0)=”1001“)then

      --若個位計時恰好到”1001“即9

      IF(count<16#60#)then--又若count小于16#60#,即60H IF(count=”1011001“)then

      --又若已到59D

      enmin_1<='1';count<=”0000000“;--則置進(jìn)位為1及count復(fù)0

      ELSE

      --未到59D

      count<=count+7;--則加7,而+7=+1+6,即作”加6校正“

      END IF;

      ELSE

      --若count不小于16#60#(即count等于或大于16#60#)

      count<=”0000000“;

      --count復(fù)0

      END IF;

      --END IF(count<16#60#)

      ELSIF(count<16#60#)then--若個位計數(shù)未到”1001“則轉(zhuǎn)此句再判

      count<=count+1;

      --若count<16#60#則count加1

      enmin_1<='0'after 100 ns;--沒有發(fā)生進(jìn)位

      ELSE

      --否則,若count不小于16#60#

      count<=”0000000“;

      --則count復(fù)0

      END IF;

      --END IF(count(3 DOWNTO 0)=”1001")

      END IF;

      --END IF(reset='0')END PROCESS;END fun;5.2配置符號圖

      第四篇:EDA課程設(shè)計 數(shù)字時鐘

      EDA

      課程設(shè)計報告

      一·設(shè)計任務(wù)

      使用硬件描述語言,在CPLD/FPGA上實現(xiàn)一個多功能數(shù)字鐘。

      二·設(shè)計要求

      除按鍵、LED、揚(yáng)聲器、時鐘信號外,整個數(shù)字鐘的功能要求在一塊芯片上實現(xiàn)。

      a)具有時,分,秒,計數(shù)顯示功能,以24小時循環(huán)計時; b)具有時間清零功能;

      c)具有小時、分鐘和秒鐘調(diào)整功能(個位和十位分開調(diào)或合起來調(diào))。

      d)具有鬧鐘功能,能預(yù)設(shè)鬧鐘時間,精確到秒。

      整個數(shù)字鐘只設(shè)一個時鐘輸入端口,所需不同頻率信

      號在內(nèi)部分頻實現(xiàn)。(LED掃描頻率設(shè)為50Hz以上)。

      三·設(shè)計方案

      設(shè)計采用模塊方式,分別為分頻模塊:產(chǎn)生1Hz的脈沖作為秒的輸入,和產(chǎn)生1kHz的脈沖作為數(shù)碼管顯示的動態(tài)掃描。計時模塊:秒模塊,分模塊,時模塊。鬧鐘模塊,顯示模塊,控制模塊。

      四·模塊端口設(shè)置

      1.分頻模塊

      輸入:clkin :

      本實驗輸入為50MHz晶振

      輸出:clk : 為顯示模塊及始終調(diào)節(jié)提供1KHz脈沖

      clkt: 為計數(shù)器模塊提供1Hz脈沖

      2.計時模塊

      m 是模式按鍵,當(dāng)m=0 時,進(jìn)入計時模式,在計時模式下可以進(jìn)行時間調(diào)整。num3,num4 產(chǎn)生加速調(diào)整時間,當(dāng)其值為1 時,可以快速調(diào)整時間,該調(diào)整時間的頻率由clk 提

      供。counta,count1 是手動調(diào)節(jié)時間。Turn 接按鍵,可以改變當(dāng)前調(diào)節(jié)的是小時還是分鐘,長按turn 鍵還可以使秒鐘信號清零。sec1,min1,hour1 輸出的是計時的秒,分,時。

      3.鬧鐘模塊

      原理:num1,num2 產(chǎn)生加速調(diào)整時間,當(dāng)其值為1 時,可以快速調(diào)整時間,該調(diào)整時間的

      頻率由clk 提供。countb,count2 是手動調(diào)節(jié)鬧鐘時間。amin,ahour 是輸出的鬧鐘的分鐘和 小時 4.控制模塊

      m 是模式按鍵,當(dāng)m=0 時,指當(dāng)前輸出的是計時功能;當(dāng)m=1 時,指當(dāng)前調(diào)整的是

      鬧鐘時間;當(dāng)m=2 時,指當(dāng)前調(diào)整的是計時時間;當(dāng)m=3 時,此時turn 按鍵可用于跑表的

      暫停與開始。change 接按鍵,手動調(diào)整時,每按一次,計數(shù)器加1;如果長按,則連續(xù)快

      速加1,用于快速調(diào)時和定時;turn 接按鍵,在手動校時功能時,選擇是調(diào)整小時,還是分

      鐘;若長時間按住該鍵,還可使秒信號清零,用于精確調(diào)時。count1,count2,counta,countb 分

      別是用來調(diào)節(jié)計時時間和鬧鐘時間。LD_min,LD_hour,指示當(dāng)前調(diào)節(jié)的是分鐘還是小時。5 顯示模塊

      輸入:clk--1kHz時鐘,提供高頻掃描

      in0、in1…in5--分別為時、分、秒的個位與十位信號

      輸出:a、b…g--數(shù)碼管輸入

      d0、d1…d5--數(shù)碼管選通

      五.程序。

      分頻模塊

      module fenpin(clk,clkt,clkin);input clkin;output clk,clkt;reg clk,clkt;reg [31:0]out,t1;

      initial t1<=0;initial out<=0;initial clk<=0;initial clkt<=0;

      always@(posedge clkin)begin

      out<=out+1;

      if(out==20000)

      begin

      out<=0;

      clk<=!clk;

      end end

      always@(posedge clk)

      begin

      t1<=t1+1;

      if(t1==1000)

      begin

      clkt<=1;

      t1<=0;

      end

      else

      clkt<=0;end endmodule

      計時模塊 module jishi(clk,clk_1Hz, turn,mode,count1,counta,sec1,min1,hour1,num3,num4);input clk,clkt,turn,num3,num4;input mode;input count1,counta;output [7:0] sec1,min1;output [7:0] hour1;wire clkt,ct1,cta,turn,num3,num4;reg [7:0] sec1=0,min1=0;reg [7:0] hour1=0;reg [1:0] m;wire count1,counta;reg minclk,hclk;always @(posedge mode)//mode 信號控制系統(tǒng)在三種功能間轉(zhuǎn)換 begin if(m==4)m<=0;else m<=m+1;end /////秒鐘計時模塊////// always @(posedge clkt)

      if((sec1==8'h59)|turn&(!m))///////若長時間按住該鍵,還可使秒信號清零,用于精確調(diào)時。begin sec1<=0;//按住“turn”按鍵一段時間,秒信號可清零,該功能用于手動精確調(diào)時

      if(!(turn&(!m)))minclk<=1;///產(chǎn)生進(jìn)位 end else begin if(sec1[3:0]==4'b1001)begin sec1[3:0]<=4'b0000;sec1[7:4]<=sec1[7:4]+1;end else sec1[3:0]<=sec1[3:0]+1;minclk<=0;end ////////分鐘計時模?/// assign m_clk=minclk||count1;/////m_clk 產(chǎn)生進(jìn)位或校正改變 assign ct1=(num3&clk)|(!num3&m_clk);//ct1 用于計時、校時中的分鐘計數(shù)

      always @(posedge ct1)begin if(min1==8'h59)begin min1<=0;hclk<=1;end else begin if(min1[3:0]==9)

      begin min1[3:0]<=0;min1[7:4]<=min1[7:4]+1;end else min1[3:0]<=min1[3:0]+1;hclk<=0;end end ////////小時計時模塊/// assign h_clk=hclk||counta;//////h_clk 產(chǎn)生進(jìn)位或校正改變 assign cta=(num4&clk)|(!num4&h_clk);//cta 用于計時、校時中的小時計數(shù)

      always @(posedge cta)if(hour1==8'h23)hour1<=0;else if(hour1[3:0]==9)begin hour1[7:4]<=hour1[7:4]+1;hour1[3:0]<=0;end else hour1[3:0]<=hour1[3:0]+1;Endmodule

      鬧鐘模塊

      module alarm(clk,amin,ahour,num1,num2,count2,countb,LD_alert);input clk,num1,num2,count2,countb;output [7:0] amin;

      output [7:0] ahour;output LD_alert;wire LD_alert;reg [7:0] amin=0;reg [7:0] ahour=0;assign ct2=(num1&clk)|(!num1&count2);//ct2 用于定時狀態(tài)下調(diào)整分鐘信號

      assign LD_alert=(ahour|amin)?1:0;//指示是否進(jìn)行了鬧鈴定時 always @(posedge ct2)if(amin==8'h59)amin<=0;else if(amin[3:0]==9)begin amin[3:0]<=0;amin[7:4]<=amin[7:4]+1;end else amin[3:0]<=amin[3:0]+1;assign ctb=(num2&clk)|(!num2&countb);////ctb 用于定時狀態(tài)調(diào)節(jié)小時信號 always @(posedge ctb)if(ahour==8'h23)ahour<=0;else if(ahour[3:0]==9)begin ahour[3:0]<=0;ahour[7:4]<=ahour[7:4]+1;end else ahour[3:0]<=ahour[3:0]+1;Endmodule 控制模塊

      module ctrol(change,turn,count1,count2,counta,countb,pause,LD_min,LD_hour,mode);input change,mode,turn;output count1,count2,counta,countb,pause,LD_min,LD_hour;reg [1:0] m;reg fm=0,count1=0,count2=0,counta=0,countb=0,pause=0,LD_min=0,LD_hour=0;wire mode,turn,change;always @(posedge mode)//mode 信號控制系統(tǒng)在三種功能間轉(zhuǎn)換 begin if(m==4)m<=0;else m<=m+1;end always @(posedge turn)//////////接按鍵,在手動校時功能時,選擇是調(diào)整小時,還是分鐘; begin fm<=~fm;end

      always @(m or fm or change)begin case(m)2: begin ////////2:調(diào)節(jié)時間功能; if(fm)begin count1<=change;{LD_min,LD_hour}<=2;end//////指示當(dāng)前調(diào)整的是分鐘

      Else

      begin counta<=change;{LD_min,LD_hour}<=1;end/////指示當(dāng)前調(diào)整的是小時 {count2,countb}<=0;end 1: begin //////1:調(diào)節(jié)鬧鐘功能 if(fm)begin count2<=change;{LD_min,LD_hour}<=2;end/////指示當(dāng)前調(diào)整的是分 else begin countb<=change;{LD_min,LD_hour}<=1;end/////指示當(dāng)前調(diào)整的是小時 {count1,counta}<=0;end

      0: begin {count1,count2,counta,countb,LD_min,LD_hour}<=0;end ////0:計時功能 endcase end endmodule 顯示模塊

      module show(min1,sec1,amin,hour1,ahour,MSH,MSL,SH,SL,MH,ML,min,sec,hour,mode);input [7:0] min1,sec1,amin;input [7:0] hour1,ahour;input[3:0] MSH,MSL,SH,SL,MH,ML;input mode;output [7:0] min,sec;output [7:0] hour;reg [7:0] min,sec;reg [7:0] hour;reg [1:0] m;always @(posedge mode)//mode 信號控制系統(tǒng)在三種功能間轉(zhuǎn)換

      begin if(m==4)m<=0;else m<=m+1;end always @(min1 or sec1 or amin or hour1 or ahour or m)begin case(m)0: begin hour<=hour1;min<=min1;sec<=sec1;end 1: begin hour<=ahour;min<=amin;sec<=8'hzz;end 2: begin hour<=hour1;min<=min1;sec<=8'hzz;end 3: begin

      hour<={SH,SL};

      min<={MSH,MSL};sec<={MH,ML};end endcase end Endmodule

      實驗分析 七

      實驗總結(jié)

      八、參考資料

      1、《EDA技術(shù)實用教程》

      2、實驗箱使用說明;

      第五篇:EDA課程設(shè)計 數(shù)字時鐘(鬧鐘)

      課 程 設(shè) 計 說 明 書

      題目: 鬧鐘

      學(xué)院(系): 年級專業(yè): 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 教師職稱:

      共 16 頁

      第 1 頁

      目 錄

      第1章 摘要…………………………………………………………………………………1 第2章 設(shè)計方案……………………………………………………………………………

      2.1 VHDL簡介…………………………………………………………………………… 2.2 設(shè)計思路…………………………………………………………………………… 第3章 模塊介紹…………………………………………………………………………… 第4章 Verilog HDL設(shè)計源程序………………………………………………………… 第5章 波形仿真圖………………………………………………………………………… 第6章 管腳鎖定及硬件連線……………………………………………………………… 心得體會 ……………………………………………………………………………………17 參考文獻(xiàn) ……………………………………………………………………………………18

      共 16 頁

      第 2 頁

      第一章 摘要

      在當(dāng)今社會,數(shù)字電路產(chǎn)品的應(yīng)用在我們的實際生活中顯得越來越重要,與我們的生活聯(lián)系愈加緊密,例如計算機(jī)、儀表、電子鐘等等,使我們的生活工作較以前的方式更加方便、完善,帶來了很多的益處。

      在此次EDA課程,我的設(shè)計課題是鬧鐘,使用VHDL語言進(jìn)行編程完成。報告書主要由設(shè)計方案、模塊介紹、設(shè)計源程序、仿真波形圖和管腳鎖定及硬件連線四部分組成。設(shè)計方案主要介紹了我對于設(shè)計課題的大致設(shè)計思路,之后各個部分將會詳細(xì)介紹設(shè)計組成及程序。

      共 16 頁

      第 3 頁

      第二章 設(shè)計方案 §2.1 VHDL簡介

      數(shù)字電路主要是基于兩個信號(我們可以簡單的說是有電壓和無電壓),用數(shù)字信號完成對數(shù)字量進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算的電路我們稱之為數(shù)字電路,它具有邏輯運(yùn)算和邏輯處理等功能,數(shù)字電路可分為組合邏輯電路和時序邏輯電路。

      EDA技術(shù),就是以大規(guī)模可編程邏輯器件為設(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達(dá)方式,以計算機(jī)、大規(guī)模可編程邏輯器件的開發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具,通過有關(guān)的開發(fā)軟件,自動完成用軟件的方式設(shè)計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至完成對于特定目標(biāo)芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。

      利用EDA技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計,具有以下幾個特點:① 用軟件的方式設(shè)計硬件;② 用軟件方式設(shè)計的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的開發(fā)軟件自動完成的;③ 設(shè)計過程中可用有關(guān)軟件進(jìn)行各種仿真;④ 系統(tǒng)可現(xiàn)場編程,在線升級;⑤ 整個系統(tǒng)可集成在一個芯片上,體積小、功耗低、可靠性高。因此,EDA技術(shù)是現(xiàn)代電子設(shè)計的發(fā)展趨勢。

      EDA技術(shù)伴隨著計算機(jī)、集成電路、電子系統(tǒng)設(shè)計的發(fā)展,經(jīng)歷了計算機(jī)輔助設(shè)計(Computer Assist Design,簡稱CAD)、計算機(jī)輔助工程設(shè)計(Computer Assist Engineering Design,簡稱CAE)和電子設(shè)計自動化(Electronic Design Automation,簡稱EDA)三個發(fā)展階段。

      常用的硬件描述語言有VHDL、Verilog、ABEL。

      EDA技術(shù)是隨著集成電路和計算機(jī)技術(shù)的飛速發(fā)展應(yīng)運(yùn)而生的一種高級、快速、有效的電子設(shè)計自動化工具。它是為解決自動控制系統(tǒng)設(shè)計而提出的,從70年代經(jīng)歷了計算機(jī)輔助設(shè)計(CAD),計算機(jī)輔助工程(CAE),電子系統(tǒng)設(shè)計自動化(ESDA)3個階段。前兩個階段的EDA產(chǎn)品都只是個別或部分的解決了電子產(chǎn)品設(shè)計中的工程問題;第三代EDA工具根據(jù)工程設(shè)計中的瓶

      共 16 頁

      第 4 頁

      頸和矛盾對設(shè)計數(shù)據(jù)庫實現(xiàn)了統(tǒng)一管理,并提出了并行設(shè)計環(huán)境概念,提供了獨立于工藝和廠家的系統(tǒng)級的設(shè)計工具。EDA關(guān)鍵技術(shù)之一就是采用硬件描述語言對硬件電路進(jìn)行描述,且具有系統(tǒng)級仿真和綜合能力。目前應(yīng)用比較廣泛的硬件描述語言就是Verilog HDL。Verilog HDL簡介

      Verilog HDL是目前大規(guī)模集成電路設(shè)計中最具代表性、使用最廣泛的硬件描述語言之一。具有如下特點:

      (1)能夠在不同的抽象層次上,如系統(tǒng)級、行為級、RTL級、門級和開關(guān)級,對設(shè)計系統(tǒng)進(jìn)行精確而簡練的描述。

      (2)能夠在每個抽象層次的描述上對設(shè)計進(jìn)行仿真驗證,及時發(fā)現(xiàn)及時發(fā)現(xiàn)可能存在的錯誤,縮短設(shè)計周期,并保存整個設(shè)計過程的正確性。

      (3)由于代碼描述與工藝過程實現(xiàn)無關(guān),便于設(shè)計標(biāo)準(zhǔn)化,提高設(shè)計的可重用性。如國有C語言的編程基礎(chǔ)經(jīng)驗,只需很短的時間就能學(xué)會和掌握Verilog HDL,因此,Verilog HDL可以作為學(xué)習(xí)HDL設(shè)計方法的入門和基礎(chǔ)。

      §2.2 設(shè)計思路

      一、設(shè)計要求

      1、設(shè)計簡易的一分鐘鬧鐘;

      2、可手動輸入定時時間(0~59s),如30s;

      3、兩個動態(tài)數(shù)碼管上跟蹤顯示時間的變化:如30,29,28……到了指定時間蜂鳴器發(fā)出5s的提示音;

      4、采用2個動態(tài)數(shù)碼管顯示時間;

      5、用蜂鳴器發(fā)出提示音;

      6、撥碼開關(guān)設(shè)置定時時間。

      二、設(shè)計思路

      根據(jù)上述的設(shè)計要求,整個系統(tǒng)大致包括如下幾個組成部分:它包括以下幾個組成

      共 16 頁

      第 5 頁

      部分:1)顯示屏,由2個七段動態(tài)數(shù)碼管組成,用于顯示當(dāng)前設(shè)置的鬧鐘時間并進(jìn)行跟蹤顯示;2)6個撥碼開關(guān),用于輸入鬧鐘時間;3)復(fù)位鍵,確定新的鬧鐘時間設(shè)置,或顯示已設(shè)置的鬧鐘時間;4)蜂鳴器,在當(dāng)前時鐘時間與鬧鐘時間相同時,發(fā)出報警聲。

      共 16 頁

      第 6 頁

      第三章 模塊介紹

      一、計時模塊

      此模塊共有6個撥碼開關(guān)作為輸入信號,當(dāng)開關(guān)無輸入時,都處于低電平狀態(tài),D5、D4、D3、D2、D1和D0是并行數(shù)據(jù)輸入端,CRN是異步復(fù)位輸入端,LDN是預(yù)置控制輸入端。當(dāng)開關(guān)有輸入時,會產(chǎn)生一個六位的二進(jìn)制輸出信號num,此信號表示動作的開關(guān)序號,它是作為動態(tài)顯示模塊的輸入信號。

      二、數(shù)碼顯示模塊

      這個模塊有兩個輸入信號和兩個輸出信號。其中一個是信號輸入模塊的輸出num作為輸入,另外一個是時鐘輸入端,作為掃描數(shù)碼管的頻率信號,采用1024HZ的中高頻信號。輸出信號為SS0、SS1、SS2,是動態(tài)數(shù)碼管的片選段。

      三、報警模塊

      報警模塊共有兩個輸入信號ET和CLK1,一個輸出信號COUT。當(dāng)從信號輸入模塊檢測到有開關(guān)輸入時,ET信號已置1,CLK上升沿到來時,程序?qū)OUT置1,蜂鳴器發(fā)出時間為10s的報警信號,時間到達(dá)后,跳出循環(huán),蜂鳴器停止報警。

      四、頂層模塊

      頂層模塊的作用是將各個模塊組合到一起,從而實現(xiàn)最終的功能。其輸入即為各個模塊的輸入,一個時鐘信號,還有6個撥碼開關(guān)的輸入,其輸出為數(shù)碼管顯示和報警器。

      共 16 頁

      第 7 頁

      第四章Verilog HDL設(shè)計源程序

      一、計時模塊

      module counter(LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,Q,OC);input LDN,D5,D4,D3,D2,D1,D0,CLK,CRN;output[5:0] Q;output OC;reg OC;reg[5:0] Q;reg[5:0] Q_TEMP;reg[3:0] NUM;always@(posedge CLK or negedge CRN)begin

      if(~CRN)Q_TEMP=6'b000000;else if(~LDN)begin Q_TEMP={D5,D4,D3,D2,D1,D0};NUM=4'b0000;end else if(Q_TEMP<6'b111100&&Q_TEMP>6'b000000)begin if(NUM<4'b1000&&NUM>=4'b0000)NUM=NUM+1;else NUM=4'b0001;if(NUM==4'b1000)Q_TEMP=Q_TEMP-1;end

      共 16 頁

      第 8 頁

      else Q_TEMP=6'b000000;end always begin

      if(Q_TEMP==6'b000000&&LDN)OC=1'b1;else OC=1'b0;Q=Q_TEMP;end endmodule

      二、數(shù)碼顯示模塊

      module showtime(A,Q,CLKM,SS0,SS1,SS2);input[5:0] A;input CLKM;output[6:0] Q;output SS0,SS1,SS2;reg[6:0] Q;reg SS0,SS1,SS2;reg M;reg[5:0] B;reg[5:0] C;always@(posedge CLKM)begin M=M+1;end always begin

      共 16 頁

      第 9 頁

      if(A<='b001001)begin B=A;C=0;end else if(A>'b001001&&A<='b10011)begin B=A-10;C=1;end else if(A>'b10011&&A<='b11101)begin B=A-20;C=2;end else if(A>'b11101&&A<='b100111)begin B=A-30;C=3;end else if(A>'b100111&&A<='b110001)begin B=A-40;C=4;end else if(A>'b110001&&A<='b111011)

      共 16 頁

      第 10 頁

      begin B=A-50;C=5;end else if(A=='b111100)begin B=0;C=6;end if(M=='b1)begin SS0=1;SS1=0;SS2=0;case(B)'b000000:Q='b0111111;'b000001:Q='b0000110;'b000010:Q='b1011011;'b000011:Q='b1001111;'b000100:Q='b1100110;'b000101:Q='b1101101;'b000110:Q='b1111101;'b000111:Q='b0000111;'b001000:Q='b1111111;'b001001:Q='b1101111;default:Q='b0111111;endcase end

      共 16 頁

      第 11 頁

      else if(M=='b0)begin SS0=0;SS1=0;SS2=0;case(C)'b000000:Q='b0111111;'b000001:Q='b0000110;'b000010:Q='b1011011;'b000011:Q='b1001111;'b000100:Q='b1100110;'b000101:Q='b1101101;'b000110:Q='b1111101;default:Q='b0111111;endcase end end endmodule

      三、報警模塊

      module speaker(CLK1,ET,COUT);input CLK1,ET;output COUT;reg COUT;reg[5:0] TEMP;always@(posedge CLK1)begin

      if(~ET)TEMP=6'b000000;else if(TEMP<6'b101001&&TEMP>=6'b000000)TEMP=TEMP+1;

      共 16 頁

      第 12 頁

      else TEMP=6'b101001;end always begin if(TEMP<6'b101001&&TEMP!=6'b000000)COUT=1'b1;else COUT=1'b0;end endmodule

      四、頂層模塊 module timer(LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,CLK1,COUT,LED,SS0,SS1,SS2,CLKM);input LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,CLK1,CLKM;output[6:0] LED;output COUT,SS0,SS1,SS2;wire X6;wire[5:0] X;counter u1(.LDN(LDN),.D5(D5),.D4(D4),.D3(D3),.D2(D2),.D1(D1),.D0(D0),.CLK(CLK),.CRN(CRN),.Q(X[5:0]),.OC(X6));showtime u2(.A(X[5:0]),.Q(LED[6:0]),.CLKM(CLKM),.SS0(SS0),.SS1(SS1),.SS2(SS2));speaker u3(.CLK1(CLK1),.ET(X6),.COUT(COUT));endmodule

      共 16 頁

      第 13 頁

      第五章 波形仿真圖

      一、計時模塊波形仿真圖

      二、報警模塊波形仿真圖

      三、頂層模塊波形仿真圖

      共 16 頁

      第 14 頁

      第六章 管腳鎖定及硬件連線

      一、管腳鎖定

      CLK>chip=timer;Input Pin=75 CLKM>chip=timer:Input Pin=83 CLK1> chip=timer;Input Pin=85 COUT> chip=timer;Output Pin=38 CRN> chip=timer;Input Pin=39 DO> chip=timer;Input Pin=53 D1> chip=timer;Input Pin=47 D2> chip=timer;Input Pin=46 D3> chip=timer;Input Pin=45 D4> chip=timer;Input Pin=44 D5> chip=timer;Input Pin=41 LDN> chip=timer;Input Pin=40 LED0> chip=timer;Output Pin=173 LED1> chip=timer;Output Pin=174 LED2> chip=timer;Output Pin=175 LED3> chip=timer;Output Pin=176 LED4> chip=timer;Output Pin=177 LED5> chip=timer;Output Pin=179 LED6> chip=timer;Output Pin=187 SSO> chip=timer;Output Pin=191 SS1> chip=timer;Output Pin=192 SS2> chip=timer;Output Pin=193 引線說明:撥碼開關(guān)使用數(shù)字開關(guān)組A,需外接引線。

      共 16 頁

      第 15 頁

      心得體會

      通過這次設(shè)計,初步對EDA有一個了解。

      出于沒有學(xué)習(xí)過這門課程,所以再課程設(shè)計開始時對于EDA就是一無所知。課程設(shè)計之初是做了一個簡單的培訓(xùn),關(guān)于軟件和硬件的設(shè)計,算是入門訓(xùn)練吧。通過前兩天的課程講解,我對其有了初步的了解。之后就開始按照指導(dǎo)書中的例題就行練習(xí),仿真,有進(jìn)一步的掌握后就開始了自己的課程設(shè)計。由于我C++程序設(shè)計知識不扎實,所以導(dǎo)致這次軟件設(shè)計困難重重,也讓我明白了在這個領(lǐng)域知識的串聯(lián)是非常普遍的,學(xué)好學(xué)扎實是我們必須要做到的要求。

      通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能提高自己的實際動手能力。在設(shè)計的過程中,可以說得是困難重重,但這畢竟第一次做,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處。

      在此還需要感謝鄭兆兆老師和呂宏詩老師耐心的指導(dǎo)與幫助,使課設(shè)能夠更加順利的完成。

      共 16 頁

      第 16 頁

      參考文獻(xiàn)

      1、閻石主編.《數(shù)字電子技術(shù)基礎(chǔ)》(第五版).高等教等育出版社.2006.5,168-175頁 ;

      2、李國麗、朱維勇、何劍春主編 《EDA與數(shù)字系統(tǒng)設(shè)計》(第2版).機(jī)械工業(yè)出版社.2009.3,105-146頁

      共 16 頁

      第 17 頁

      下載數(shù)字電子EDA課程設(shè)計八音電子琴word格式文檔
      下載數(shù)字電子EDA課程設(shè)計八音電子琴.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為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)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)字電路EDA課程設(shè)計數(shù)字跑表

        EDA課程設(shè)計報告書 題目: 數(shù)字跑表 姓名: 班級: 學(xué)號: 成績: 一、設(shè)計題目及要求 設(shè)計題目:數(shù)字跑表 要求:1 具有暫停,啟動功能。 2 具有重新開始功能。 3 用六個數(shù)碼管分別顯示百分......

        燕山大學(xué)EDA課程設(shè)計數(shù)字跑表

        一、設(shè)計題目及要求 設(shè)計題目:數(shù)字跑表 要求:1 具有暫停,啟動功能; 2 具有重新開始功能; 3 用六個數(shù)碼管分別顯示百分秒,秒和分鐘。 二、設(shè)計過程及內(nèi)容 總體設(shè)計: 第一,對于要實現(xiàn)......

        課程設(shè)計數(shù)字電子鬧鐘

        數(shù) 字 鬧 鐘 的 設(shè) 計 數(shù)字鬧鐘的設(shè)計與制作 一、設(shè)計任務(wù)與要求 設(shè)計并制作一個帶有可定時起鬧的數(shù)字鐘 1.有“時”、“分”十進(jìn)制顯示,“秒”使用發(fā)光二極管閃爍表示 2......

        燕山大學(xué)EDA課程設(shè)計電子日歷

        燕 山 大 學(xué) EDA課程設(shè)計報告書 姓名: 班級: 學(xué)號: 日期: 一、 設(shè)計題目:電子日歷 二、 設(shè)計要求 1. 能顯示年、月、日、星期,如01.11.08 6,星期日顯示8 2. 年、月、日、星期可調(diào) 3......

        EDA課程設(shè)計

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

        EDA 課程設(shè)計

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

        《EDA課程設(shè)計》

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

        數(shù)字電子時鐘課程設(shè)計2

        數(shù)字電子時鐘課程設(shè)計題目: 數(shù)字電子時鐘課程設(shè)計目錄 一、設(shè)計任務(wù)及設(shè)計要求…………………………………………(3) 二、設(shè)計方案論證………………………….. …………. (3) 1.......