EDA課設(shè)——定時(shí)器_第1頁
EDA課設(shè)——定時(shí)器_第2頁
EDA課設(shè)——定時(shí)器_第3頁
EDA課設(shè)——定時(shí)器_第4頁
EDA課設(shè)——定時(shí)器_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、成 績(jī) 評(píng) 定 表學(xué)生姓名班級(jí)學(xué)號(hào)專 業(yè)電子信息工程課程設(shè)計(jì)題目定時(shí)器設(shè)計(jì)評(píng)語組長(zhǎng)簽字:成績(jī)?nèi)掌?2015年 月 日 課程設(shè)計(jì)任務(wù)書學(xué) 院信息科學(xué)與工程學(xué)院專 業(yè)電子信息工程學(xué)生姓名班級(jí)學(xué)號(hào)課程設(shè)計(jì)題目定時(shí)器設(shè)計(jì)一、目的: 訓(xùn)練學(xué)生綜合運(yùn)用學(xué)過的基礎(chǔ)知識(shí),獨(dú)立進(jìn)行查找資料、選擇方案、代碼設(shè)計(jì)、撰寫報(bào)告,進(jìn)一步加深對(duì)EDA技術(shù)的理解。二、要求: 能正確劃分設(shè)計(jì)層次;收集資料;獨(dú)立思考,刻苦專研,嚴(yán)禁抄襲;按時(shí)完成設(shè)計(jì)任務(wù),認(rèn)真、正確地書寫課程設(shè)計(jì)報(bào)告。三、功能要求: 通過設(shè)計(jì),定時(shí)器可以整體清零;可以定時(shí)最高到99MIN;以秒速度遞增至預(yù)定時(shí)間,以秒速度遞減至零。三、進(jìn)度安排:課程設(shè)計(jì)時(shí)間為10

2、天(2周)1、調(diào)研、查資料1天。2、總體方案設(shè)計(jì)2天。3、代碼設(shè)計(jì)與調(diào)試5天。4、撰寫報(bào)告1天。5、驗(yàn)收1天。指導(dǎo)教師: 2015年 月 日專業(yè)負(fù)責(zé)人:2015年 月 日學(xué)院教學(xué)副院長(zhǎng):2015年 月 日目 錄1 概述1 1.1 設(shè)計(jì)背景和意義1 1.2 設(shè)計(jì)任務(wù)1 1.3 設(shè)計(jì)要求12 原理設(shè)計(jì)及層次劃分12.1 工作原理12.2 層次劃分23 軟件設(shè)計(jì)23.1控制計(jì)數(shù)模塊模塊代碼設(shè)計(jì)23.2 報(bào)警器模塊代碼設(shè)計(jì)43.3 譯碼器模塊代碼設(shè)計(jì)53.4 定時(shí)器原件例化模塊代碼設(shè)計(jì)54 仿真及測(cè)試64.1 控制計(jì)數(shù)模塊仿真64.2報(bào)警器模塊仿真84.3 譯碼器模塊代碼仿真94.4 定時(shí)器原件例化模

3、塊代碼仿真105 總結(jié)116 參考文獻(xiàn)111 概述 1.1 設(shè)計(jì)背景和意義EDA技術(shù)是指以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動(dòng)設(shè)計(jì)。 利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過程的計(jì)算機(jī)上自動(dòng)處理完成。 EDA技術(shù)是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語言VHDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和

4、編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。 1.2 設(shè)計(jì)任務(wù) 通過設(shè)計(jì),定時(shí)器可以整體清零;可以定時(shí)最高到99MIN;以秒速度遞增至預(yù)定時(shí)間,以秒速度遞減至零。 1.3 設(shè)計(jì)要求 具有整體清零(reset)功能,定時(shí)99分鐘。以秒速度遞增至99分鐘停止,啟動(dòng)報(bào)警(cout)5秒鐘。具有置位(cn)控制,即cn高電平時(shí),clk脈沖上升沿到來,計(jì)數(shù)加一;cn低電平時(shí),置位結(jié)束,進(jìn)入倒計(jì)時(shí)階段,以秒速度使輸出計(jì)數(shù)減一至零結(jié)束,并同時(shí)報(bào)警(cout)5秒鐘。時(shí)鐘信號(hào)提供秒信號(hào)(1HZ);四位數(shù)碼管靜態(tài)顯示,高位high(3 downto 0)顯示分

