第一篇:數(shù)字電路EDA課程設計數(shù)字跑表
EDA課程設計報告書
題目: 數(shù)字跑表
姓名: 班級: 學號: 成績:
一、設計題目及要求 設計題目:數(shù)字跑表
要求:1 具有暫停,啟動功能。
具有重新開始功能。用六個數(shù)碼管分別顯示百分秒,秒和分鐘。
二、設計過程及內(nèi)容
拿到題目后,我在圖書館進行了相關書籍的查閱,首先明確了題目中設計項目要實現(xiàn)的功能,再進一步確定實現(xiàn)其功能的組成部分和使用器件,對于本次設計的總體思路,首先是設計一個控制模塊,可以使跑表具有啟動、暫停及重新開始的功能;然后,利用一個分頻模塊即15進制計數(shù)器得到100HZ的時鐘脈沖,接入到一個100*60*60三個計數(shù)器的模塊中,完成對時間的計時工作和對選時模塊的輸出工作,使選時模塊得到對應的時間,其次將選時模塊與顯示模塊連接,使數(shù)碼管顯示選中的當前時間,從而完成了這次課程設計的設計工作,進入到實現(xiàn)過程中去。
根據(jù)課程設計要求將設計分為5個模塊:
1、控制模塊,使跑表具有啟動、暫停及重新開始的功能;
2、分頻模塊,用于得到頻率為100HZ的時鐘脈沖;
3、計時模塊,進行時間的計時,同時將當前時間輸出給選時模塊;
4、選時模塊,從計時器得到當前時間輸出給顯示模塊;
5、顯示模塊,進行時間的顯示??倛D如下: 第一個模塊:控制器模塊
與門可控制時鐘信號的輸出與否,當跑表為START狀態(tài)時CLK端為高電平,QA為1,時鐘信號輸出,當跑表為STOP狀態(tài)時CLK端為低電平,QA為0,時鐘信號不輸出,從而實現(xiàn)開始和暫停的功能。REST是清零按鈕,REST接到控制模塊和總計時器模塊的清零端,當REST為高電平時,控制模塊和總計數(shù)器模塊清零,跑表重新開始工作。
第二個模塊:分頻器模塊
將74161接成15進制計數(shù)器,將1465HZ的時鐘頻率轉(zhuǎn)換成近似于100HZ的時鐘信號即所需的輸入時鐘信號,從而實現(xiàn)分頻功能。將得到的時鐘信號輸入到總計數(shù)器模塊中去。第三個模塊:計時模塊
計時模塊
本模塊由兩個60進制計數(shù)器和一個100進制計數(shù)器構(gòu)成,從而實現(xiàn)百分秒向秒、秒向分的計數(shù)功能需求。60進制計數(shù)器及100進制計數(shù)器均采用兩個74LS160,采用整體置數(shù)方式接成。從60進制計數(shù)器和100進制計數(shù)器這三個輸出端分別印出八個端口(秒、分、時的個位及十位分別由四個二進制代碼表示),將當前時間編碼傳送給選時模塊,實現(xiàn)時間的選擇和顯示。(秒個位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分個位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D;百分秒個位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D.)
100進制計數(shù)器
60進制計數(shù)器
第四個模塊:選時模塊
本模塊由四個八選一數(shù)據(jù)選擇器74LS151和地址選擇器74LS161構(gòu)成。
地址選擇器74LS161接入一個1465 HZ的時鐘信號,使能端和清零端接高電平,使其循環(huán)工作,產(chǎn)生一組循環(huán)地址碼A、B、C,接到數(shù)碼管的地址端,使其循環(huán)顯示數(shù)字。同時,地址選擇器74LS161產(chǎn)生的一組循環(huán)地址碼接入到四個八選一數(shù)據(jù)選擇器74LS151上,使其對地址相同的一組數(shù)據(jù)進行選擇,產(chǎn)生四個二進制數(shù)A0,A1,A2,A3,即為數(shù)碼管所要顯示的數(shù)字的編碼。
第一個74LS151上的輸入端為秒、分、百分秒個位及十位的四位二進制的最低位(S0A,S1A, M0A, M1A, H0A, H1A), 第二個74LS151上的輸入端為秒、分、百分秒個位及十位的四位二進制的次低位(S0B,S1B,M0B,M1B,H0B,H1B), 第三個74LS151上的輸入端為秒、分、百分秒個位及十位的四位二進制的第二位(S0C,S1C,M0C,M1C,H0C,H1C), 第四個74LS151上的輸入端為秒、分、百分秒個位及十位的四位二進制的第一位(S0D,S1D,M0D,M1D,H0D,H1D),通過這四個八位二進制數(shù)比較器74LS151選出同一組數(shù)(秒個位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分個位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D;百分秒個位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D.)作為輸出A0,A1,A2,A3,接到顯示模塊輸入端。
選時模塊
第五個模塊:顯示模塊
本模塊采用BCD—七段顯示譯碼器7448對實驗板上數(shù)碼管進行驅(qū)動。由選時模塊輸出的顯示數(shù)字編碼A0,A1,A2,A3接至輸入端A,B,C,D,使輸出端產(chǎn)生七位譯碼連接到實驗箱公共數(shù)據(jù)輸入端ABCDEDG,從而進行數(shù)據(jù)的顯示。
顯示模塊
三、設計結(jié)論
兩周的課程設計很快就結(jié)束了,雖然時間很短,但是收獲頗豐。通過這次課程設計,我學到了許多關于EDA的知識,認識到了EDA的強大功能,更重要的是增強了我的實踐動手能力,使我深刻地認識到僅僅學習課本上的知識是遠遠不夠的,必須要多多動手,多多實踐,才能真正理解并掌握所學的知識,達到學以致用的目的。同時我也深深地感受到嚴謹?shù)膽B(tài)度對于科學研究的重要性。由于在設計的過程中,一點點的馬虎都可能造成整個系統(tǒng)的癱瘓,所以每一個細節(jié)都要認真思考,認真操作,不能有絲 百分的大意。這使我認識到要想做一個科研工作者是多么的不易!自己身上的缺點還有很多,要靠以后艱苦的努力來克服!
這次的EDA課程設計給了我一次非常重要也非常難得的實踐機會,使我可以將平時課本上學習的理論知識應用于實際操作。設計的過程是十分艱苦的,由于從未接觸過類似的領域,所以剛開始的時候一片茫然,不知道該干些什么。隨著研究的逐漸深入,自己漸漸的摸出頭緒,掌握了一些規(guī)律和方法,設計的成果也逐步成型,最終按照要求完成了設計。在實際操作的過程中,碰到了許多的困難,但最終在老師的耐心指導和同學的熱情幫助下,按時完成了任務。在此對老師和同學們表示衷心的感謝!
最后感謝老師給與我這次寶貴的實踐機會!
第二篇:燕山大學EDA課程設計數(shù)字跑表
一、設計題目及要求 設計題目:數(shù)字跑表
要求:1 具有暫停,啟動功能;
具有重新開始功能; 用六個數(shù)碼管分別顯示百分秒,秒和分鐘。
二、設計過程及內(nèi)容 總體設計:
第一,對于要實現(xiàn)的暫停、啟動和重新開始功能,需要有一個控制模塊完成相關控制。第二由題意可知需要一個分頻模塊,將實驗箱提供的頻率轉(zhuǎn)換為100HZ即數(shù)字跑表百分秒的頻率。第三是計時模塊,完成跑表的百分秒、秒和分鐘的計時功能。第四由于實驗箱提供的數(shù)碼顯示是掃描顯示,這就需要一個選時模塊。第五部分則是顯示模塊。詳細設計過程:
根據(jù)要求,將設計分成五個模塊:
1、控制模塊:使跑表具有啟動、暫停及重新開始的功能;
2、分頻模塊:將實驗箱所提供的頻率轉(zhuǎn)換為設計題目所需要的100HZ的時鐘脈沖;
3、計時模塊:進行百分秒、秒、分的計時,并且將當前時間輸出給選時模塊;
4、選時模塊:從計時器得到當前時間輸出給顯示模塊;
5、顯示模塊:通過數(shù)碼管顯示時間。
總圖如下:
仿真波形:
第一個模塊:控制模塊
控制模塊主要運用了兩個D觸發(fā)器,輸入到觸發(fā)器的時鐘信號CLK1頻率為2.86Hz,對電路起到了防抖的功能。
START/STOP為啟動暫停按鈕,當跑表為START狀態(tài)時CLK端為高電平,Q為1,時鐘信號輸出,當跑表為STOP狀態(tài)時CLK端為低電平,Q為0,時鐘信號不輸出,從而實現(xiàn)開始和暫停的功能。與門可控制時鐘信號是否被輸出到下一級。
RESET端為全局清零按鈕,接到控制模塊和計時模塊的清零端,負責將計數(shù)器清零。當RESET為低電平時,控制模塊和總計數(shù)器模塊清零,跑表重新開始工作。電路圖如下:
仿真波形:
第二個模塊:分頻模塊
為了將實驗箱提供的1465HZ轉(zhuǎn)換成實驗需要的100HZ,我將74161接成15進制計數(shù)器,實現(xiàn)分頻的功能,轉(zhuǎn)換為100HZ的近似時鐘信號。然后將輸出的時鐘接入到計時模塊。電路圖如下: 3
仿真波形:
第三個模塊:計時模塊
計時模塊由一個100進制計數(shù)器和兩個60進制計數(shù)器構(gòu)成,從而實現(xiàn)百分秒向秒、秒向分的計數(shù)功能需求。100進制計數(shù)器和60進制計數(shù)器均采用兩個74160,100進制采用并行進位方式,60進制采用整體置數(shù)方式。從100進制計數(shù)器和60進制計數(shù)器這三個輸出端分別接出八個端口(百分秒、秒、分的個位及十位分別由四個二進制代碼表示),將當前時間代碼輸送給選時模塊,以實現(xiàn)時間的選擇和顯示。(百分秒個位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D;秒個位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分個位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D.)電路圖如下:
仿真波形:
100進制計數(shù)器(count100): 仿真波形:
60進制計數(shù)器(count60):
仿真波形:
第四個模塊:選時模塊
選時模塊由四個八選一數(shù)據(jù)選擇器74LS151和一個地址選擇器74LS161構(gòu)成。
地址選擇器74LS161接入一個1465 HZ的時鐘信號,使能端和清零端接高電平,使其循環(huán)工作,產(chǎn)生的一組循環(huán)地址碼接入到四個八選一數(shù)據(jù)選擇器74LS151上,使其對地址相同的一組數(shù)據(jù)進行選擇,產(chǎn)生四個二進制數(shù)CA,CB,CC,CD,即為數(shù)碼管所要顯示的數(shù)字的編碼。同時,地址選擇器74LS161產(chǎn)生一組循環(huán)地址碼a、b、c,接到數(shù)碼管的地址端,使其循環(huán)顯示數(shù)字。
第一個74LS151上的輸入端為百分秒、秒、分個位及十位的四位二進制的最低位(H0A, H1A ,S0A,S1A, M0A, M1A), 第二個74LS151上的輸入端為百分秒、秒、分個位及十位的四位二進制的次低位(H0B,H1B ,S0B,S1B,M0B,M1B), 第三個74LS151上的輸入端為百分秒、秒、分個位及十位的四位二進制的第二位(H0C,H1C ,S0C,S1C,M0C,M1C), 第四個74LS151上的輸入端為百分秒、秒、分個位及十位的四位二進制的第一位(H0D,H1D ,S0D,S1D,M0D,M1D),通過這四個八位二進制數(shù)比較器74LS151選出同一組數(shù)(百分秒個位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D;秒個位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分個位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D)作為輸出CA,CB,CC,CD,接到顯示模塊輸入端。電路圖如下:
仿真波形:
第五個模塊:顯示模塊
顯示模塊采用BCD—七段顯示譯碼器7448對實驗板上數(shù)碼管進行驅(qū) 動。由選時模塊輸出的顯示數(shù)字編碼CA,CB,CC,CD接至輸入端A,B,C,D,使輸出端產(chǎn)生七位譯碼連接到實驗箱公共數(shù)據(jù)輸入端ABCDEDG,從而顯示出數(shù)據(jù)。電路圖如下:
仿真波形:
三、設計結(jié)論
兩周的課程設計很快就結(jié)束了,雖然時間很短,但是收獲頗豐。通過這次課程設計,我學到了許多關于EDA的知識,學習到了很多EDA的實用功能,更重要的是鍛煉了我的實踐動手能力,使我深刻地認識到僅僅學習課本上的知識是遠遠不夠的,要多思考,多實踐,才能真正把學到的知識用到實際中,而且我也深刻認識到通信專業(yè)在各個領域是多么有用武之地,更加使我有了學習深造的動力。
在設計的過程中遇到諸多問題,一個接一個,總結(jié)下來還是軟件沒有學深刻,出了問題也不知道如何排查,波形圖一直找不到自己想看到的,后來經(jīng)過問同學和自己的總結(jié)才知道這個仿真的時間要足夠長,才能看到自己所需要的部分。讓我知道做一件事之前的準備工作是多么重要,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。遇到問題才去翻書查資料,這些都是我以后要改進的地方。
這次的EDA課程設計給了我一次非常重要也非常難得的實踐機會,使我可以將平時課本上學習的理論知識應用于實際操作。設計過程多于我這個專業(yè)知識還不牢固的很困難,先前兩天看了課本學習了軟件,每個子模塊和波形圖出來的都比較順利,但當做到總圖的時候遇到了很多困難,經(jīng)過詢問老師后也都解決了。實驗箱的部分比較順利,由于粗心連錯了線,頻率也沒選對,總之過程很艱難,但最終還是做出來了。最后感謝老師給與我這次寶貴的實踐機會!
第三篇:基于EDA技術的數(shù)字電路課程設計
基于EDA技術的數(shù)字電路課程設計
摘要:EDA技術結(jié)合數(shù)字電路課程設計課程是新教育改革的體現(xiàn),創(chuàng)新的教學模式開啟了學生的智慧,增強實踐性與邏輯思維,激發(fā)學生熱情。在闡述了EDA的特征及優(yōu)勢的同時,探究了它與數(shù)字電路課程設計的過程,最后對以新課程改革的觀點分析課程設計的優(yōu)勢。
關鍵詞:EDA技術 數(shù)字電路設計課 新課程改革
引言
隨著社會科學技術不斷發(fā)展,培養(yǎng)四有新人的重任略顯重要。在日常生活中隨處可見EDA技術的應用,電子信息時代,逐漸被HTML描述性語言代替。傳統(tǒng)的理念及設計手段已經(jīng)不能完全滿足現(xiàn)代企業(yè)和社會的需求。在EDA(EleCTRonICs Design Automation)技術基礎上,融入到數(shù)字電路課程是教育時代的要求,也是教學改革的新課程的要求。國家不僅重視創(chuàng)新發(fā)展,更注重培養(yǎng)人才,課程設計,直接影響學生的思想和培育。
1.EDA技術的特征及優(yōu)勢
1.1簡單易于操作
計算機行業(yè)中,軟件硬件的應用是相互結(jié)合的。那么,關于EDA技術應用的性質(zhì)特征為整個設計過程簡單可操作性強。在此方面涉及方面比較廣泛,內(nèi)容相對豐富,通過硬件描述與軟件開發(fā)工具,實現(xiàn)特定的測試電路設計,在修改方面也達到便利的效果。
1.2產(chǎn)品的互換性強
EDA技術在設計上實現(xiàn)了邏輯編程器件,應用上可以自動的檢測、編輯,以及對一些程序的重新建構(gòu),對其進行修改。設計芯片方法靈活性強,有別于傳統(tǒng)的設計思路,在使用效率方面得到顯而易見的效果。因而,產(chǎn)品的互換性較強。
1.3自動性能高
在傳統(tǒng)的設計上,需要技術人員的操作,在人員輔助下操作完成設計。EDA技術設計突破以往的多人操作的難點,實現(xiàn)自動化設計。這不僅在人員調(diào)動方面節(jié)約了成本,而且實現(xiàn)了自動化設計。在性能上達到優(yōu)化,測試全過程及及結(jié)果將會自動完成。
2.基于EDA技術結(jié)合數(shù)字電路課程設計的探究
2.1設計方法與要求
EDA在設計方法上遵循技術改革創(chuàng)新方式,將其傳統(tǒng)的設計概念中,加入新的焊接模式的轉(zhuǎn)變,達到了計算機自動化的性能;在設計要求上,運用于數(shù)字系統(tǒng)中,例如,在設計數(shù)字鬧鐘的過程中,增加了計時、整點報時等功能。在設計流程上,使用芯片也比傳統(tǒng)芯片更實用。
2.2適配器件如何應用
這時代,EDA設計的特點,在底層配件上都盡顯完善,適配對象包括布局線都進行了邏輯性操作。這增加了仿真設計的效果。根據(jù)所需要的設計文件類型,完成自動化設計過程。若設計有誤,可自動下載編程,進行修改??梢娖骷倪m配設計在實際應用中發(fā)揮其明顯作用。
2.3編碼電路與譯碼電路共占195個邏輯單元
數(shù)字電路課程設計應用在EDA中,通過目標系統(tǒng),使用描述性編碼完成設計工作,編譯碼電路在出錯后會自動改錯,編碼電路與譯碼電路共同實現(xiàn)了邏輯性的功能,這個過程,體現(xiàn)了EDA技術在數(shù)字電路中越來越重要。
3.突破傳統(tǒng)教學教程,注重能力的培養(yǎng)
3.1跟上時代腳步,注重教程改革
電路數(shù)字課程設計是電子信息專業(yè)的一門基礎課程。教學課程方面,比以往的教學方案中增加更多互動模式,傳教方式靈活簡單易懂,注重培養(yǎng)學生的實踐能力。目前,EDA技術涉及的領域遍布全國,它的發(fā)展已經(jīng)步入科技前沿。
3.2根據(jù)社會需要,學以致用
數(shù)字電路課程設計,應用于實際生活的每個層面。在學校、醫(yī)院、樓層、社區(qū)、企業(yè)、家庭、交通等領域中,隨處可見,例如在醫(yī)院里,病床疾病呼叫,還有密碼解鎖、樓層內(nèi)的控燈、觸摸延時燈、數(shù)字鐘、還有循環(huán)彩燈以及在交通運輸方面使用的交通燈等,要結(jié)合實際需求,達到教學與實踐相結(jié)合。
3.3技術與課程設計相結(jié)合,利于能力的培養(yǎng)
DEA技術與數(shù)字電路課程設計的結(jié)合,在給學生邏輯思維上的灌輸通通明朗。不論在教學教程上還是培育學生上都得到了實質(zhì)性的提高。傳統(tǒng)的數(shù)字電路課程設計制約了學生的分析能力,固定的教學模式,限制了學習設計思路,及其獨立設計與組裝的能力。因此,注重教學課程改革與培養(yǎng)實踐技能成為發(fā)展趨勢。
4高校開展EDA技術課程,教育教學不斷完善
就目前狀況來看,EDA技術的課程與實踐課開展的十分普遍,對于高職電子專業(yè)人員來說,綜合EDA技術的數(shù)字電路課程設計綜合的實現(xiàn)了學生的應用能力,這是技術理論上的一場革命性的訓練。新課程的培養(yǎng)目標理念深厚,這種教學方式,貫徹了“三個代表”的重要思想。
在課程上新改革,例如以往的法務部與稅務部的分割線比較明顯,而在大時代背景下,需要新型人才,也需要在企業(yè)中事倍功半,在以往的教程上綜合了法務與稅務的知識,在新課程的推動下,出現(xiàn)法務稅務師,這不僅節(jié)約了人才,而且自身能力提高,實現(xiàn)個人獨特的價值?;贓DA技術的數(shù)字電路課程設計理念也是如此,為節(jié)約人才與新型技術人員的培養(yǎng)提供可行性的策略。
總結(jié)
數(shù)字電路課程設計思路有兩個,一個是仿真電路設計,一個是應用設計印刷電路板。課程設計的教程實踐將會實現(xiàn)個人的獨立設計與創(chuàng)新能力。能夠培養(yǎng)具有邏輯性的思考和解決問題的高素質(zhì)人才,提高學生積極性與學校熱情,是實現(xiàn)基于EDA技術的數(shù)字電路課程設計的關鍵所在。
參考文獻
[1] 李彩.科技視界.淺談時序邏輯電路.2013(3)[2] 王璐,于冠龍,馬永強.淺析航空電子元器件的質(zhì)量控制.黑龍江科技信息.2015(32)
第四篇:EDA課程設計 數(shù)字時鐘
EDA
課程設計報告
一·設計任務
使用硬件描述語言,在CPLD/FPGA上實現(xiàn)一個多功能數(shù)字鐘。
二·設計要求
除按鍵、LED、揚聲器、時鐘信號外,整個數(shù)字鐘的功能要求在一塊芯片上實現(xiàn)。
a)具有時,分,秒,計數(shù)顯示功能,以24小時循環(huán)計時; b)具有時間清零功能;
c)具有小時、分鐘和秒鐘調(diào)整功能(個位和十位分開調(diào)或合起來調(diào))。
d)具有鬧鐘功能,能預設鬧鐘時間,精確到秒。
整個數(shù)字鐘只設一個時鐘輸入端口,所需不同頻率信
號在內(nèi)部分頻實現(xiàn)。(LED掃描頻率設為50Hz以上)。
三·設計方案
設計采用模塊方式,分別為分頻模塊:產(chǎn)生1Hz的脈沖作為秒的輸入,和產(chǎn)生1kHz的脈沖作為數(shù)碼管顯示的動態(tài)掃描。計時模塊:秒模塊,分模塊,時模塊。鬧鐘模塊,顯示模塊,控制模塊。
四·模塊端口設置
1.分頻模塊
輸入:clkin :
本實驗輸入為50MHz晶振
輸出:clk : 為顯示模塊及始終調(diào)節(jié)提供1KHz脈沖
clkt: 為計數(shù)器模塊提供1Hz脈沖
2.計時模塊
m 是模式按鍵,當m=0 時,進入計時模式,在計時模式下可以進行時間調(diào)整。num3,num4 產(chǎn)生加速調(diào)整時間,當其值為1 時,可以快速調(diào)整時間,該調(diào)整時間的頻率由clk 提
供。counta,count1 是手動調(diào)節(jié)時間。Turn 接按鍵,可以改變當前調(diào)節(jié)的是小時還是分鐘,長按turn 鍵還可以使秒鐘信號清零。sec1,min1,hour1 輸出的是計時的秒,分,時。
3.鬧鐘模塊
原理:num1,num2 產(chǎn)生加速調(diào)整時間,當其值為1 時,可以快速調(diào)整時間,該調(diào)整時間的
頻率由clk 提供。countb,count2 是手動調(diào)節(jié)鬧鐘時間。amin,ahour 是輸出的鬧鐘的分鐘和 小時 4.控制模塊
m 是模式按鍵,當m=0 時,指當前輸出的是計時功能;當m=1 時,指當前調(diào)整的是
鬧鐘時間;當m=2 時,指當前調(diào)整的是計時時間;當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,指示當前調(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)生進位 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)生進位或校正改變 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)生進位或校正改變 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;//指示是否進行了鬧鈴定時 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//////指示當前調(diào)整的是分鐘
Else
begin counta<=change;{LD_min,LD_hour}<=1;end/////指示當前調(diào)整的是小時 {count2,countb}<=0;end 1: begin //////1:調(diào)節(jié)鬧鐘功能 if(fm)begin count2<=change;{LD_min,LD_hour}<=2;end/////指示當前調(diào)整的是分 else begin countb<=change;{LD_min,LD_hour}<=1;end/////指示當前調(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技術實用教程》
2、實驗箱使用說明;
第五篇:EDA課程設計——數(shù)字時鐘
Hefei University
EDA課程綜述
論文題目: EDA課程綜述
專 業(yè): 09通信(2)班
姓 名: 唐吉祥
學 號: 0905072035 指導老師: 查長軍
前
言
隨著基于PLD的EDA技術的發(fā)展和應用領域的擴大和深入,EDA技術在電子信息、通信、自動控制及計算機應用領域的重要性日益提高。
作為現(xiàn)在的大學生應熟練掌握這門技術,為以后的發(fā)展打下良好的基礎,本實驗設計是應用QuartusII環(huán)境及VHDL語言設計一個時間可調(diào)的數(shù)字時鐘。使自己熟練使用QuartusII環(huán)境來進行設計,掌握VHDL語言的設計方法。要注重理論與實踐之間的不同,培養(yǎng)自己的實踐能力!
目錄
一、課程設計任務及要求............................................................................................3
1.1實驗目的..........................................................................................................3 1.2功能設計..........................................................................................................3
二、整體設計思想........................................................................................................3
2.1性能指標及功能設計......................................................................................3 2.2總體方框圖......................................................................................................4
三、詳細設計................................................................................................................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設計思路..........................................................................................................5 3.3設計步驟..........................................................................................................6
3.3.1工程建立及存盤...................................................................................6 3.3.2工程項目的編譯...................................................................................7 3.3.3目標芯片的選擇...................................................................................7 3.3.4時序仿真...............................................................................................8 3.3.5引腳鎖定.............................................................................................10 3.3.6硬件測試.............................................................................................11 3.3.7實驗結(jié)果.............................................................................................11
四、設計總結(jié)..............................................................................................................12
五、附錄......................................................................................................................12
5.1 VHDL源程序..................................................................................................12 5.2配置符號圖....................................................................................................17
一、課程設計任務及要求
1.1實驗目的
1)掌握VHDL語言的基本運用
2)掌握QuartusII的簡單操作并會使用EDA實驗箱 3)掌握一個基本EDA課程設計的操作
1.2功能設計
1)有時、分、秒計數(shù)顯示功能,小時為24進制,分鐘和秒為60進制以24小時循環(huán)計時
2)設置復位、清零等功能
3)有校時功能,可以分別對時及分進行單獨校時,使其校正到標準時間 4)時鐘計數(shù)顯示時有LED燈顯示
二、整體設計思想
2.1性能指標及功能設計
1)時、分、秒計時器
時計時器為一個24進制計數(shù)器,分、秒計時器均為60進制計數(shù)器。當秒計時器接受到一個秒脈沖時,秒計數(shù)器開始從1計數(shù)到60,此時秒顯示器將顯示00、01、02、...、59、00;每當秒計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至分計時器,此時分計數(shù)器數(shù)值在原有基礎上加1,其顯示器將顯示00、01、02、...、59、00;每當分計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至時計時器,此時時計數(shù)器數(shù)值在原有基礎上加1,其顯示器將顯示00、01、02、...、23、00。即當數(shù)字鐘運行到23點59分59秒時,當秒計時器在接受一個秒脈沖,數(shù)字鐘將自動顯示00點00分00秒。2)校時電路
當開關撥至校時檔時,電子鐘秒計時工作,通過時、分校時開關分別對時、分進行校對,開關每按1次,與開關對應的時或分計數(shù)器加1,當調(diào)至需要的時與分時,撥動reset開關,電子鐘從設置的時間開始往后計時。2.2總體方框圖
三、詳細設計
3.1數(shù)字鐘的基本工作原理:
3.1.1時基T 產(chǎn)生電路
數(shù)字鐘以其顯示時間的直觀性、走時準確性作為一種計時工具,數(shù)字鐘的基本組成部分離不開計數(shù)器,在控制邏輯電路的控制下完成預定的各項功能。
由晶振產(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ù)時,當秒計數(shù)器(60進制)計數(shù)到59 時,再來一個脈沖,則秒計數(shù)器清零,重新開始新一輪的計數(shù),而進位則作為分計數(shù)器的計數(shù)脈沖,使分計數(shù)器計數(shù)加1。現(xiàn)在我們把電路稍做變動:把秒計數(shù)器的進位脈沖和一個頻率為2Hz的脈沖信號同時接到一個2選1數(shù)據(jù)選擇器的兩個數(shù)據(jù)輸入端,而位選信號則接一個脈沖按鍵開關,當按鍵開關不按下去時(即為0),則數(shù)據(jù)選擇器將秒計數(shù)器的進位脈沖送到分計數(shù)器,此時,數(shù)字鐘正常工作;當按鍵開關按下去時(即為1),則數(shù)據(jù)選擇器將另外一個2Hz 的信號作為分計數(shù) 器的計數(shù)脈沖,使其計數(shù)頻率加快,當達到正確時間時,松開按鍵開關,從而達到調(diào)時的目的。調(diào)節(jié)小時的時間也一樣的實現(xiàn)。
3.1.3計數(shù)顯示電路
由計數(shù)部分、數(shù)據(jù)選擇器、譯碼器組成,是時鐘的關鍵部分。
1、計數(shù)部分:由兩個60進制計數(shù)器和一個24 進制計數(shù)器組成,其中60 進制計數(shù)器可用6 進制計數(shù)器和10 進制計數(shù)器構(gòu)成;24 進制的小時計數(shù)同樣可用6 進制計數(shù)器和10 進制計數(shù)器得到:當計數(shù)器計數(shù)到24 時,“2”和“4”同時進行清零,則可實現(xiàn)24 進制計數(shù)。
2、數(shù)據(jù)選擇器:84 輸入14 輸出的多路數(shù)據(jù)選擇器,因為本實驗用到了8個數(shù)碼管(有兩個用來產(chǎn)生隔離符號‘—’)。
3、譯碼器:七段譯碼器。譯碼器必須能譯出‘—’,由實驗二中譯碼器真值表可得:字母F 的8421BCD 碼為“1111”,譯碼后為“1000111”,現(xiàn)在如果只譯出‘—’,即字母F的中間一橫,則譯碼后應為“0000001”,這樣,在數(shù)碼管上顯示的就為‘—’。
3.2設計思路
根據(jù)系統(tǒng)設計要求,系統(tǒng)設計采用自頂向下設計方法,由時鐘分頻部分、計時部分、按鍵部分調(diào)時部分和顯示部分五個部分組成。這些模塊都放在一個頂層文件中。
1)時鐘計數(shù):
首先下載程序進行復位清零操作,電子鐘從00:00:00計時開始。sethour可以調(diào)整時鐘的小時部分, setmin可以調(diào)整分鐘,步進為1。
由于電子鐘的最小計時單位是1s,因此提供給系統(tǒng)的內(nèi)部的時鐘頻率應該大于1Hz,這里取100Hz。CLK端連接外部10Hz的時鐘輸入信號clk。對clk進行計數(shù),當clk=10時,秒加1,當秒加到60時,分加1;當分加到60時,時加1;當時加到24時,全部清0,從新計時。
用6位數(shù)碼管分別顯示“時”、“分”、“秒”,通過OUTPUT(6 DOWNTO 0)上的信號來點亮指定的LED七段顯示數(shù)碼管。
2)時間設置:
手動調(diào)節(jié)分鐘、小時,可以對所設計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實驗板上的鍵7和鍵4進行任意的調(diào)整,因為我們用的時鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。3)清零功能: reset為復位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復位。
3.3設計步驟
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)建立工程項目的導航窗口,點擊“Next”,最后在出現(xiàn)的屏幕中分別鍵入新項目的工作路徑、項目名和實體名。注意,原理圖輸入設計方法中,存盤的原理圖文件名可以是任意的,但VHDL程序文本存盤的文件名必須與文件的實體名一致,輸入后,單擊“Finish”按鈕。3.3.2工程項目的編譯
單擊工具條上的編譯符號開始編譯,并隨著進度不斷變化屏幕,編譯完成后的屏幕如圖所示:
3.3.3目標芯片的選擇
選擇菜單 Assignments 選項的下拉菜單中選擇器件 Device ?,如圖所示: 在彈出的對話框中的 Family(器件序列欄)對應的序列名,EP1C3 對應的是 Cyclone 系列。在 Available Devices里選擇 EP1C3T144-C8(有時需要把 Show advanced devices的勾消去,以便顯示出所有速度級別的器件)。注意:所選器件必須與目標板的器件型號完全一致。
在圖中,單擊“Device and Pin Options?”,在彈出的“Device and Pin Options?”窗口中,單擊“Unused Pins”標簽。選擇“As output driving an unspecified signal ”(由于學習機的“FPGA”具有很多功能,為了避免使用引腳對其它器件造成影響,保證本系統(tǒng)可靠工作,將未使用引腳設定為輸出不定狀態(tài))后,單擊確定后,無誤后單擊“OK”。
3.3.4時序仿真
建立波形文件:選擇 File→New,在New窗中選中“Other File”標簽。在出現(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”。
設定仿真時間寬度。選擇 Edit → End time?選項,在End time選擇窗中選擇適當?shù)姆抡鏁r間域,以便有足夠長的觀察時間。
波形文件存盤。選擇File→Save as 選項,直接存盤即可。運行仿真器。在菜單中選擇項,直到出現(xiàn),仿真結(jié)束。
未曾編輯的仿真波形
仿真波形 3.3.5引腳鎖定
將設計編程下載進選定的目標器件中,如EPF10K10,作進一步的硬件測試,將設計的所有輸入輸出引腳分別與目標器件的EPF10K10的部分引腳相接,操作如下:
1.選擇 Assignments → Assignments Editor ,即進入 Assignments Editor編輯器。在Category 欄選擇 Pin,或直接單擊右上側(cè)的 Pin 按鈕。
2.雙擊 TO 欄的《new》,在出現(xiàn)的的下拉欄中選擇對應的端口信號名(如 D[0]);然后雙擊對應的欄的《new》,在出現(xiàn)的下拉欄中選擇對應的端口信號名的期間引腳號。
3.最后存儲這些引腳鎖定信息后,必須再編譯(啟動)一次,才能將引腳鎖定信息編譯進編程下載文件中。此后就可以準備將編譯好的 SOF 文件下載到試驗系統(tǒng)的FPGA中去了。
引腳鎖定 3.3.6硬件測試
1.首先將下載線把計算機的打印機口與目標板(如開發(fā)板或?qū)嶒灠澹┻B接好,打開電源,選擇模式7。
2.打開編輯窗和配置文件。選擇,彈出一個編輯窗。在Mode欄中選擇JTAG,并在選項下的小方框打勾。注意核對下載文件路徑與文件名。如果文件沒有出現(xiàn)或者出錯,單擊左Add file側(cè)按鈕,手動選擇配置文件 clock.sof。
3.最后單擊下載標符Start,即進入對目標器件 FPGA 的配置下載操作。當 Progress 顯示100%,以及在底部的處理欄中出現(xiàn) Configuration Succeeded 時,表示編程成功,如圖所示。注意,如果必要時,可再次單擊 Start,直至編程成功。
4.下載完成后,通過硬件測試進一步確定設計是否達到所有的技術指標,如未達到,可逐步檢查,哪部分出現(xiàn)問題。如果是代碼出現(xiàn)問題,須修改代碼;若是時序波形圖有問題,須重新設置。
3.3.7實驗結(jié)果
實驗箱使用模式7,鍵8為復位按鍵,鍵8為1時正常工作。鍵4設置小時,鍵7設置分鐘。
下載成功后,按下鍵8,及使六個LED復位清零,顯示數(shù)秒的自動計時,可以通過4鍵設置小時數(shù),7鍵設置分鐘數(shù)。當秒數(shù)滿60則進一位,分鐘數(shù)滿60進一位,當顯示為23:59:59時,秒數(shù)在加一則顯示00:00:00,之后從新計時。
四、設計總結(jié)
通過這次課程設計,我進一步加深了對電子設計自動化的了解。并進一步熟練了對QuartusII軟件的操作。在編寫程序的過程中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學習上存在的不足。通過與同學探討和請教老師,終于把問題都解決了,并加深了對數(shù)字時鐘原理和設計思路的了解。
同時也掌握了做課程設計的一般流程,為以后的設計積累了一定的經(jīng)驗。做課程設計時,先查閱相關知識,把原理吃透,確定一個大的設計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。最后參照每個模塊把輸入和輸出引腳設定,運用我們所學的VHDL語言進行編程??傊ㄟ^這次的設計,進一步了解了EDA技術,收獲很大,對軟件編程、排錯調(diào)試、相關儀器設備的使用技能等方面得到較全面的鍛煉和提高。
在此,也感謝康老師的悉心指導,使自己學到了很多東西!
五、附錄
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為三進制加法計數(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進制
count<=count+7;
--若到23D則
else
count<=”000000“;
--復0
END IF;
ELSIF(count<16#23#)THEN
--若未到23D,則count進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分時的進位信號 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';--則置進位為1
count<=”0000000“;--count復0
ELSE
count<=count+7;--若count未到59D,則加7,即作”加6校正“
END IF;--使前面的16#60#的個位轉(zhuǎn)變?yōu)?421BCD的容量
ELSE
count<=”0000000“;--count復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ā)生進位
ELSE
count<=”0000000“;--否則,若count不小于16#60# count復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秒時的進位信號
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為向分進位信號
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“;--則置進位為1及count復0
ELSE
--未到59D
count<=count+7;--則加7,而+7=+1+6,即作”加6校正“
END IF;
ELSE
--若count不小于16#60#(即count等于或大于16#60#)
count<=”0000000“;
--count復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ā)生進位
ELSE
--否則,若count不小于16#60#
count<=”0000000“;
--則count復0
END IF;
--END IF(count(3 DOWNTO 0)=”1001")
END IF;
--END IF(reset='0')END PROCESS;END fun;5.2配置符號圖