EDA電子鐘設(shè)計(jì)_第1頁
EDA電子鐘設(shè)計(jì)_第2頁
EDA電子鐘設(shè)計(jì)_第3頁
EDA電子鐘設(shè)計(jì)_第4頁
EDA電子鐘設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、EDA電子鐘設(shè)計(jì)一、設(shè)計(jì)目的1.掌握VHDL語言的基本運(yùn)用。2.掌握復(fù)雜系統(tǒng)的EDA設(shè)計(jì)方法。3.學(xué)習(xí)多層次、多模塊系統(tǒng)設(shè)計(jì)。4.了解數(shù)字鐘的工作原理,利用VHDL語言實(shí)現(xiàn)數(shù)字鐘。5.掌握Quartus的簡單操作并會(huì)使用EDA實(shí)驗(yàn)箱。6.掌握各芯片的邏輯功能及使用方法。二、系統(tǒng)總體設(shè)計(jì)我們設(shè)計(jì)的是多功能數(shù)字鐘,共有5個(gè)系統(tǒng)模塊組成,分別是:液晶顯示屏、調(diào)時(shí)控制開關(guān)(用的是撥碼開關(guān))、LED顯示狀態(tài)燈及蜂鳴器報(bào)時(shí)系統(tǒng)和時(shí)鐘頻率系統(tǒng)。我們設(shè)計(jì)的是以24小時(shí)制顯示,數(shù)碼管掃描顯示時(shí)、分、秒;能夠正常計(jì)時(shí)和調(diào)時(shí)、調(diào)分等校時(shí)功能;經(jīng)過我們設(shè)計(jì)的數(shù)字鐘具有蜂鳴器整點(diǎn)報(bào)時(shí)的功能,還具備設(shè)置鬧鐘功能。EP1C

2、12Q240C8按鍵開關(guān)時(shí)鐘信號(hào)LED顯示圖2.1 多功能數(shù)字鐘模擬系統(tǒng)基本組成框圖三、詳細(xì)設(shè)計(jì)3.1數(shù)字鐘的基本工作原理3.1.1時(shí)基T 產(chǎn)生電路數(shù)字鐘以其顯示時(shí)間的直觀性、走時(shí)準(zhǔn)確性作為一種計(jì)時(shí)工具,數(shù)字鐘的基本組成部分離不開計(jì)數(shù)器,在控制邏輯電路的控制下完成預(yù)定的各項(xiàng)功能。由晶振產(chǎn)生的頻率非常穩(wěn)定的脈沖,經(jīng)整形、穩(wěn)定電路后,產(chǎn)生一個(gè)頻率為1Hz的、非常穩(wěn)定的計(jì)數(shù)時(shí)鐘脈沖。3.1.2調(diào)時(shí)、調(diào)分信號(hào)的產(chǎn)生由計(jì)數(shù)器的計(jì)數(shù)過程可知,正常計(jì)數(shù)時(shí),當(dāng)秒計(jì)數(shù)器(60進(jìn)制)計(jì)數(shù)到59 時(shí),再來一個(gè)脈沖,則秒計(jì)數(shù)器清零,重新開始新一輪的計(jì)數(shù),而進(jìn)位則作為分計(jì)數(shù)器的計(jì)數(shù)脈沖,使分計(jì)數(shù)器計(jì)數(shù)加1。現(xiàn)在我們把電

3、路稍做變動(dòng):把秒計(jì)數(shù)器的進(jìn)位脈沖和一個(gè)頻率為2Hz的脈沖信號(hào)同時(shí)接到一個(gè)2選1數(shù)據(jù)選擇器的兩個(gè)數(shù)據(jù)輸入端,而位選信號(hào)則接一個(gè)脈沖按鍵開關(guān),當(dāng)按鍵開關(guān)不按下去時(shí)(即為0),則數(shù)據(jù)選擇器將秒計(jì)數(shù)器的進(jìn)位脈沖送到分計(jì)數(shù)器,此時(shí),數(shù)字鐘正常工作;當(dāng)按鍵開關(guān)按下去時(shí)(即為1),則數(shù)據(jù)選擇器將另外一個(gè)2Hz 的信號(hào)作為分計(jì)數(shù)器的計(jì)數(shù)脈沖,使其計(jì)數(shù)頻率加快,當(dāng)達(dá)到正確時(shí)間時(shí),松開按鍵開關(guān),從而達(dá)到調(diào)時(shí)的目的。調(diào)節(jié)小時(shí)的時(shí)間也一樣的實(shí)現(xiàn)。3.1.3計(jì)數(shù)顯示電路計(jì)數(shù)部分:由兩個(gè)60進(jìn)制計(jì)數(shù)器和一個(gè)24 進(jìn)制計(jì)數(shù)器組成,其中60 進(jìn)制計(jì)數(shù)器可用6 進(jìn)制計(jì)數(shù)器和10 進(jìn)制計(jì)數(shù)器構(gòu)成;24 進(jìn)制的小時(shí)計(jì)數(shù)同樣可用6

