版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 說 明 書</p><p> 課程名稱 EDA課程設計 </p><p> 題 目 多功能數(shù)字鐘 </p><p><b> 課程設計任務書</b></p><p> 設計題目 多功能數(shù)字鐘
2、設計 </p><p><b> 課程設計目的</b></p><p> 1、綜合運用EDA技術,獨立完成一個課題的設計,考察運用所學知識,解決實際問題的能力;</p><p> 2、結合理論知識,考察閱讀參考資料、文獻、手冊的能力;</p><p> 3、進
3、一步熟悉EDA技術的開發(fā)流程,掌握文件編輯、編譯、仿真、下載驗證等環(huán)節(jié)的實現(xiàn)方法和應用技巧;</p><p> 4、鍛煉撰寫研究報告、研究論文的能力;</p><p> 5、通過本實踐環(huán)節(jié),培養(yǎng)科學和嚴謹?shù)墓ぷ髯黠L。</p><p> 設計內(nèi)容、技術條件和要求</p><p> l、能進行正常的時、分、秒計時功能,分別由6個數(shù)碼顯示2
4、4小時、60分鐘的計數(shù)器顯示。</p><p> 2、能利用實驗系統(tǒng)上的按鈕實現(xiàn)“校時”、“校分”功能;</p><p> (1)按下“SA”鍵時,計時器迅速遞增,并按24小時循環(huán);</p><p> ?。?)按下“SB”鍵時,計時器迅速遞增,并按59分鐘循環(huán),并向“時”進位;</p><p> ?。?)按下“SC”鍵時,秒清零;抖動的,
5、必須對其消抖處理。</p><p> 3、能利用揚聲器做整點報時:</p><p> (1)當計時到達59’50”時開始報時,頻率可為500Hz;</p><p> 計滿23小時后回零;計滿59分鐘后回零。</p><p> ?。?)到達59’59”時為最后一聲整點報時,整點報時的頻率可定為lKHz。</p><p&
6、gt;<b> 4定時鬧鐘功能</b></p><p> 5、用層次化設計方法設計該電路,用硬件描述語言編寫各個功能模塊。</p><p> 6、報時功能。報時功能用功能仿真的仿真驗證,可通過觀察有關波形確認電路設計是否正確。</p><p><b> 時間進度安排</b></p><p>
7、 1周:(1) 完成設計準備,確定實施方案;(2) 完成電路文件的輸入和編譯;(4) 完成功能仿真。</p><p> 2周:(1) 完成文件至器件的下載,并進行硬件驗證;(2) 撰寫設計說明書。</p><p><b> 主要參考文獻</b></p><p> (1)譚會生、瞿遂春,《EDA技術綜合應用實例與分析》,西安電子科技大學出
8、版社,2004</p><p> (2)曹昕燕、周鳳臣等,《EDA技術實驗與課程設計》,清華大學出版社,2006</p><p> 指導教師簽字: 2010年9月5日</p><p><b> 引言:</b></p><p> 人類社會已進入到高度發(fā)達的信息化社會。
9、信息化社會的發(fā)展離不開電子信息產(chǎn)品開發(fā)技術、產(chǎn)品品質(zhì)的提高和進步。實現(xiàn)這種進步的主要原因就是電子設計技術和電子制造技術的發(fā)展,其核心就是電子設計自動化(EDA)技術,EDA技術的發(fā)展和推廣應用又極大地推動了電子信息產(chǎn)業(yè)的發(fā)展。為保證電子系統(tǒng)設計的速度和質(zhì)量,適應“第一時間推出產(chǎn)品”的設計要求,EDA技術正逐漸成為不可缺少的一項先進技術和重要工具。目前,在國內(nèi)電子技術教學和產(chǎn)業(yè)界的技術推廣中已形成“EDA熱”,完全可以說,掌握EDA技術是
10、電子信息類專業(yè)學生、工程技術人員所必備的基本能力和技能。</p><p><b> 實驗原理:</b></p><p> 用層次化設計的方法以VHDL語言編程實現(xiàn)以下功能:</p><p> 具有“時”、“分”、“秒”計時功能;時為24進制,分和秒都為60進制。</p><p> 具有消抖功能:手工按下鍵盤到是否
11、這個過程大概50ms左右,在按下開始到彈簧片穩(wěn),定接觸這段時間為5-10ms,從釋放到彈片完全分開也是5-10ms,在達到穩(wěn)定接觸和完全分開的微觀過程中,電平是時高時低的,因此如果在首次檢測到鍵盤按下時延時10ms再檢測就不會檢測到抖動的毛刺電平了。64Hz的信號周期為15.6ms,正適合做消抖信號。</p><p> 具有校時和清零功能,能夠用4Hz脈沖對“小時”和“分”進行調(diào)整,并可進行秒清零;</p
12、><p> 具有整點報時功能。在59分51秒、53秒、55秒、57秒發(fā)出低音512Hz信號,在59分59秒發(fā)出一次高音1024Hz信號,音響持續(xù)1秒鐘,在1024Hz音響結束時刻為整點。</p><p> 具有一鍵設定鬧鈴及正常計時與鬧鈴時間的顯示轉(zhuǎn)換。鬧時時間為一分鐘。</p><p><b> 程序流程:</b></p>&
13、lt;p> 秒計數(shù)器模塊設計:模塊圖如圖1。六十進制帶進位計數(shù)器,可清零,clk輸入信號為1Hz脈沖,當q0計滿9后q1增加1,當q0滿9且q1記滿5,q1、q0同時歸零,co輸出為高電平。q1為十位q0為個位。</p><p><b> 圖1</b></p><p><b> 程序如下:</b></p><p&g
14、t; library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity second IS</p
15、><p> port(clk,clr:in std_logic;</p><p> co:out std_logic;</p><p> cq0:out std_logic_vector(3 downto 0);</p><p> cq1:out std_logic_vector(3 downto 0));</p><
16、p> END second;</p><p> ARCHITECTURE behave of second is</p><p> SIGNAL d: std_logic_vector(3 downto 0);</p><p> SIGNAL g: std_logic_vector(3 downto 0);</p><p>&l
17、t;b> BEGIN </b></p><p> process(clk,clr,d,g)</p><p><b> BEGIN</b></p><p> if (clr ='1') then</p><p> d <="0000";</p>
18、;<p> g <="0000";</p><p> elsif(clk'EVENT and clk='1')then</p><p> if(d=9 and g=5)then</p><p><b> co<='1';</b></p>
19、<p><b> else </b></p><p><b> co<='0';</b></p><p><b> end if;</b></p><p> if(d=9)then</p><p> d<="0000&q
20、uot;;</p><p> if(g=5)then</p><p> g<="0000";</p><p><b> else</b></p><p><b> g<=g+1;</b></p><p><b> end i
21、f;</b></p><p><b> else</b></p><p><b> d<=d+1;</b></p><p><b> end if;</b></p><p><b> end if;</b></p>
22、<p> end process;</p><p> cq0<=d;cq1<=g;</p><p> end behave;</p><p> 仿真結果如下圖2 :</p><p><b> 圖2</b></p><p> 分計數(shù)器同上。注:不同之處為分的clk輸
23、入信號為秒的進位信號。</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><
24、;p> entity minute IS</p><p> port(clk,clr:in std_logic;</p><p> co:out std_logic;</p><p> cq0:out std_logic_vector(3 downto 0);</p><p> cq1:out std_logic_vector
25、(3 downto 0));</p><p> END minute;</p><p> ARCHITECTURE behave of minute is</p><p> SIGNAL d: std_logic_vector(3 downto 0);</p><p> SIGNAL g: std_logic_vector(3 dow
26、nto 0);</p><p><b> BEGIN </b></p><p> process(clk,clr,d,g)</p><p><b> BEGIN</b></p><p> if (clr ='1') then</p><p> d &
27、lt;="0000";</p><p> g <="0000";</p><p> elsif(clk'EVENT and clk='1')then</p><p> if(d=9 and g=5)then</p><p><b> co<='
28、;1';</b></p><p><b> else </b></p><p><b> co<='0';</b></p><p><b> end if;</b></p><p> if(d=9)then</p>
29、<p> d<="0000";</p><p> if(g=5)then</p><p> g<="0000";</p><p><b> else</b></p><p><b> g<=g+1;</b></p&
30、gt;<p><b> end if;</b></p><p><b> else</b></p><p><b> d<=d+1;</b></p><p><b> end if;</b></p><p><b>
31、 end if;</b></p><p> end process;</p><p> cq0<=d;cq1<=g;</p><p> end behave;</p><p> 時計數(shù)器:模塊圖如圖3。24進制無進位計數(shù)器,當計數(shù)信號計到23后再檢測到計數(shù)信號時會自動歸零。帶清零,clk輸入為分秒進位相與的結果
32、。q1為十位,q0為個位。</p><p><b> 圖3</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p>
33、 USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> entity hour IS</p><p> port(clk3,rst3,m:in std_logic;</p><p> cq4:out std_logic_vector(3 downto 0);</p><p> cq5:out std_logi
34、c_vector(3 downto 0));</p><p><b> END hour;</b></p><p> ARCHITECTURE behave of hour is</p><p> SIGNAL d: std_logic_vector(3 downto 0);</p><p> SIGNAL g:
35、 std_logic_vector(3 downto 0);</p><p><b> BEGIN </b></p><p> process(clk3,rst3,m,d,g)</p><p><b> BEGIN</b></p><p> if (rst3 ='1') th
36、en</p><p> d <="0000";</p><p> g <="0000";</p><p> elsif(clk3'EVENT and clk3='1')then</p><p> if(m='0') then</p>
37、<p> if(d=9 or (d=1 and g=1))then</p><p> d<="0000";</p><p> if(g=1)then</p><p> g<="0000";</p><p><b> else</b></p&
38、gt;<p><b> g<=g+1;</b></p><p><b> end if;</b></p><p><b> else</b></p><p><b> d<=d+1;</b></p><p><b&g
39、t; end if;</b></p><p><b> else</b></p><p> if(d=9 or (d=3 and g=2))then</p><p> d<="0000";</p><p> if(g=2)then</p><p>
40、 g<="0000";</p><p><b> else</b></p><p><b> g<=g+1;</b></p><p><b> end if;</b></p><p><b> else</b><
41、;/p><p><b> d<=d+1;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> e
42、nd process;</p><p> cq4<=d;cq5<=g;</p><p> end behave; </p><p> 當m=0時,實現(xiàn)模12計數(shù),當m=1時實現(xiàn)模24計數(shù),cout2作為clk3時鐘信號,rst3是復位信號, cq4,cq5輸出信號最后接在動態(tài)譯管碼芯片上。</p><p> 得出實驗要
43、求的小時計時器:</p><p><b> 仿真波形如下圖4:</b></p><p><b> 圖4</b></p><p> 分頻器:模塊圖如圖5。由四個分頻器構成,輸入信號in_clk為1024Hz脈沖信號。把輸入的1024Hz信號分頻為四個脈沖信號,即1Hz的秒脈沖,4Hz的校時、校分脈沖,64Hz的消抖脈沖
44、,以及512Hz的蜂鳴器低音輸入。</p><p><b> 圖5</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p
45、> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> entity div is</p><p> port(in_clk:in std_logic;</p><p> clk_1,clk_4,clk_64,clk_512:out std_logic);</p><p><b> end
46、div;</b></p><p> architecture one of div is</p><p> signal q512,a,b,c:std_logic;</p><p> signal c1,c4,c64:integer range 512 downto 0;</p><p><b> begin&l
47、t;/b></p><p> process(in_clk)</p><p><b> begin</b></p><p> if in_clk'event and in_clk='1' then</p><p> q512<=not q512; </p>
48、<p> if c64>=7 then c64<=0;c<=not c;else c64<=c64+1;end if;</p><p> if c4>=127 then c4<=0;b<=not b;else c4<=c4+1;end if;</p><p> if c1>=511 then c1<=0;a<
49、=not a;else c1<=c1+1;end if;</p><p><b> end if;</b></p><p> end process;</p><p> clk_512<=q512;</p><p><b> clk_1<=a;</b></p>
50、<p><b> clk_4<=b;</b></p><p> clk_64<=c;</p><p><b> end one;</b></p><p><b> 仿真波形如下圖6:</b></p><p><b> 圖6</b
51、></p><p> 消抖:模塊圖如圖7。分頻出的用64Hz信號對sa校時信號、sb校分信號、sc秒清零信號、sd鬧時設置信號進行防抖動處理。是由四個兩級d觸發(fā)器構成的,分別對輸入的sa、sb、sc、sd信號的相鄰兩個上升沿進行比較以確定按鍵的按下,從而達到消抖的目的。</p><p><b> 圖7</b></p><p> li
52、brary ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> entity xd is</p><
53、p> port(clk_64,sa,sb,sc,sd:in std_logic;</p><p> hj,mj,sclr,sdo:out std_logic);</p><p><b> end xd;</b></p><p> architecture one of xd is</p><p><b
54、> begin</b></p><p> process(clk_64)</p><p> variable sa_n,sa_p,sb_n,sd_n,sb_p,sc_n,sc_p,sd_p:std_logic;</p><p><b> begin</b></p><p> if clk_6
55、4'event and clk_64='1' then</p><p> sa_p:=sa_n;sa_n:=sa;</p><p> sb_p:=sb_n;sb_n:=sb;</p><p> sc_p:=sc_n;sc_n:=sc;</p><p> sd_p:=sd_n;sd_n:=sd;</p>
56、;<p> if sa_p= sa_n then hj<=sa;end if;</p><p> if sb_p= sb_n then mj<=sb;end if;</p><p> if sc_p= sc_n then sclr<=sc;end if;</p><p> if sd_p= sd_n then sdo<=
57、sd;end if;</p><p><b> end if;</b></p><p> end process;</p><p><b> end one;</b></p><p><b> 仿真波形如下圖8:</b></p><p><
58、b> 圖8</b></p><p> 鬧鐘時間的設定:模塊圖如圖9。一鍵設定鬧鈴時間,內(nèi)部由四個d觸發(fā)器構成。當確定sd鍵按下時,將當前時間的小時和分的個位十位分別存入四個d觸發(fā)器內(nèi),作為鬧時時間。</p><p><b> 圖9</b></p><p> library ieee;</p><p&
59、gt; use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> entity nz is</p><p> port (sd,hh,hl,mh,ml:i
60、n std_logic;</p><p> hh_o,hl_o,mh_o,ml_o:out std_logic);</p><p><b> end nz;</b></p><p> architecture one of nz is </p><p><b> begin</b></
61、p><p> process (sd,hh,hl,mh,ml)</p><p><b> begin</b></p><p> if sd='1' then</p><p> hh_o<=hh;hl_o<=hl;mh_o<=mh;ml_o<=ml;end if;</p&g
62、t;<p> end process;</p><p><b> end one;</b></p><p> 仿真波形如下圖10:</p><p><b> 圖10</b></p><p><b> 二選一電路</b></p><p&
63、gt; 一位二選一:模塊圖如圖11。用以進行正常計時和校時/分的選擇。alarm為經(jīng)過消抖的校時/分信號。當按鍵未曾按下時,即校時/分信號沒有到來時,二選一選擇器會選擇輸出a(正常計時輸入)信號,否則當alarm按鍵按下時輸出y為校時/分輸入信號——4Hz。</p><p><b> 圖11</b></p><p> library ieee;</p>
64、;<p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> entity x21 is </p><p> port (alarm
65、,a,b:in std_logic;</p><p> y:out std_logic);</p><p><b> end x21;</b></p><p> architecture one of x21 is</p><p><b> begin</b></p><
66、p> process(alarm,a,b) </p><p><b> begin</b></p><p> if alarm='0' then y<=a;else y<=b;</p><p><b> end if;</b></p><p> end p
67、rocess;</p><p><b> end one;</b></p><p> 仿真波形如下圖12:</p><p><b> 圖12</b></p><p> 三位二選一:模塊圖如圖13。用以進行正常計時時間與鬧鈴時間顯示的選擇,alarm輸入為按鍵。當alarm按鍵未曾按下時二選一
68、選擇器會選擇輸出顯示正常的計時結果,否則當alarm按鍵按下時選擇器將選擇輸出顯示鬧鈴時間顯示。</p><p><b> 圖13</b></p><p> architecture one of x213 is</p><p><b> begin</b></p><p> process
69、(alarm,a,b) </p><p><b> begin</b></p><p> if alarm='0' then y<=a;else y<=b;</p><p><b> end if;</b></p><p> end process;</p&
70、gt;<p><b> end one;</b></p><p> 仿真結果如下圖14:</p><p><b> 圖14</b></p><p> 整點報時及鬧時:模塊圖如圖15。在59分51秒、53秒、55秒、57秒給揚聲器賦以低音512Hz信號,在59分59秒給揚聲器賦以高音1024Hz信號,音
71、響持續(xù)1秒鐘,在1024Hz音響結束時刻為整點。當系統(tǒng)時間與鬧鈴時間相同時給揚聲器賦以高音1024Hz信號。鬧時時間為一分鐘。</p><p><b> 圖15</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> us
72、e ieee.std_logic_unsigned.all;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> entity voice is </p><p> port (min1,min0,sec1,sec0,hh,hl,mh,ml,hou0,hou1:in std_logic_vector(3 downto
73、 0);</p><p> in_500,in_1000:in std_logic;</p><p> q:out std_logic);</p><p> end voice;</p><p> architecture one of voice is</p><p><b> begin<
74、/b></p><p> process(min1,min0,sec1,sec0)</p><p><b> begin</b></p><p><b> --整點報時部分</b></p><p> if min1="0101" and min0="100
75、1" and sec1="0101" then</p><p> if sec0="0001" or sec0="0011" or sec0="0101" or sec0="0111" then q<=in_500;</p><p> elsif sec1="
76、0101" and sec0="1001" then q<=in_1000;</p><p> else q<='0'; </p><p><b> end if;</b></p><p> else q<='0';</p><
77、p><b> end if;</b></p><p><b> --鬧時部分</b></p><p> if min1=mh and min0=ml and hou1=hh and hou0=hl then q<=in_1000;</p><p><b> end if;</b>&
78、lt;/p><p> end process;</p><p><b> end one;</b></p><p> 仿真波形如下圖16:</p><p><b> 圖16</b></p><p><b> 頂層原理圖見附圖。</b></p&
79、gt;<p><b> 感想</b></p><p> 通過這次設計,既復習了以前所學的知識,也進一步加深了對EDA的了解,讓我對它有了更加濃厚的興趣。特別是當每一個子模塊編寫調(diào)試成功時,心里特別的開心。但是在畫頂層原理圖時,遇到了不少問題,最大的問題就是根本沒有把各個模塊的VHD文件以及生成的器件都全部放在頂層文件的文件夾內(nèi),還有就是程序設計的時候考慮的不夠全面,沒有聯(lián)系
80、著各個模式以及實驗板的情況來編寫程序,以至于多考慮編寫了譯碼電路而浪費了很多時間。在波形仿真時,也遇到了一點困難,想要的結果不能在波形上得到正確的顯示:在分頻模塊中,設定輸入的時鐘信號后,卻只有二分頻的結果,其余三個分頻始終沒反應。后來,在數(shù)十次的調(diào)試和老師的指點之后,才發(fā)現(xiàn)是因為規(guī)定的信號量范圍太大且信號的初始值隨機,從而不能得到所要的結果。還有的仿真圖根本就不出波形,怎么調(diào)節(jié)都不管用,后來才知道原來是路徑不正確,路徑中不可以有漢字。
81、真是細節(jié)決定成敗??!</p><p> 總的來說,這次設計的數(shù)字鐘還是比較成功的,有點小小的成就感,終于覺得平時所學的知識有了實用的價值,達到了理論與實際相結合的目的,不僅學到了不少知識,而且鍛煉了自己的能力,使自己對以后的路有了更加清楚的認識,同時,對未來有了更多的信心。</p><p><b> 參考資料:</b></p><p>
82、1、潘松,王國棟,VHDL實用教程〔M〕.成都:電子科技大學出版社,2000.(1)</p><p> 2、崔建明主編,電工電子EDA仿真技術 北京:高等教育出版社,2004</p><p> 3、李衍編著,EDA技術入門與提高王行 西安:西安電子科技大學出版社,2005</p><p> 4、侯繼紅, 李向東主編,EDA實用技術教程 北京:中國電力出版社,2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda實現(xiàn)多功能數(shù)字鐘課程設計
- 適用多功能數(shù)字鐘(eda技術課程設計)
- 多功能數(shù)字鐘課程設計
- 課程設計-- 多功能 數(shù)字鐘
- eda數(shù)字鐘課程設計
- 數(shù)字鐘--eda課程設計
- eda數(shù)字鐘課程設計
- 課程設計--多功能數(shù)字鐘設計
- 課程設計---多功能電子數(shù)字鐘
- vhdl課程設計---多功能數(shù)字鐘
- 數(shù)字邏輯課程設計---多功能數(shù)字鐘
- 多功能數(shù)字鐘課程設計報告
- 多功能數(shù)字鐘電路課程設計
- 多功能數(shù)字鐘課程設計報告
- 多功能數(shù)字鐘課程設計報告
- 數(shù)字鐘課程設計---多功能數(shù)字鐘的設計與制作
- 課程設計--多功能電子數(shù)字鐘
- 數(shù)字鐘課程設計--多功能數(shù)字鐘的電路設計
- 課程設計--多功能數(shù)字鐘的設計
- 課程設計--多功能數(shù)字鐘設計.doc
評論
0/150
提交評論