5、,低位low(3 downto 0)顯示秒2 原理設(shè)計(jì)及層次劃分2.1 工作原理1.系統(tǒng)設(shè)計(jì)方案 時(shí)鐘信號(hào)a 控制計(jì)時(shí)部分譯碼器數(shù)碼管時(shí)鐘信號(hào)b報(bào)警器 通過記數(shù)器控制中心輸入秒信號(hào),并輸出兩個(gè)四位的BCD碼,可分別來表示各位與十位,也可整體復(fù)位清零。通過該記數(shù)器實(shí)現(xiàn)以秒速度遞增至清零,該記數(shù)器以秒的速度遞增至99來實(shí)現(xiàn)置位,而以秒的速度遞減至零以實(shí)現(xiàn)定時(shí)功能。當(dāng)以秒速度遞增至99分鐘停止,啟動(dòng)報(bào)警(cout)5秒鐘。cn低電平時(shí),置位結(jié)束,進(jìn)入倒計(jì)時(shí)階段,以秒速度使輸出計(jì)數(shù)減一至零結(jié)束時(shí)也同時(shí)報(bào)警(cout)5秒鐘。通過二選一選擇器對(duì)個(gè)位和十位進(jìn)行掃描輸出,并將輸出送到譯碼器,通過譯碼器對(duì)輸入

6、的四位BCD碼進(jìn)行七段碼編譯,然后輸出到數(shù)碼管。2.2 層次劃分 2.2.1控制計(jì)數(shù)模塊Aaa控制計(jì)數(shù)模塊,是該定時(shí)器的核心部分.res為復(fù)位端,用來清零,采用異步復(fù)位方式;cn用于置位,高電平有效。cout端將在定時(shí)結(jié)束時(shí)產(chǎn)生高電平。Low和high為四位BCD碼輸出端口,可用于顯示。當(dāng)cn有效時(shí),clk脈沖上升沿到來,計(jì)數(shù)加1;當(dāng)cn為低電平時(shí),置位結(jié)束,進(jìn)入計(jì)時(shí)階段,每1個(gè)時(shí)鐘周期發(fā)出一個(gè)脈沖,使輸出記數(shù)減1,直到記時(shí)結(jié)束,令cout位為高電平為止。 2.2.2報(bào)警器模塊主要功能是計(jì)數(shù)器以秒速度遞增至99分鐘停止時(shí)啟動(dòng)報(bào)警(cout)5秒鐘。倒計(jì)時(shí)階段,計(jì)時(shí)器以秒速度使輸出計(jì)數(shù)減一至零結(jié)

7、束時(shí)也同時(shí)報(bào)警(cout)5秒鐘。當(dāng)始終把脈沖clk上升沿到來時(shí)count開始計(jì)數(shù),同時(shí)speak置高電平開始報(bào)警,當(dāng)計(jì)數(shù)達(dá)到5s后speak置0,停止報(bào)警。它的操作源程序如下:2.2.3 譯碼器模塊 譯碼器yima是對(duì)四位BCD碼進(jìn)行七段碼譯碼,其輸出p0p6分別接數(shù)碼管各段進(jìn)行顯示輸出。2.2.4 定時(shí)器原件例化模塊3 軟件設(shè)計(jì)3.1 控制計(jì)數(shù)模塊代碼設(shè)計(jì) Aaa控制計(jì)數(shù)模塊,是該定時(shí)器的核心部分.res為復(fù)位端,用來清零,采用異步復(fù)位方式;cn用于置位,高電平有效。cout端將在定時(shí)結(jié)束時(shí)產(chǎn)生高電平。Low和high為四位BCD碼輸出端口,可用于顯示。當(dāng)cn有效時(shí),clk脈沖上升沿到來,

8、計(jì)數(shù)加1;當(dāng)cn為低電平時(shí),置位結(jié)束,進(jìn)入計(jì)時(shí)階段,每1個(gè)時(shí)鐘周期發(fā)出一個(gè)脈沖,使輸出記數(shù)減1,直到記時(shí)結(jié)束,令cout位為高電平為止。該模塊的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jsq is port (cn,res,clk:in std_logic; cout :out std_logic; flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0);end jsq;architecture art of

