




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Hefei UniversityEDA課程綜述論文題目: EDA課程綜述 專 業(yè): 09通信(2)班 姓 名: 唐吉祥 學(xué) 號: 0905072035指導(dǎo)老師: 查長軍前 言隨著基于PLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大和深入,EDA技術(shù)在電子信息、通信、自動控制及計算機應(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)境來進行設(shè)計,掌握VHDL語言的設(shè)計方法。要注重理論與實踐之間的不同,培養(yǎng)自己的實踐能力!目 錄一、課程設(shè)計任務(wù)及要求31
2、.1實驗?zāi)康?1.2功能設(shè)計4二、整體設(shè)計思想42.1性能指標及功能設(shè)計42.2總體方框圖5三、詳細設(shè)計53.1數(shù)字鐘的基本工作原理:5時基T 產(chǎn)生電路5調(diào)時、調(diào)分信號的產(chǎn)生5計數(shù)顯示電路63.2設(shè)計思路63.3設(shè)計步驟7工程建立及存盤7工程項目的編譯7目標芯片的選擇8時序仿真9引腳鎖定11硬件測試12實驗結(jié)果13四、設(shè)計總結(jié)13五、附錄145.1 VHDL源程序145.2配置符號圖18一、課程設(shè)計任務(wù)及要求1.1實驗?zāi)康?)掌握VHDL語言的基本運用2)掌握QuartusII的簡單操作并會使用EDA實驗箱3)掌握一個基本EDA課程設(shè)計的操作1.2功能設(shè)計1)有時、分、秒計數(shù)顯示功能,小時為2
3、4進制,分鐘和秒為60進制以24小時循環(huán)計時2)設(shè)置復(fù)位、清零等功能3)有校時功能,可以分別對時及分進行單獨校時,使其校正到標準時間4)時鐘計數(shù)顯示時有LED燈顯示二、整體設(shè)計思想2.1性能指標及功能設(shè)計 1)時、分、秒計時器 時計時器為一個24進制計數(shù)器,分、秒計時器均為60進制計數(shù)器。當秒計時器接受到一個秒脈沖時,秒計數(shù)器開始從1計數(shù)到60,此時秒顯示器將顯示00、01、02、.、59、00;每當秒計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至分計時器,此時分計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、.、59、00;每當分計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至?xí)r計時器,此
4、時時計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、.、23、00。即當數(shù)字鐘運行到23點59分59秒時,當秒計時器在接受一個秒脈沖,數(shù)字鐘將自動顯示00點00分00秒。2)校時電路 當開關(guān)撥至校時檔時,電子鐘秒計時工作,通過時、分校時開關(guān)分別對時、分進行校對,開關(guān)每按1次,與開關(guān)對應(yīng)的時或分計數(shù)器加1,當調(diào)至需要的時與分時,撥動reset開關(guān),電子鐘從設(shè)置的時間開始往后計時。2.2總體方框圖三、詳細設(shè)計3.1數(shù)字鐘的基本工作原理:3.1.1時基T 產(chǎn)生電路數(shù)字鐘以其顯示時間的直觀性、走時準確性作為一種計時工具,數(shù)字鐘的基本組成部分離不開計數(shù)器,在控制邏輯電路的控制下完成預(yù)定的各項
5、功能。由晶振產(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?,F(xiàn)在我們把電路稍做變動:把秒計數(shù)器的進位脈沖和一個頻率為2Hz的脈沖信號同時接到一個2選1數(shù)據(jù)選擇器的兩個數(shù)據(jù)輸入端,而位選信號則接一個脈沖按鍵開關(guān),當按鍵開關(guān)不按下去時(即為0),則數(shù)據(jù)選擇器將秒計數(shù)器的進位脈沖送到分計數(shù)器,此時,數(shù)字鐘正常工作;當按鍵開關(guān)按下去時(即為1),則數(shù)據(jù)
6、選擇器將另外一個2Hz 的信號作為分計數(shù)器的計數(shù)脈沖,使其計數(shù)頻率加快,當達到正確時間時,松開按鍵開關(guān),從而達到調(diào)時的目的。調(diào)節(jié)小時的時間也一樣的實現(xiàn)。3.1.3計數(shù)顯示電路由計數(shù)部分、數(shù)據(jù)選擇器、譯碼器組成,是時鐘的關(guān)鍵部分。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)生隔離符號)
7、。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ù):首先下載程序進行復(fù)位清零操作,電子鐘從00:00:00計時開始。sethour可以調(diào)整時鐘的小時部分, setmin可以調(diào)整分鐘,步進為1。由于電子鐘的最小計時單位是1s,因此提供給系統(tǒng)的
8、內(nèi)部的時鐘頻率應(yīng)該大于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) 時間設(shè)置:手動調(diào)節(jié)分鐘、小時,可以對所設(shè)計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實驗板上的鍵7和鍵4進行任意的調(diào)整,因為我們用的時鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。3)清零功能:rese
9、t為復(fù)位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復(fù)位。3.3設(shè)計步驟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 As”對話框。選擇自己建立好的存放本文件的目錄,然后在文件名框中鍵入文件名,按“Save”按
10、鈕。3. 建立工程項目,在保存VHDL文件時會彈出是否建立項目的小窗口,點擊“Yes”確定。即出現(xiàn)建立工程項目的導(dǎo)航窗口,點擊“Next”,最后在出現(xiàn)的屏幕中分別鍵入新項目的工作路徑、項目名和實體名。注意,原理圖輸入設(shè)計方法中,存盤的原理圖文件名可以是任意的,但VHDL程序文本存盤的文件名必須與文件的實體名一致,輸入后,單擊“Finish”按鈕。3.3.2工程項目的編譯單擊工具條上的編譯符號開始編譯,并隨著進度不斷變化屏幕,編譯完成后的屏幕如圖所示:3.3.3目標芯片的選擇選擇菜單 Assignments 選項的下拉菜單中選擇器件 Device ,如圖所示:在彈出的對話框中的 Family(器
11、件序列欄)對應(yīng)的序列名,EP1C3 對應(yīng)的是 Cyclone 系列。在 Available Devices里選擇 EP1C3T144-C8 (有時需要把 Show advanced devices的勾消去,以便顯示出所有速度級別的器件)。注意:所選器件必須與目標板的器件型號完全一致。在圖中,單擊“Device and Pin Options”,在彈出的“Device and Pin Options”窗口中,單擊“Unused Pins”標簽。選擇“As output driving an unspecified signal ”(由于學(xué)習(xí)機的“FPGA”具有很多功能,為了避免使用引腳對其它器件
12、造成影響,保證本系統(tǒng)可靠工作,將未使用引腳設(shè)定為輸出不定狀態(tài))后,單擊確定后,無誤后單擊“OK”。時序仿真建立波形文件:選擇 FileNew,在New窗中選中“Other File”標簽。在出現(xiàn)的屏幕中選擇“Vector Waveform File”項出現(xiàn)一新的屏幕。在出現(xiàn)的新屏幕中,雙擊“Name”下方的空白處,彈出“Insert Nod or Bus”對話框,單擊該對話框的“Node Finder”。在屏幕中的 Filter 中選擇 Pins,單擊“List”。而后,單擊“”,所有輸入/輸出都被拷貝到右邊的一側(cè),這些正是我們希望的各個引腳,也可以只選其中的的一部分,根據(jù)實際情況決定。然后單
13、擊屏幕右上腳的 “OK”。在出現(xiàn)的小屏幕上單擊“OK”。 設(shè)定仿真時間寬度。選擇 Edit End time選項,在End time選擇窗中選擇適當?shù)姆抡鏁r間域,以便有足夠長的觀察時間。波形文件存盤。選擇FileSave as 選項,直接存盤即可。運行仿真器。在菜單中選擇項,直到出現(xiàn),仿真結(jié)束。未曾編輯的仿真波形仿真波形3.3.5引腳鎖定將設(shè)計編程下載進選定的目標器件中,如EPF10K10,作進一步的硬件測試,將設(shè)計的所有輸入輸出引腳分別與目標器件的EPF10K10的部分引腳相接,操作如下:1選擇 Assignments Assignments Editor ,即進入 Assignments
14、Editor編輯器。在Category 欄選擇 Pin,或直接單擊右上側(cè)的 Pin 按鈕。2雙擊 TO 欄的new,在出現(xiàn)的的下拉欄中選擇對應(yīng)的端口信號名(如 D0);然后雙擊對應(yīng)的欄的new,在出現(xiàn)的下拉欄中選擇對應(yīng)的端口信號名的期間引腳號。3最后存儲這些引腳鎖定信息后,必須再編譯(啟動 )一次,才能將引腳鎖定信息編譯進編程下載文件中。此后就可以準備將編譯好的 SOF 文件下載到試驗系統(tǒng)的FPGA中去了。引腳鎖定3.3.6硬件測試1.首先將下載線把計算機的打印機口與目標板(如開發(fā)板或?qū)嶒灠澹┻B接好,打開電源,選擇模式7。2.打開編輯窗和配置文件。選擇,彈出一個編輯窗。在Mode欄中選擇JTA
15、G,并在選項下的小方框打勾。注意核對下載文件路徑與文件名。如果文件沒有出現(xiàn)或者出錯,單擊左Add file側(cè)按鈕,手動選擇配置文件 clocksof。 3.最后單擊下載標符Start,即進入對目標器件 FPGA 的配置下載操作。當 Progress 顯示100%,以及在底部的處理欄中出現(xiàn) Configuration Succeeded 時,表示編程成功,如圖所示。注意,如果必要時,可再次單擊 Start ,直至編程成功。4下載完成后,通過硬件測試進一步確定設(shè)計是否達到所有的技術(shù)指標,如未達到,可逐步檢查,哪部分出現(xiàn)問題。如果是代碼出現(xiàn)問題,須修改代碼;若是時序波形圖有問題,須重新設(shè)置。3.3.
16、7實驗結(jié)果實驗箱使用模式7,鍵8為復(fù)位按鍵,鍵8為1時正常工作。鍵4設(shè)置小時,鍵7設(shè)置分鐘。下載成功后,按下鍵8,及使六個LED復(fù)位清零,顯示數(shù)秒的自動計時,可以通過4鍵設(shè)置小時數(shù),7鍵設(shè)置分鐘數(shù)。當秒數(shù)滿60則進一位,分鐘數(shù)滿60進一位,當顯示為23:59:59時,秒數(shù)在加一則顯示00:00:00,之后從新計時。四、設(shè)計總結(jié)通過這次課程設(shè)計,我進一步加深了對電子設(shè)計自動化的了解。并進一步熟練了對QuartusII軟件的操作。在編寫程序的過程中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學(xué)習(xí)上存在的不足。通過與同學(xué)探討和請教老師,終于把問題都解決了,并加深了對數(shù)字時鐘原理和設(shè)計思路的了解。同時也掌握了做
17、課程設(shè)計的一般流程,為以后的設(shè)計積累了一定的經(jīng)驗。做課程設(shè)計時,先查閱相關(guān)知識,把原理吃透,確定一個大的設(shè)計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。最后參照每個模塊把輸入和輸出引腳設(shè)定,運用我們所學(xué)的VHDL語言進行編程。總之,通過這次的設(shè)計,進一步了解了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_UNSIG
18、NED.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) BEG
19、IN -speak=count1(1); IF(clkevent and clk=1)THEN IF(dain=0000000)THEN speak=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)點亮三只燈 E
20、LSIF(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
21、);END ENTITY hour;ARCHITECTURE 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(clkevent and clk=1)THEN -否則,若clk上升沿到 IF(count(3 DOWNTO 0)=1001)THEN -若個位計時恰好到1001即9 IF(count16#23#)THEN -23進制 count=
22、count+7; -若到23D則 else count=000000; -復(fù)0 END IF; ELSIF (count16#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;ENTIT
23、Y 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)時脈沖信號串 da
24、out=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(clkevent and clk=1)THEN -否則,若clk上升沿到 IF(count (3 DOWNTO 0) =1001)THEN-若個位計時恰好到1001即9 IF(count 16#60#) THEN -又若count小
25、于16#60#,即60 IF(count=1011001) THEN-又若已到59D enhour_1=1; -則置進位為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(count16#60#) ELSIF (count 16#60#) THEN count=count+1; -若count16#60#則cou
26、nt加1 enhour_1=0 after 100 ns; -沒有發(fā)生進位 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 ISPORT( clk,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 DO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院專家出診協(xié)議書
- 合伙外出旅游協(xié)議書
- 合同單位變更協(xié)議書
- 勞務(wù)合同增補協(xié)議書
- 商用廚房承包協(xié)議書
- 醫(yī)院法人免責(zé)協(xié)議書
- 加盟農(nóng)業(yè)艾草協(xié)議書
- 印刷廢品回收協(xié)議書
- 醫(yī)用氧氣租賃協(xié)議書
- 地產(chǎn)配套學(xué)習(xí)協(xié)議書
- 2024年度新能源汽車產(chǎn)業(yè)聯(lián)盟合作協(xié)議3篇
- 2024年考研英語一閱讀理解80篇試題及答案
- 施工現(xiàn)場揚塵污染治理巡查記錄
- 地域文化(專)-終結(jié)性考試-國開(SC)-參考資料
- 戶用光伏逆變器Modbus通訊協(xié)議地址定義
- 2024年會計專業(yè)考試高級會計實務(wù)試題與參考答案
- 2022年一級注冊建筑師建筑設(shè)計知識考試真題及答案
- 電子政務(wù)概論-形考任務(wù)5(在線測試權(quán)重20%)-國開-參考資料
- 古代小說戲曲專題-形考任務(wù)2-國開-參考資料
- 2020-2024年高考英語試題分類匯編:閱讀理解01(人與自然)(解析版)
- 蛋白質(zhì)是生命活動的主要承擔者課件
評論
0/150
提交評論