4、進(jìn)制計(jì)數(shù)器和10 進(jìn)制計(jì)數(shù)器得到:當(dāng)計(jì)數(shù)器計(jì)數(shù)到24 時(shí),“2”和“4”同時(shí)進(jìn)行清零,則可實(shí)現(xiàn)24 進(jìn)制計(jì)數(shù)。3.2設(shè)計(jì)思路根據(jù)系統(tǒng)設(shè)計(jì)要求,系統(tǒng)設(shè)計(jì)采用自底向上的設(shè)計(jì)方法,由時(shí)鐘分頻部分、計(jì)時(shí)部分、按鍵部分調(diào)時(shí)部分和顯示部分五個(gè)部分組成。這些模塊都放在一個(gè)頂層文件中。3.2.1時(shí)鐘計(jì)數(shù)首先下載程序進(jìn)行復(fù)位清零操作,電子鐘從00:00:00計(jì)時(shí)開始。sethour可以調(diào)整時(shí)鐘的小時(shí)部分, setmin可以調(diào)整分鐘,步進(jìn)為1。由于電子鐘的最小計(jì)時(shí)單位是1s,因此提供給系統(tǒng)的內(nèi)部的時(shí)鐘頻率應(yīng)該大于1Hz,這里取100Hz。CLK端連接外部10Hz的時(shí)鐘輸入信號(hào)clk。對(duì)clk進(jìn)行計(jì)數(shù),當(dāng)clk=1

5、0時(shí),秒加1,當(dāng)秒加到60時(shí),分加1;當(dāng)分加到60時(shí),時(shí)加1;當(dāng)時(shí)加到24時(shí),全部清0,從新計(jì)時(shí)。用6位數(shù)碼管分別顯示“時(shí)”、“分”、“秒”,通過OUTPUT( 6 DOWNTO 0 )上的信號(hào)來點(diǎn)亮指定的LED七段顯示數(shù)碼管。3.2.2時(shí)間設(shè)置手動(dòng)調(diào)節(jié)分鐘、小時(shí),可以對(duì)所設(shè)計(jì)的時(shí)鐘任意調(diào)時(shí)間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實(shí)驗(yàn)板上的鍵7和鍵4進(jìn)行任意的調(diào)整,因?yàn)槲覀冇玫臅r(shí)鐘信號(hào)均是1HZ的,所以每LED燈變化一次就來一個(gè)脈沖,即計(jì)數(shù)一次。根據(jù)系統(tǒng)設(shè)計(jì)要求,系統(tǒng)設(shè)計(jì)采用自頂向下設(shè)計(jì)方法,由時(shí)鐘分頻部分、計(jì)時(shí)部分、按鍵部分調(diào)時(shí)部分和顯示部分五個(gè)部分組成。這些模塊都放在一個(gè)頂層文件中。

6、1)通過對(duì)md1按鍵高低電平的控制可以進(jìn)入時(shí)鐘的另一個(gè)調(diào)時(shí)模式,調(diào)試模式和計(jì)時(shí)模式是分開互不影響的。然后再通過對(duì)md21和md22對(duì)時(shí)鐘進(jìn)行時(shí)間設(shè)定。等到計(jì)時(shí)到達(dá)設(shè)置時(shí)間時(shí),實(shí)現(xiàn)打鈴功能。2)用6位數(shù)碼管分別顯示“時(shí)”、“分”、“秒”,通過DOUT( 6 DOWNTO 0 )上的信號(hào)來點(diǎn)亮指定的LED七段顯示數(shù)碼管。3)由于電子鐘的最小計(jì)時(shí)單位是1s,因此提供給系統(tǒng)的內(nèi)部的時(shí)鐘頻率應(yīng)該大于1Hz,這里取100Hz。CLK端連接外部10Hz的時(shí)鐘輸入信號(hào)clk。對(duì)clk進(jìn)行計(jì)數(shù),當(dāng)clk=10時(shí),秒加1,當(dāng)秒加到60時(shí),分加1;當(dāng)分加到60時(shí),時(shí)加1;當(dāng)時(shí)加到24時(shí),全部清0,從新計(jì)時(shí)。4)首先