9、jsq issignal fdisplow,fdisphigh,mdisplow,mdisphigh:std_logic_vector(3 downto 0); -定義信號(hào)分別表示分鐘和秒鐘的十位和個(gè)位beginprocess(clk,cn,res)beginif(res='1')thenmdisplow<="0000"mdisphigh<="0000"fdisplow<="0000"fdisphigh<="0000" cout<='0' -res高電平

10、執(zhí)行復(fù)位elsif (clk'event and clk='1')then if cn='1'then if mdisplow<9 then mdisplow<=mdisplow+1;-秒鐘個(gè)位數(shù)小于9時(shí)執(zhí)行計(jì)數(shù)加1 cout<='0' elsif mdisplow="1001" and mdisphigh<5 then mdisplow<="0000" mdisphigh<=mdisphigh+1;-秒鐘十位進(jìn)位加1 elsif mdisphigh="

11、0101" and fdisplow<9 then mdisplow<="0000" mdisphigh<="0000" fdisplow<=fdisplow+1;-滿59秒后分鐘個(gè)位加1 elsif fdisplow="1001" and fdisphigh<9 then mdisplow<="0000" mdisphigh<="0000" fdisplow<="0000" fdisphigh<=fdisphi

12、gh+1;-滿9分59秒后分鐘十位加1 elsif fdisplow="1000" and fdisphigh="1001" then mdisplow<="0000" mdisphigh<="0000" fdisplow<="1001"-計(jì)時(shí)至99分停止 elsif fdisplow="1001" and fdisphigh="1001" then cout<='1'-計(jì)時(shí)停止cout變?yōu)楦唠娖?end if; e

13、lsif cn='0' then -cn為0進(jìn)入倒計(jì)時(shí) if mdisplow>0 then mdisplow<=mdisplow-1;-秒鐘減1 cout<='0' elsif mdisplow="0000" and mdisphigh>0 then mdisplow<="1001" mdisphigh<=mdisphigh-1;-個(gè)位0時(shí)十位減1 elsif mdisphigh="0000" and fdisplow>0 then mdisplow<=

14、"1001" mdisphigh<="0101" fdisplow<=fdisplow-1;-分減1 elsif fdisplow="0000" and fdisphigh>0 then mdisplow<="1001" mdisphigh<="0101" fdisplow<="1001" fdisphigh<=fdisphigh-1;-分減10 elsif fdisphigh="0000"and fdisplow

15、="0000"and mdisphigh="0000"and mdisplow="0000"then cout<='1'-倒計(jì)時(shí)結(jié)束cout變?yōu)楦唠娖?end if; end if;end if;end process;mhigh<=mdisphigh;mlow<=mdisplow;fhigh<=fdisphigh;flow<=fdisplow;end art;3.2 報(bào)警器模塊代碼設(shè)計(jì)主要功能是計(jì)數(shù)器以秒速度遞增至99分鐘停止時(shí)啟動(dòng)報(bào)警(cout)5秒鐘。倒計(jì)時(shí)階段,計(jì)時(shí)器以秒速度使輸出

16、計(jì)數(shù)減一至零結(jié)束時(shí)也同時(shí)報(bào)警(cout)5秒鐘。當(dāng)始終把脈沖clk上升沿到來時(shí)count開始計(jì)數(shù),同時(shí)speak置高電平開始報(bào)警,當(dāng)計(jì)數(shù)達(dá)到5s后speak置0,停止報(bào)警。它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cou5 isport(clk,reset,en:in std_logic; speak:out std_logic);end cou5;architecture behavior of cou5 issignal count:std_logic_

