




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、Hefei UniversityEDA課程設計報告設計題目: 數(shù)字時鐘設計 專 業(yè): 自動化(2)班 姓 名: 李宏灶 學 號: 指導老師: 康南生前 言隨著基于PLD的EDA技術的發(fā)展和應用領域的擴大和深入,EDA技術在電子信息、通信、自動控制及計算機應用領域的重要性日益提高。作為現(xiàn)在的大學生應熟練掌握這門技術,為以后的發(fā)展打下良好的基礎,本實驗設計是應用QuartusII環(huán)境及VHDL語言設計一個時間可調(diào)的數(shù)字時鐘。使自己熟練使用QuartusII環(huán)境來進行設計,掌握VHDL語言的設計方法。要注重理論與實踐之間的不同,培養(yǎng)自己的實踐能力!目 錄一、課程設計任務及要求31.1實驗目的31.2
2、功能設計4二、整體設計思想42.1性能指標及功能設計42.2總體方框圖5三、詳細設計53.1數(shù)字鐘的基本工作原理:53.1.1時基T 產(chǎn)生電路53.1.2調(diào)時、調(diào)分信號的產(chǎn)生53.1.3計數(shù)顯示電路63.2設計思路63.3設計步驟73.3.1工程建立及存盤73.3.2工程項目的編譯73.3.3目標芯片的選擇83.3.4時序仿真93.3.5引腳鎖定113.3.6硬件測試123.3.7實驗結(jié)果13四、設計總結(jié)13五、附錄145.1 VHDL源程序145.2配置符號圖18一、課程設計任務及要求1.1實驗目的1)掌握VHDL語言的基本運用2)掌握QuartusII的簡單操作并會使用EDA實驗箱3)掌握
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、
4、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ù)字鐘以其顯示時間的直觀性、走時準確性作為一
5、種計時工具,數(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ù)器
6、的進位脈沖送到分計數(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 輸
7、入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)整時鐘的小時部分, s
8、etmin可以調(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)整,因為我們用的時鐘信號均
9、是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。3)清零功能:reset為復位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復位。3.3設計步驟3.3.1工程建立及存盤1打開 Quartus,單擊“File”菜單,選擇 FileNew Project Wizard,對話框如下:分別輸入項目的工作路徑、項目名和實體名,單擊Finish。2.單擊“File”菜單,選擇New,彈出小對話框,雙擊“VHDL File",即選中了文本編輯方式。在出現(xiàn)的“Vhdl1.vhd”文本編輯窗中鍵入VHDL程序,輸入完畢后,選擇FileSave As,即出現(xiàn)“Save
10、 As”對話框。選擇自己建立好的存放本文件的目錄,然后在文件名框中鍵入文件名,按“Save”按鈕。3. 建立工程項目,在保存VHDL文件時會彈出是否建立項目的小窗口,點擊“Yes”確定。即出現(xiàn)建立工程項目的導航窗口,點擊“Next”,最后在出現(xiàn)的屏幕中分別鍵入新項目的工作路徑、項目名和實體名。注意,原理圖輸入設計方法中,存盤的原理圖文件名可以是任意的,但VHDL程序文本存盤的文件名必須與文件的實體名一致,輸入后,單擊“Finish”按鈕。3.3.2工程項目的編譯單擊工具條上的編譯符號開始編譯,并隨著進度不斷變化屏幕,編譯完成后的屏幕如圖所示:3.3.3目標芯片的選擇選擇菜單 Assignmen
11、ts 選項的下拉菜單中選擇器件 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 unspec
12、ified signal ”(由于學習機的“FPGA”具有很多功能,為了避免使用引腳對其它器件造成影響,保證本系統(tǒng)可靠工作,將未使用引腳設定為輸出不定狀態(tài))后,單擊確定后,無誤后單擊“OK”。3.3.4時序仿真建立波形文件:選擇 FileNew,在New窗中選中“Other File”標簽。在出現(xiàn)的屏幕中選擇“Vector Waveform File”項出現(xiàn)一新的屏幕。在出現(xiàn)的新屏幕中,雙擊“Name”下方的空白處,彈出“Insert Nod or Bus”對話框,單擊該對話框的“Node Finder”。在屏幕中的 Filter 中選擇 Pins,單擊“List”。而后,單擊“>>
13、;”,所有輸入/輸出都被拷貝到右邊的一側(cè),這些正是我們希望的各個引腳,也可以只選其中的的一部分,根據(jù)實際情況決定。然后單擊屏幕右上腳的 “OK”。在出現(xiàn)的小屏幕上單擊“OK”。 設定仿真時間寬度。選擇 Edit End time選項,在End time選擇窗中選擇適當?shù)姆抡鏁r間域,以便有足夠長的觀察時間。波形文件存盤。選擇FileSave as 選項,直接存盤即可。運行仿真器。在菜單中選擇項,直到出現(xiàn),仿真結(jié)束。未曾編輯的仿真波形仿真波形3.3.5引腳鎖定將設計編程下載進選定的目標器件中,如EPF10K10,作進一步的硬件測試,將設計的所有輸入輸出引腳分別與目標器件的EPF10K10的部分引腳
14、相接,操作如下:1選擇 Assignments Assignments Editor ,即進入 Assignments Editor編輯器。在Category 欄選擇 Pin,或直接單擊右上側(cè)的 Pin 按鈕。2雙擊 TO 欄的new,在出現(xiàn)的的下拉欄中選擇對應的端口信號名(如 D0);然后雙擊對應的欄的new,在出現(xiàn)的下拉欄中選擇對應的端口信號名的期間引腳號。3最后存儲這些引腳鎖定信息后,必須再編譯(啟動 )一次,才能將引腳鎖定信息編譯進編程下載文件中。此后就可以準備將編譯好的 SOF 文件下載到試驗系統(tǒng)的FPGA中去了。引腳鎖定3.3.6硬件測試1.首先將下載線把計算機的打印機口與目標板(
15、如開發(fā)板或?qū)嶒灠澹┻B接好,打開電源,選擇模式7。2.打開編輯窗和配置文件。選擇,彈出一個編輯窗。在Mode欄中選擇JTAG,并在選項下的小方框打勾。注意核對下載文件路徑與文件名。如果文件沒有出現(xiàn)或者出錯,單擊左Add file側(cè)按鈕,手動選擇配置文件 clocksof。 3.最后單擊下載標符Start,即進入對目標器件 FPGA 的配置下載操作。當 Progress 顯示100%,以及在底部的處理欄中出現(xiàn) Configuration Succeeded 時,表示編程成功,如圖所示。注意,如果必要時,可再次單擊 Start ,直至編程成功。4下載完成后,通過硬件測試進一步確定設計是否達到所有的技
16、術指標,如未達到,可逐步檢查,哪部分出現(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)自己以
17、前學習上存在的不足。通過與同學探討和請教老師,終于把問題都解決了,并加深了對數(shù)字時鐘原理和設計思路的了解。同時也掌握了做課程設計的一般流程,為以后的設計積累了一定的經(jīng)驗。做課程設計時,先查閱相關知識,把原理吃透,確定一個大的設計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。最后參照每個模塊把輸入和輸出引腳設定,運用我們所學的VHDL語言進行編程??傊ㄟ^這次的設計,進一步了解了EDA技術,收獲很大,對軟件編程、排錯調(diào)試、相關儀器設備的使用技能等方面得到較全面的鍛煉和提高。在此,也感謝康老師的悉心指導,使自己學到了很多東西!五、附錄5.1 VHDL源程序Alert模塊LIBRA
18、RY 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:
19、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(
20、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<="
21、;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;ARCHITECTUR
22、E fun OF hour ISSIGNAL 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&q
23、uot;即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')
24、 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_VECTO
25、R (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<
26、;="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&q
27、uot; -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
28、39; 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 ISPORT( c
29、lk,reset,setmin:STD_LOGIC; enmin:OUT STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY second;ARCHITECTURE fun OF second ISSIGNAL 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); -set
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臺面加工銷售合同范本
- 儀器代加工合同范本
- 合同范例漲價
- 勞務公司入股合同范本
- 2020硅橡膠行業(yè)分析研究報告
- 合同制勞動合同范本
- 單位用品批發(fā)合同范例
- 農(nóng)業(yè)代管合同范本
- 分階段付款合同范本 英文
- 北京食品配送合同范本
- 某水廠水資源論證報告書
- 酒店幕墻工程單元板塊幕墻軌道吊裝方案
- 裝飾材料與構(gòu)造(共153張PPT)
- 職業(yè)健康安全交底
- GB∕T 28610-2020 甲基乙烯基硅橡膠
- GB∕T 7588.1-2020 電梯制造與安裝安全規(guī)范 第1部分:乘客電梯和載貨電梯
- 4.昆蟲備忘錄 課件(共15張PPT)
- DB37∕T 5191-2021 高延性混凝土加固技術規(guī)程
- 鎮(zhèn)政府(街道辦事處)辦公大樓平面圖
- 軟壓光機計算說明
- 森林防火安全責任書(施工隊用)
評論
0/150
提交評論