數(shù)字邏輯課程設(shè)計_第1頁
數(shù)字邏輯課程設(shè)計_第2頁
數(shù)字邏輯課程設(shè)計_第3頁
數(shù)字邏輯課程設(shè)計_第4頁
數(shù)字邏輯課程設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)字邏輯課程設(shè)計學(xué)院班級姓名學(xué)號指導(dǎo)老師完成日期2013年7月11日

數(shù)字邏輯課程設(shè)計設(shè)計目的學(xué)會應(yīng)用數(shù)字系統(tǒng)設(shè)計方法進行電路設(shè)計;進一步提高QUARTUSII軟件的開發(fā)應(yīng)用能力;提高VHDL進行綜合設(shè)計的能力;培養(yǎng)學(xué)生書寫綜合實驗報告的能力。設(shè)計任務(wù)及要求擁有正常的時、分、秒計時功能。能利用實驗板上的按鍵實現(xiàn)時間校對功能。利用揚聲器實現(xiàn)整點報時功能,。鬧鐘功能〔選做〕。計時、校時及鬧鐘設(shè)定的正常顯示。在QuartusⅡ環(huán)境下,使用VHDL語言編程并畫出電路圖完成層次化設(shè)計過程,仿真重要的功能模塊并鎖定管腳。將設(shè)計結(jié)果下載到實驗板上驗證設(shè)計課題的正確性。三、設(shè)計思路〔各模塊設(shè)計方法、仿真波形截圖及解釋、程序段分析〕3.1計時模塊計小時:24進制計數(shù)器;計分,計秒:60進制計數(shù)器。計時間過程:計秒:1hz技術(shù)脈沖,0~59循環(huán)計數(shù),計數(shù)至59時產(chǎn)生進位信號;計分:以秒計數(shù)器進位信號作為計分計數(shù)脈沖,0~59循環(huán)計數(shù),計數(shù)至59時產(chǎn)生進位信號;計時:以計分計數(shù)器進位信號作為計時計數(shù)脈沖,0~23循環(huán)計數(shù),計數(shù)至23時清0。源程序24進制--封多多4111109009libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt24isport(clk:instd_logic;ql,qh:outstd_logic_vector(3downto0);tc:outstd_logic);endcnt24;architectureoneofcnt24isbeginprocess(clk)variableqli,qhi:std_logic_vector(3downto0);beginifclk'eventandclk='1'thenqli:=qli+1;tc<='0';ifqli="1010"thenqhi:=qhi+1;qli:="0000";endif;if(qhi="0010")and(qli="0100")thentc<='1';qhi:="0000";qli:="0000";endif;endif;ql<=qli;qh<=qhi;endprocess;endone;60進制--封多多4111109009libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt60isport(clk,clr:instd_logic;qh,ql:outstd_logic_vector(3downto0);tc:outstd_logic);endcnt60;architectureoneofcnt60isbeginprocess(clk,clr)variablech,cl:std_logic_vector(3downto0);variablec:std_logic;beginifclr='0'thench:="0000";cl:="0000";elsifclk'eventandclk='1'thenifch="0101"andcl="1001"thench:="0000";cl:="0000";c:='1';elsifcl<"1001"thencl:=cl+1;c:='0';elsifcl="1001"thencl:="0000";ch:=ch+1;c:='0';endif;endif;tc<=c;qh<=ch;ql<=cl;endprocess;endone;生成器件24進制計數(shù)器60進制計數(shù)器3.2校對模塊設(shè)計原理24進制計數(shù)器24進制計數(shù)器60進制計數(shù)器60進制計數(shù)器2MUX2MUX1HZ消抖消抖高頻計數(shù)脈沖校時校時分頻計時和校對模塊原理圖校時模塊設(shè)計要求實現(xiàn)較時、較分以及較秒清零的功能。①按下校時鍵,小時計數(shù)器迅速遞增以調(diào)至所需要的小時位。②按下校分鍵,分計數(shù)器迅速遞增以調(diào)至所需要的分位。③按下清零鍵,將秒計數(shù)器清零。對于此模塊的設(shè)計,有三個需要注意的問題:①在校分時,分計數(shù)器的計數(shù)不應(yīng)對小時位產(chǎn)生影響,因而需要屏蔽此時分計數(shù)器的進位信號以防止小時計數(shù)器計數(shù)。②按鍵“抖動”消除。所謂的“抖動”是指一次按鍵時的彈跳現(xiàn)象,通常實驗板中按鍵所用的開關(guān)為機械彈性開關(guān),由于機械觸點的彈性作用,按鍵開關(guān)在閉合時不能馬上接通,而斷開時也不能馬上斷開,使得閉合或斷開的瞬間伴隨一系列抖動,從而導(dǎo)致本來一次按鍵,卻出現(xiàn)很屢次。這樣嚴重影響時間校對準(zhǔn)確性。消除抖動方法是D觸發(fā)器和同步按鍵脈沖。③校對時間時為使小時和分計數(shù)器迅速遞增,應(yīng)將一個相對高頻的計數(shù)脈沖信號輸入到計數(shù)器時鐘端,這就需要在正常計時的脈沖信號和時間校對的高頻脈沖信號之間進行切換,實現(xiàn)方案:將校時、較分按鍵連接至二路選擇器的地址端,選擇器的數(shù)據(jù)輸入端那么連接正常的計時信號和高頻校時信號。二路選擇器源程序--封多多4111109035libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt60isport(clk,clr:instd_logic;qh,ql:outstd_logic_vector(3downto0);tc:outstd_logic);endcnt60;architectureoneofcnt60isbeginprocess(clk,clr)variablech,cl:std_logic_vector(3downto0);variablec:std_logic;beginifclr='0'thench:="0000";cl:="0000";elsifclk'eventandclk='1'thenifch="0101"andcl="1001"thench:="0000";cl:="0000";c:='1';elsifcl<"1001"thencl:=cl+1;c:='0';elsifcl="1001"thencl:="0000";ch:=ch+1;c:='0';endif;endif;tc<=c;qh<=ch;ql<=cl;endprocess;endone;libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitymux2isport(A,B:instd_logic;S:instd_logic;Y:outstd_logic);endmux2;architecturetwoofmux2isbeginprocess(A,B,S)beginifS='0'thenY<=A;elseY<=B;endif;endprocess;endtwo;生成器件二路選擇器3.3整點報時模塊設(shè)計原理該功能要求是:計時到59分50秒是,每兩秒一次低聲報時,整點時進行高音報時,可以將報時信號接到實驗板上的揚聲器輸出。而以不同頻率的脈沖信號區(qū)分上下音和高音報時。比方可用500hz信號進行低音報時信號,1khz信號作為高音報時信號。進行報時的條件是計數(shù)器計數(shù)至要求的時間點,因而需要實現(xiàn)一個比擬模塊,將分計數(shù)器和秒計數(shù)器的輸出連至比擬模塊輸入端完成比擬過程。源程序--封多多4111109035libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityzdbsisport(mh,ml,sh,sl:instd_logic_vector(3downto0);sig500,sig1k:outstd_logic);endzdbs;architecturebehaviorofzdbsisbeginsig500<='1'whenmh="0101"andml="1001"andsh="0101"and(sl="0010"orsl="0100"orsl="0110"orsl="1000")else'0';sig1k<='1'whenmh="0000"andml="0000"andsh="0000"andsl="0000"else'0';endbehavior;設(shè)計仿真及生成器件整點報時3.4分頻模塊設(shè)計原理在本系統(tǒng)中需要用到多種不同頻率的脈沖信號,上至高音報時信號,下至1hz的計秒脈沖。所有這些脈沖信號均可以通過一個基準(zhǔn)頻率分頻器生成。基準(zhǔn)頻率分頻器就是一個進制很大的計數(shù)器,利用計數(shù)器的分頻功能,從不同的輸出位得到所需要的脈沖信號。源程序--封多多4111109035LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYfreq_dividerISPORT(clk:INSTD_LOGIC;hz1:OUTSTD_LOGIC;hz4:OUTSTD_LOGIC;hz64:OUTSTD_LOGIC;hz512:OUTSTD_LOGIC);ENDfreq_divider;ARCHITECTURErtlOFfreq_dividerISSIGNALcount:STD_LOGIC_VECTOR(9DOWNTO0);BEGINPROCESS(clk)BEGINIF(clk'eventandclk='1')THENIF(count="1111111111")THENCount<=(OTHERS=>'0');ELSECount<=count+1;ENDIF;ENDIF;ENDPROCESS;hz512<=count(0);hz64<=count(3);hz4<=count(7);hz1<=count(9);ENDrtl;生成的器件3.5動態(tài)顯示模塊設(shè)計原理時間的顯示需要用到6個數(shù)碼管,如果實驗板上可用的靜態(tài)顯示數(shù)碼管有6個或以上那么很容易顯示,只需要將小時高位到秒低位共6組輸出順序鎖定到6個數(shù)碼管上即可。但如果資源缺乏,那么無法完整顯示6位時間。在這種情況下,需要采用動態(tài)掃描的方式實現(xiàn)時間顯示。在動態(tài)方式下,所有的數(shù)碼管對應(yīng)同一組七段碼,每一個數(shù)碼管有一個選擇端控制點亮或熄滅,如果全部點亮,那么都顯示同樣的數(shù)字。假設(shè)要實現(xiàn)6位不同時間的顯示,那么需要利用人的視覺缺陷??梢詫?個不同時間段分別將每組時間經(jīng)過七段碼后輸出六個數(shù)碼管,當(dāng)某一組時間的七段碼到達時,只點亮對應(yīng)位置上的數(shù)碼管,顯示相應(yīng)的數(shù)字;下一個循環(huán)將另一組時間的七段碼送至數(shù)碼管,同樣點亮相應(yīng)的數(shù)碼管,6次一循環(huán),形成以掃描序列。源程序--封多多4111109035LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdtsmisport(clk:instd_logic;h:instd_logic_vector(7downto0);m:instd_logic_vector(7downto0);s:instd_logic_vector(7downto0);seg7out:outstd_logic_vector(6downto0);sel:bufferstd_logic_vector(2downto0));ENDdtsm;ARCHITECTUREbehaofdtsmissignalkey:std_logic_vector(3downto0);BEGINPROCESS(clk)variabledount:std_logic_vector(2downto0):="000";BEGINIF(rising_edge(clk))thenIFdount="101"thendount:="000";ELSEdount:=dount+1;ENDIF;ENDIF;sel<=dount;endprocess;PROCESS(sel)BEGINCASEselISwhen"000"=>key<=h(7downto4);when"001"=>key<=h(3downto0);when"010"=>key<=m(7downto4);when"011"=>key<=m(3downto0);when"100"=>key<=s(7downto4);when"101"=>key<=s(3downto0);whenothers=>null;ENDCASE;ENDPROCESS;PROCESS(key)BEGINcasekeyiswhen"0000"=>seg7out<="0111111";when"0001"=>seg7out<="0000110";when"0010"=>seg7out<="1011011";when"0011"=>seg7out<="1001111";when"0100"=>seg7out<="1100110";when"0101"=>seg7out<="1101101";when"0110"=>seg7out<="1111101";when"0111"=>seg7out<="0000111";when"1000"=>seg7out<="1111111";when"1001"=>seg7out<="1101111";when"1010"=>seg7out<="1110111";when"1011"=>seg7out<="1111100";when"1100"=>seg7out<="0111001";when"1101"=>seg7out<="1011110";when"1110"=>seg7out<="1111001";when"1111"=>seg7out<="1110001";whenothers=>null;ENDCASE;ENDPROCESS;ENDbeha;生成的器件3.6鬧鐘模塊〔選做〕設(shè)置的鬧時模塊需要注意一下幾點:1、設(shè)定的鬧鐘的時間應(yīng)使用新的計數(shù)器進行存儲,與正常的計時互不干擾。2、與正常計時狀態(tài)的顯示切換??梢栽O(shè)定一個按鍵,用于選擇是將計時時間還是將鬧鐘時間狀態(tài)送到動態(tài)顯示模塊。3、應(yīng)實現(xiàn)一個比擬模塊,當(dāng)計時到與鬧鐘相等時,那么驅(qū)動揚聲器鳴叫。4、鬧鐘響聲應(yīng)限定在一定時間內(nèi),比方一分鐘,且在這段時間內(nèi)應(yīng)隨時可以通過按鍵取消鬧時狀態(tài)〔揚聲器停止鳴叫〕。源程序--封多多4111109035libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityalarm1isport(clr,hclk,mclk,mode,stop:instd_logic;hclo,mclo,sclo:instd_logic_vector(7downto0);h,m,s:outstd_logic_vector(7downto0);sig:outstd_logic);endalarm1;architecturebehofalarm1issignalhalr,malr,salr:std_logic_vector(7downto0);signaltc,sclk:std_logic;COMPONENTcnt60PORT(clk:instd_logic;clr:instd_logic;ql:bufferstd_logic_vector(3downto0);qh:bufferstd_logic_vector(3downto0);tc:outstd_logic);ENDCOMPONENT;componentcnt24port(clk:instd_logic;ql:bufferstd_logic_vector(3downto0);qh:bufferstd_logic_vector(3downto0);tc:outstd_logic);endcomponent;beginhours:cnt24portmap(clk=>hclk,ql=>halr(3downto0),qh=>halr(7downto4),tc=>tc);minutes:cnt60portmap(clk=>mclk,clr=>clr,ql=>malr(3downto0),qh=>malr(7downto4),tc=>tc);seconds:cnt60portmap(clk=>sclk,clr=>clr,ql=>salr(3downt

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論