17、vector(2 downto 0);-定義計(jì)數(shù)信號(hào)beginprocess(reset,clk)beginif reset='1' or en='0' thencount(2 downto 0)<="000"speak<='0'-有復(fù)位信號(hào)或始能端低電平時(shí)輸出0elseif(clk'event and clk='1')thencount<=count+1;speak<='1'-有時(shí)鐘上升沿計(jì)數(shù)加1,報(bào)警信號(hào)speak高電平if count>5 thensp

18、eak<='0' -5秒之后停止報(bào)警speak為0end if;end if;end if;end process;end behavior;3.3 譯碼器模塊代碼設(shè)計(jì)譯碼器yima是對(duì)四位BCD碼進(jìn)行七段碼譯碼,其輸出p0p6分別接數(shù)碼管各段進(jìn)行顯示輸出,它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;entity yima isport(a:in std_logic_vector(3 downto 0); p:out std_logic_vector(6 downto 0);end yima;architectur

19、e arc of yima isbeginprocess(a)begincase a iswhen"0000"=>p<="0111111"when"0001"=>p<="0000110"when"0010"=>p<="1011011"when"0011"=>p<="1001111"when"0100"=>p<="1100110"when&

20、quot;0101"=>p<="1101101"when"0110"=>p<="1111101"when"0111"=>p<="0000111"when"1000"=>p<="1111111"when"1001"=>p<="1101111"-七段譯碼器顯示09when others=>p<="0000000"end

21、case;end process;end arc;3.4 定時(shí)器原件例化模塊代碼設(shè)計(jì)library ieee;use ieee.std_logic_1164.all;entity yjlh isport(sen,resa,clka,resb: in std_logic; myimal:out std_logic_vector(6 downto 0); -秒鐘個(gè)位譯碼輸出 myimah:out std_logic_vector(6 downto 0); -秒鐘十位譯碼輸出 fyimal:out std_logic_vector(6 downto 0); -分鐘個(gè)位譯碼輸出 fyimah:out

22、std_logic_vector(6 downto 0); -分鐘十位譯碼輸出 baoj:out std_logic );end entity yjlh;architecture art of yjlh iscomponent jsq isport (cn,res,clk:in std_logic; cout :out std_logic; flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0);end component jsq; -jsq控制模塊component yima isport(a:in std_logic_vector(3

23、downto 0); p:out std_logic_vector(6 downto 0);end component yima;-譯碼模塊component cou5 isport(clk,reset,en:in std_logic; speak:out std_logic);end component cou5;-報(bào)警模塊signal s1,s2,s3,s4:std_logic_vector(3 downto 0);signal s5:std_logic;beginu1:jsq port map(sen,resa,clka,s5,s1,s2,s3,s4);u2:yima port map(

24、s1,fyimal);u3:yima port map(s2,fyimah);u4:yima port map(s3,myimal);u5:yima port map(s4,myimah);u6:cou5 port map(clka,resb,s5,baoj);-各模塊通過位置關(guān)聯(lián)end architecture art;4 仿真及測(cè)試4.1 控制計(jì)數(shù)模塊仿真該計(jì)數(shù)器生成的原件如下圖所示: 圖一 計(jì)數(shù)器原件生成圖計(jì)數(shù)器波形仿真圖如下圖所示: 圖二 計(jì)數(shù)器波形仿真 Aaa控制計(jì)數(shù)模塊,是該定時(shí)器的核心部分.res為復(fù)位端,用來清零,采用異步復(fù)位方式;cn用于置位,高電平有效。cout端將在定時(shí)結(jié)

25、束時(shí)產(chǎn)生高電平。Low和high為四位BCD碼輸出端口,可用于顯示。當(dāng)cn有效時(shí),clk脈沖上升沿到來,計(jì)數(shù)加1;當(dāng)cn為低電平時(shí),置位結(jié)束,進(jìn)入計(jì)時(shí)階段,每1個(gè)時(shí)鐘周期發(fā)出一個(gè)脈沖,使輸出記數(shù)減1,直到記時(shí)結(jié)束,令cout位為高電平為止。4.2 報(bào)警器模塊仿真該報(bào)警器生成的原件圖如下: 圖三 報(bào)警器原件生成圖該報(bào)警器波形仿真圖如下: 圖四 報(bào)警器波形仿真主要功能是計(jì)數(shù)器以秒速度遞增至99分鐘停止時(shí)啟動(dòng)報(bào)警(cout)5秒鐘。倒計(jì)時(shí)階段,計(jì)時(shí)器以秒速度使輸出計(jì)數(shù)減一至零結(jié)束時(shí)也同時(shí)報(bào)警(cout)5秒鐘。當(dāng)始終把脈沖clk上升沿到來時(shí)count開始計(jì)數(shù),同時(shí)speak置高電平開始報(bào)警,當(dāng)計(jì)數(shù)達(dá)到5s后speak置0,停止報(bào)警。4.3 譯碼器模塊仿真該譯碼器原件生成圖如下: 圖五 譯碼器原件生成圖 該譯碼器波形仿真圖如下: 圖六 譯碼器波形仿真譯碼器yima是對(duì)四位BCD碼進(jìn)行七段碼譯碼,其輸出p0p6分別接數(shù)碼管各段進(jìn)行顯示輸出。4.4定時(shí)器原件例化模塊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論