7、下載程序進(jìn)行復(fù)位清零操作,電子鐘從00:00:00計(jì)時(shí)開始。md21可以調(diào)整時(shí)鐘的小時(shí)部分, md22可以調(diào)整分鐘,步進(jìn)為1。頂層設(shè)計(jì)分析:對(duì)于電子鐘的設(shè)計(jì),這里將采用自底向上的設(shè)計(jì)方法進(jìn)行設(shè)計(jì),因此首先需要進(jìn)行電子鐘的底層設(shè)計(jì)。本節(jié)將首先介紹電子鐘的系統(tǒng)結(jié)構(gòu)和模塊劃分,然后設(shè)計(jì)出頂層VHDL設(shè)計(jì)程序。源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity szz is-端口定義port(clk:in std_logic; clk1:in std_logic; md1:in std_

8、logic; md2:in std_logic_vector(1 downto 0); ledout1:out std_logic; ledout2:out std_logic; speak:out std_logic; dout:out std_logic_vector(6 downto 0); selout:out std_logic_vector(2 downto 0); end szz;architecture one of szz issignal sel:std_logic_vector(2 downto 0);signal hou1:std_logic_vector(3 down

9、to 0);signal hou2:std_logic_vector(3 downto 0);signal min1:std_logic_vector(3 downto 0);signal min2:std_logic_vector(3 downto 0);signal seth1:std_logic_vector(3 downto 0);signal seth2:std_logic_vector(3 downto 0);signal setm1:std_logic_vector(3 downto 0);signal setm2:std_logic_vector(3 downto 0);sig

10、nal sec1:std_logic_vector(3 downto 0);signal sec2:std_logic_vector(3 downto 0);signal h1:std_logic_vector(3 downto 0);signal h2:std_logic_vector(3 downto 0);signal m1:std_logic_vector(3 downto 0);signal m2:std_logic_vector(3 downto 0);signal s1:std_logic_vector(3 downto 0);signal s2:std_logic_vector

11、(3 downto 0);begin-模6計(jì)數(shù)choice:process(clk1)beginif clk1event and clk1=1 thenif sel=101 thensel=000;elsesel=sel+1;end if;end if;end process choice;-小時(shí)十位h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2)beginif clkevent and clk=1 thenif (hou1=0010 and hou2=0011)and(min1=0101 and min2=1001) and (sec1=0

12、101 and sec2=1001) thenhou1=0000;elsif hou1=0010and hou2=0011and md1=0 and md2=01 then-當(dāng)時(shí)間為23點(diǎn)且處于校時(shí)狀態(tài)時(shí)hou1=0000;elsif (hou2=1001and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001)or (hou2=1001and md1=0 and md2=01) thenhou1=hou1+1;end if;end if;end process h110;-小時(shí)個(gè)位h220:process(clk,min1,min2,

13、sec1,sec2,md1,md2,hou1)beginif clkevent and clk=1 thenif (hou1=0010 and hou2=0011)and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) thenhou2=0000;elsif hou2=1001and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) thenhou2=0000;elsif (hou2=1001and md1=0 and md2=01)or (hou1=0010and hou

14、2=0011) thenhou2=0000;-md=1;elsif (min1=0101 and min2=1001) and (sec1=0101 and sec2=1001)or (md1=0 and md2=01) thenhou2=hou2+1;-speak=clk;end if;end if;end process h220;-分鐘十位m110:process(clk,min2,sec1,sec2,md1,md2)beginif clkevent and clk=1 thenif (min1=0101 and min2=1001) and (sec1=0101 and sec2=10

15、01) then min1=0000;elsif min1=0101and min2=1001and (md1=0 and md2=00)thenmin1=0000;elsif (min2=1001and (sec1=0101 and sec2=1001) or (min2=1001and md1=0 and md2=00)thenmin1=min1+1;end if;end if;-end if;end process m110;-分鐘個(gè)位m220:process(clk,sec1,sec2,md1,md2)beginif clkevent and clk=1 thenif min2=100

16、1and (sec1=0101 and sec2=1001)thenmin2=0000;elsif min2=1001and (md1=0 and md2=00)thenmin2=0000;else if (sec1=0101 and sec2=1001) or(md1=0 and md2=00)thenmin2=min2+1;end if;end if;end if;end process m220;-秒十位s110:process(clk)beginif clkevent and clk=1 thenif (sec1=0101 and sec2=1001)thensec1=0000;els

17、e if sec2=1001thensec1=sec1+1;end if;end if;end if;end process s110;-秒個(gè)位s220:process(clk)beginif clkevent and clk=1 thenif sec2=1001 thensec2=0000;else sec2=sec2+1;end if;end if;end process s220;-時(shí)間設(shè)置小時(shí)部分sethour1:process(clk,seth2)beginif clkevent and clk=1 thenif seth1=0010and seth2=0011 thenseth1=

18、0000;elsif seth2=1001 thenseth1=seth1+1;end if;end if;end process sethour1;-sethour2:process(clk,md1,md2,seth1)beginif clkevent and clk=1 thenif (seth1=0010and seth2=0011)or seth2=1001thenseth2=0000;elsif md1=1 and md2=00 thenseth2=seth2+1;end if;end if;end process sethour2;-時(shí)間設(shè)置分鐘部分setmin1:process(

19、clk,setm2)beginif clkevent and clk=1 thenif setm1=0101and setm2=1001thensetm1=0000;elsif setm2=1001thensetm1=setm1+1;end if;end if;end process setmin1;-setmin2:process(clk,md1,md2)beginif clkevent and clk=1thenif setm2=1001thensetm2=0000;elsif md1=1 and md2=01thensetm2=setm2+1;end if;end if;end proc

20、ess setmin2;-鬧鈴speaker:process(clk1,hou1,hou2,min1,min2)beginif clk1event and clk1=1then-鬧鐘判斷,一分鐘響鈴if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 thenspeak=clk; ledout1=clk;else speak=0;ledout1=0;-整點(diǎn)報(bào)時(shí),3秒鐘響鈴if 0000=min1 and 0000=min2 and sec1=0000 thenif sec2=0000 or sec2=0001 or sec2=00

21、10 thenspeak=1;ledout2=clk;else speak=0;ledout2=0;end if;end if;end if;end if;end process speaker;-譯碼顯示部分disp:process(sel,md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2)beginif sel=101 thenseloutdoutdoutdoutdout=1000000;end case;elsif sel=100 thenseloutdoutdoutdoutdoutdoutdoutdoutdoutdout

22、doutdout=1000000;end case;elsif sel=011 thenseloutdoutdoutdoutdoutdoutdoutdout=1000000;end case;elsif sel=010 thenseloutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=1000000;end case;elsif sel=001 thenseloutdoutdoutdoutdoutdoutdoutdout=1000000;end case;elsif sel=000 thenseloutdoutdoutdoutdoutdoutdout

23、doutdoutdoutdoutdout=1000000;end case;end if;if md1=0 then-計(jì)時(shí)時(shí)間顯示和設(shè)置模式h1=hou1;h2=hou2;m1=min1;m2=min2;s1=sec1;s2=sec2;else -鬧鈴時(shí)間現(xiàn)實(shí)和設(shè)置模式h1=seth1;h2=seth2;m1=setm1;m2=setm2;s1=1111;s2=1111;end if;end process disp;end one;四、仿真分析各端口的功能為:clk,clk1端:時(shí)鐘信號(hào)輸入端。dout0.6:數(shù)碼管選擇端。Selout2.0:七段碼譯碼器掃描接口輸入端。md1,md1.0:

24、三個(gè)輸入端。ledout1,ledout2:顯示燈。speak:蜂鳴器。圖4.1 波形仿真圖實(shí)驗(yàn)連線:clk接時(shí)鐘信號(hào)CLK0,clk1接時(shí)鐘信號(hào)CLK5;輸出端dout6.0分別與數(shù)碼管的a、b、c、d、e、f、g端相連;七段碼譯碼器的三個(gè)輸入端與三個(gè)撥碼開關(guān)相連;selout2.0接數(shù)碼管掃描接口輸入端SEL2、SEL1、SEL0;speak與蜂鳴器相連。圖4.2 引腳接線圖五、設(shè)計(jì)中遇到的問題及解決方法一開始只有秒脈沖,分與時(shí)都不動(dòng)。這是因?yàn)闆]把脈沖信號(hào)接到分與時(shí)的電路上。數(shù)碼管顯示不出,這是因?yàn)闀r(shí)鐘信號(hào)頻率給的有問題,調(diào)節(jié)時(shí)鐘頻率的大小就解決了這個(gè)問題。還有數(shù)碼管上顯示的數(shù)字不全,后來發(fā)現(xiàn)是線沒有接好,將線重新接了一次就可以顯示出來完整的數(shù)字。六、心得體會(huì)在本學(xué)期的EDA學(xué)習(xí)中,我初步對(duì)這一門新的課程有了一個(gè)較為系統(tǒng)的理解,也為我的專業(yè)學(xué)習(xí)打開了一個(gè)新的思路。首先,通過對(duì)這門課程相關(guān)理論的學(xué)習(xí),我掌握了EDA的一些基本的的知識(shí)。EDA是指以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)的最新成果而開發(fā)出的電子CAD通用軟件包,它根據(jù)硬件描述語言VHDL完成的設(shè)計(jì)文件,自動(dòng)完成邏輯編譯、化簡、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論