基于vhdl語言的數(shù)字時鐘設(shè)計說明書.doc

上傳人:good****022 文檔編號:116795217 上傳時間:2022-07-06 格式:DOC 頁數(shù):41 大?。?86.54KB
收藏 版權(quán)申訴 舉報 下載
基于vhdl語言的數(shù)字時鐘設(shè)計說明書.doc_第1頁
第1頁 / 共41頁
基于vhdl語言的數(shù)字時鐘設(shè)計說明書.doc_第2頁
第2頁 / 共41頁
基于vhdl語言的數(shù)字時鐘設(shè)計說明書.doc_第3頁
第3頁 / 共41頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于vhdl語言的數(shù)字時鐘設(shè)計說明書.doc》由會員分享,可在線閱讀,更多相關(guān)《基于vhdl語言的數(shù)字時鐘設(shè)計說明書.doc(41頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、課程:CPLD與FPGA設(shè)計及應(yīng)用實驗:基于VHDL語言的數(shù)字時鐘設(shè)計 學(xué)號:092030030姓名: 朱 峰 專業(yè):信號與信息處理 學(xué)院:電子與信息學(xué)院2011年12月基于VHDL語言的數(shù)字時鐘設(shè)計一:主要功能1:具有時、分、秒計數(shù)顯示功能,以24小時循環(huán)計時。2:具有日期和星期顯示功能。3:具有秒表功能4:具有調(diào)節(jié)日期,星期,小時,分鐘,清零的功能。5:具有定時和鬧鈴的功能。二:結(jié)構(gòu)框圖控制單元使能信號數(shù)字時鐘CLK時鐘信號報警(鬧鈴)信號復(fù)位信號輸出信號LED顯示揚聲器三:RTL圖四:功能實現(xiàn) 4.1分頻模塊設(shè)計 本設(shè)計使用的輸入時鐘信號為50Mhz,經(jīng)過分頻產(chǎn)生兩路時鐘信號,其中一路為

2、微秒計數(shù)時鐘信號,一路為動態(tài)掃描時鐘信號。同時模塊有一輸入控制信號,其功能是停止微秒計數(shù)時鐘信號,以實現(xiàn)定時的功能。輸入:clk_in 為50Mhz,setstop為微秒計數(shù)時能信號輸出:clk_out1為1/60hz clk_out2為1khz源代碼如下:library ieee;use ieee.std_logic_1164.all;entity div is port(clk_in,setstop: in std_logic; clk_out1,clk_out2: out std_logic);end entity div;architecture fun of div isconsta

3、nt a:integer:=8333333;constant b:integer:=49999;signal c:integer range 0 to a;signal d:integer range 0 to b;beginprocess(clk_in,setstop) begin if(clk_in event and clk_in=1) then if( c+7500000)a and setstop=1) then c=c+1;clk_out1=1; else c=0;clk_out1=0; end if; end if;end process;process(clk_in) begi

4、n if(clk_in event and clk_in=1) then if d=b then d=d+1; clk_out2=1; else d=0;clk_out2=0; end if; end if;end process;end fun;4.2計時模塊設(shè)計4.2.1 微秒計時模塊 計數(shù)器的第一個模塊為微秒計時模塊,其實質(zhì)為一個六十進制計數(shù)器。輸入:clk為1/60hz,reset為清零復(fù)位鍵輸出:ensecond為秒模塊的進位信號 Daout為微妙輸出顯示信號源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_log

5、ic_unsigned.all;entity msecond isport(clk,reset:in std_logic; ensecond:out std_logic; daout:out std_logic_vector(6 downto 0);end entity msecond;architecture fun of msecond is signal count:std_logic_vector(6 downto 0); signal enmin_1:std_logic;beginprocess(clk,reset)begin if(reset=0)then count=000000

6、0; elsif(clk event and clk=1)then if(count(3 downto 0)=1001)then if(count16#60#)then if(count=1011001)then enmin_1=1;count=0000000; else count=count+7; end if; else count=0000000; end if; elsif(count16#60#)then count=count+1 ; enmin_1=0 ; else count=0000000; end if; end if;end process; daout=count;

7、ensecond=enmin_1 ;end fun;4.2.2 秒計時模塊 計數(shù)器的第二個模塊為秒計時模塊,其實質(zhì)為一個六十進制計數(shù)器。輸入:clk為秒進位信號,reset為清零復(fù)位鍵,setmin為調(diào)分信號,setclk為消抖時鐘輸出:enmin為分模塊的進位信號 daout為秒輸出顯示信號源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second isport(clk,setclk,reset,setmin:in std_logic; enmin:out std_l

8、ogic; daout:out std_logic_vector(6 downto 0);end entity second;architecture fun of second is signal count:std_logic_vector(6 downto 0); signal enmin_1,enmin_2:std_logic;beginprocess(clk,reset,setmin)begin if(reset=0)then count=0000000; elsif(clk event and clk=1)then if(count(3 downto 0)=1001)then if

9、(count16#60#)then if(count=1011001)then enmin_1=1;count=0000000; else count=count+7; end if; else count=0000000; end if; elsif(count16#60#)then count=count+1 ; enmin_1=0 ; else count=0000000; end if; end if;end process;process(setclk,setmin)begin if(setclk event and setclk=1) then enmin_2=not setmin

10、 ; end if; end process; daout=count; enmin=(enmin_1 or enmin_2);end fun;4.2.3 分計時模塊 計數(shù)器的第三個模塊為秒計時模塊,其實質(zhì)為一個六十進制計數(shù)器。輸入:clk為分進位信號,reset為清零復(fù)位鍵,sethour為調(diào)時信號,setclk為消抖時鐘輸出:enhour為小時模塊的進位信號 daout為分輸出顯示信號源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport( clk

11、,setclk,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;beginprocess(clk,reset)begin if(reset=0)then count=0000000; elsif(clk event a

12、nd clk=1)then if(count(3 downto 0)=1001)then if(count16#60#)then if(count=1011001)then enhour_1=1; count=0000000; else count=count+7; end if; else count=0000000; end if; elsif(count16#60#)then count=count+1; enhour_1=0 ; else count=0000000; end if; end if; end process;process(setclk,sethour)begin if

13、(setclk event and setclk=1) then enhour_2=not sethour ; end if; end process; daout=count; enhour=(enhour_1 or enhour_2);end fun;4.2.4小時計時模塊 計數(shù)器的第四個模塊為小時計時模塊,其實質(zhì)為一個二十四進制計數(shù)器。輸入:clk為分進位信號,reset為清零復(fù)位鍵,setweek為調(diào)小時信號,setclk為消抖時鐘輸出:enweek為日期模塊的進位信號 daout為小時輸出顯示信號源代碼如下:library ieee;use ieee.std_logic_1164.a

14、ll;use ieee.std_logic_unsigned.all;entity hour isport( clk,setclk,reset,setweek:in std_logic; enweek:out std_logic; daout:out std_logic_vector(6 downto 0);end entity hour;architecture fun of hour is signal count:std_logic_vector(6 downto 0); signal enweek_1,enweek_2:std_logic;begin process(clk,reset

15、)begin if(reset=0)then count=0000000; elsif(clk event and clk=1)then if(count(3 downto 0)=1001) and (count16#23# )then count=count+7; elsif (count=0100011)then enweek_1=1;count=0000000; elsif(count16#23#)then count=count+1; enweek_1=0; else count=0000000; end if; end if;end process;process(setclk,se

16、tweek)begin if(setclk event and setclk=1) then enweek_2=not setweek; end if; end process; daout=count; enweek=(enweek_1 or enweek_2) ;end fun;4.3日期和星期模塊設(shè)計 4.3.1 星期顯示模塊 星期顯示模塊其實質(zhì)為一個七進制計數(shù)器。輸入:clk為日期進位信號,reset為清零復(fù)位鍵輸出:weeoutk為星期輸出顯示信號源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_uns

17、igned.all;entity weeker is port(clk:in std_logic; reset:in std_logic; weekout:out std_logic_vector(3 downto 0);end entity weeker;architecture fun of weeker issignal count:std_logic_vector(3 downto 0);beginprocess(clk,reset) begin if(reset=0)then count=0001; elsif(clk event and clk=1)then if (count16

18、#7#) then count=count+1; else count=0001; end if; end if; end process; weekout=count; end fun;4.3.2 日期顯示模塊 日期顯示模塊其實質(zhì)為一個十二選一選擇器。輸入:clk為日期進位信號,reset為清零復(fù)位鍵輸出:monthout 為月輸出顯示信號 Dateout為日輸出顯示信號源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity date is port(clk:in std_lo

19、gic; reset:in std_logic; monthout:out std_logic_vector(4 downto 0); dateout:out std_logic_vector(5 downto 0);end entity date;architecture fun of date issignal dount:std_logic_vector(4 downto 0);signal count:std_logic_vector(5 downto 0);beginprocess(clk,reset) begin if(reset=0)then count=000001;dount

20、=00001; elsif(clk event and clk=1 and dount=00001 )then if(count(3 downto 0)=1001) and (count16#31# )then count=count+7; elsif (count16#31#) then count=count+1; else count=000001;dount=dount+1;end if; elsif(clk event and clk=1 and dount=00010 )then if(count(3 downto 0)=1001) and (count16#29# )then c

21、ount=count+7; elsif (count16#29#) then count=count+1; else count=000001;dount=dount+1;end if; elsif(clk event and clk=1 and dount=00011 )then if(count(3 downto 0)=1001) and (count16#31# )then count=count+7; elsif (count16#31#) then count=count+1; else count=000001;dount=dount+1;end if; elsif(clk eve

22、nt and clk=1 and dount=00100 )thenif(count(3 downto 0)=1001) and (count16#30# )then count=count+7; elsif (count16#30#) then count=count+1; else count=000001;dount=dount+1; end if; elsif(clk event and clk=1 and dount=00101 )then if(count(3 downto 0)=1001) and (count16#31# )then count=count+7; elsif (

23、count16#31#) then count=count+1; else count=000001;dount=dount+1; end if; elsif(clk event and clk=1 and dount=00110 )then if(count(3 downto 0)=1001) and (count16#30# )then count=count+7; elsif (count16#30#) then count=count+1; else count=000001;dount=dount+1;end if; elsif(clk event and clk=1 and dou

24、nt=00111 )then if(count(3 downto 0)=1001) and (count16#31# )then count=count+7; elsif (count16#31#) then count=count+1; else count=000001;dount=dount+1;end if; elsif(clk event and clk=1 and dount=01000 )then if(count(3 downto 0)=1001) and (count16#31# )then count=count+7; elsif (count16#31#) then co

25、unt=count+1; else count=000001;dount=dount+1;end if; elsif(clk event and clk=1 and dount=01001 )then if(count(3 downto 0)=1001) and (count16#30# )then count=count+7; elsif (count16#30#) then count=count+1; else count=000001;dount=dount+1; end if; elsif(clk event and clk=1 and dount=01010 )then if(co

26、unt(3 downto 0)=1001) and (count16#31# )then count=count+7; elsif (count16#31#) then count=count+1; else count=000001;dount=dount+1;end if; elsif(clk event and clk=1 and dount=01011 )then if(count(3 downto 0)=1001) and (count16#30# )then count=count+7; elsif (count16#30#) then count=count+1; else co

27、unt=000001;dount=dount+1; end if; elsif(clk event and clk=1 and dount=01100 )then if(count(3 downto 0)=1001) and (count16#31# )then count=count+7; elsif (count16#31#) then count=count+1; else count=000001;dount=dount+1;end if;end if; end process; monthout=dount; dateout=count; end fun;4.4掃描顯示模塊設(shè)計 該模

28、塊的作用是將時鐘產(chǎn)生的微秒、秒、分、小時、星期和日期信號以掃描的形式顯示輸出。其中一控制信號實現(xiàn)數(shù)碼管的復(fù)用,控制顯示微秒、秒、分、小時或星期、日期。輸入:clk1為掃描時鐘,reset為清零復(fù)位鍵,ms、sec、min、hour、month、date、week分別為微秒、秒、分、小時、月、日、星期顯示信號,showweek為控制信號輸出:dp為數(shù)碼管小數(shù)點顯示信號 led為七段數(shù)碼管顯示信號 sel為位選信號源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_l

29、ogic_arith.all;entity seltime isport( clk1,reset,showweek:in std_logic; ms,sec,min,hour:in std_logic_vector(6 downto 0); month:in std_logic_vector(4 downto 0); date:in std_logic_vector(5 downto 0); week:in std_logic_vector(3 downto 0); dp:out std_logic; led:out std_logic_vector(6 downto 0); sel:out

30、std_logic_vector(7 downto 0);end entity seltime ;architecture fun of seltime issignal count:std_logic_vector(3 downto 0);signal daout:std_logic_vector(3 downto 0);signal d:std_logic_vector(4 downto 0);beginp1 : process(clk1,reset)begin if(reset=0)then count1101)then count=0000; d=count&showweek ; el

31、se count=count+1; ddaout=ms(3 downto 0);sel=01111111;dpdaout(3)=0;daout(2 downto 0)=ms(6downto4);sel=10111111;dpdaout=sec(3 downto 0);sel=11111110;dpdaout(3)=0;daout(2downto0)=sec(6 downto 4);sel=11111101;dpdaout=min(3 downto 0);sel=11111011;dpdaout(3)=0;daout(2downto0)=min(6downto 4);sel=11110111;d

32、pdaout=hour(3 downto 0);sel=11101111;dpdaout(3downto2)=00;daout(1downto0)=hour(5downto4);sel=11011111;dpdaout=week;sel=01111111;dpdaout=date(3 downto 0);sel=11111110;dpdaout(3downto2)=00;daout(1downto0)=date(5downto4);sel=11111101;dpdaout=month(3 downto 0);sel=11111011;dpdaout(3 downto 1)=000;daout(

33、0)=month(4);sel=11110111;dpselledledledledledledledledledlednull;end case;end process p3;end fun;4.5 整點報時模塊設(shè)計 該模塊的作用是當時鐘計數(shù)到整點時蜂鳴器報警,以實現(xiàn)整點報時功能。輸入:clk計數(shù)時鐘信號,speaksec秒輸出信號,speakmin分輸出信號輸出:報警信號源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity speaker is port(clk:in st

34、d_logic; speaksec:in std_logic_vector(6 downto 0); speakmin:in std_logic_vector(6 downto 0); speak:out std_logic);end entity speaker;architecture fun of speaker isbeginprocess(clk,speakmin)begin if(clk event and clk=1)then if(speakmin=0000000 and speaksec=0000000)then speak=1;else speakclk_in, setst

35、op=setstop, clk_out1=clk00, clk_out2=clk01); u2:msecond port map (clk=clk00, reset=reset, ensecond=ensecond_re, daout=da0out);u3:second port map (clk=ensecond_re, setclk=clk01, reset=reset, setmin=setmin, enmin=enmin_re, daout=dalout);u4:minute port map (clk=enmin_re, setclk=clk01, reset=reset, seth

36、our=sethour, enhour=enhour_re, daout=dallout);u5:hour port map (clk=enhour_re, setclk=clk01, reset=reset, setweek=setweek, enweek=enweek_re, daout=dalllout);u6:weeker port map (clk=enweek_re, reset=reset, weekout=dallllout);u7:date port map (clk=enweek_re, reset=reset, monthout=month0out, dateout=da

37、te0out);u8:seltime port map(clk1=clk01, reset=reset, showweek=showweek, ms=da0out, sec=dalout, min=dallout, hour=dalllout, week=dallllout, date=date0out, month=month0out, sel=sel, led=led, dp=dp);u9:speaker port map(clk=clk01, speaksec=dalout, speakmin=dallout, speak=speak);end a; 39大學(xué)本科生畢業(yè)設(shè)計(論文)撰寫規(guī)

38、范本科生畢業(yè)設(shè)計(論文)是學(xué)生在畢業(yè)前提交的一份具有一定研究價值和實用價值的學(xué)術(shù)資料。它既是本科學(xué)生開始從事工程設(shè)計、科學(xué)實驗和科學(xué)研究的初步嘗試,也是學(xué)生在教師的指導(dǎo)下,對所進行研究的適當表述,還是學(xué)生畢業(yè)及學(xué)位資格認定的重要依據(jù)。畢業(yè)論文撰寫是本科生培養(yǎng)過程中的基本訓(xùn)練環(huán)節(jié)之一,應(yīng)符合國家及各專業(yè)部門制定的有關(guān)標準,符合漢語語法規(guī)范。指導(dǎo)教師應(yīng)加強指導(dǎo),嚴格把關(guān)。1、論文結(jié)構(gòu)及要求論文包括題目、中文摘要、外文摘要、目錄、正文、參考文獻、致謝和附錄等幾部分。1.1 題目論文題目應(yīng)恰當、準確地反映論文的主要研究內(nèi)容。不應(yīng)超過25字,原則上不得使用標點符號,不設(shè)副標題。1.2 摘要與關(guān)鍵詞1.2

39、.1 摘要本科生畢業(yè)設(shè)計(論文)的摘要均要求用中、英兩種文字給出,中文在前。摘要應(yīng)扼要敘述論文的研究目的、研究方法、研究內(nèi)容和主要結(jié)果或結(jié)論,文字要精煉,具有一定的獨立性和完整性,摘要一般應(yīng)在300字左右。摘要中不宜使用公式、圖表,不標注引用文獻編號,避免將摘要寫成目錄式的內(nèi)容介紹。1.2.2 關(guān)鍵詞關(guān)鍵詞是供檢索用的主題詞條,應(yīng)采用能覆蓋論文主要內(nèi)容的通用技術(shù)詞條(參照相應(yīng)的技術(shù)術(shù)語標準),一般列35個,按詞條的外延層次從大到小排列,應(yīng)在摘要中出現(xiàn)。1.3 目錄目錄應(yīng)獨立成頁,包括論文中全部章、節(jié)的標題及頁碼。1.4 論文正文論文正文包括緒論、論文主體及結(jié)論等部分。1.4.1 緒論緒論一般作

40、為論文的首篇。緒論應(yīng)說明選題的背景、目的和意義,國內(nèi)外文獻綜述以及論文所要研究的主要內(nèi)容。文管類論文的緒論是畢業(yè)論文的開頭部分,一般包括說明論文寫作的目的與意義,對所研究問題的認識以及提出問題。緒論只是文章的開頭,不必寫章號。畢業(yè)設(shè)計(論文)緒論部分字數(shù)不多于全部論文字數(shù)的1/4。1.4.2 論文主體論文主體是論文的主要部分,要求結(jié)構(gòu)合理,層次清楚,重點突出,文字簡練、通順。論文主體的內(nèi)容要求參照大學(xué)本科生畢業(yè)設(shè)計(論文)的規(guī)定第五章。論文主體各章后應(yīng)有一節(jié)“本章小結(jié)”。1.4.3 結(jié)論結(jié)論作為單獨一章排列,但不加章號。結(jié)論是對整個論文主要成果的歸納,要突出設(shè)計(論文)的創(chuàng)新點,以簡練的文字對

41、論文的主要工作進行評價,一般為4001 000字。1.5 參考文獻參考文獻是論文不可缺少的組成部分,它反映了論文的取材來源和廣博程度。論文中要注重引用近期發(fā)表的與論文工作直接有關(guān)的學(xué)術(shù)期刊類文獻。對理工類論文,參考文獻數(shù)量一般應(yīng)在15篇以上,其中學(xué)術(shù)期刊類文獻不少于8篇,外文文獻不少于3篇;對文科類、管理類論文,參考文獻數(shù)量一般為1020篇,其中學(xué)術(shù)期刊類文獻不少于8篇,外文文獻不少于3篇。在論文正文中必須有參考文獻的編號,參考文獻的序號應(yīng)按在正文中出現(xiàn)的順序排列。產(chǎn)品說明書、各類標準、各種報紙上刊登的文章及未公開發(fā)表的研究報告(著名的內(nèi)部報告如PB、AD報告及著名大公司的企業(yè)技術(shù)報告等除外)不宜做為參考文獻引用。但對于工程設(shè)計類論文,各種標準、規(guī)范和手冊可作為參考文獻。引用網(wǎng)上參考文獻時,應(yīng)注明該文獻的準確網(wǎng)頁地址,網(wǎng)上參考文獻不包含在上述規(guī)定的文獻數(shù)量之內(nèi)。1.6 致謝對導(dǎo)師和給予指導(dǎo)或協(xié)助完成論文工作的組織和個人表示感謝。內(nèi)容應(yīng)簡潔明了、實事求是,避免俗套。1.7 附錄如開題報告、文獻綜述、外文譯文及外文文獻復(fù)印件、公式的推導(dǎo)、程序流程圖、圖紙、數(shù)據(jù)表格等有些不宜放在正文中,但有參考價值的內(nèi)容可編入論文的附錄中。2、論文書寫規(guī)定2.1 論文正文字數(shù)理工類 論文正文字數(shù)不少于20 000字。文管類 論文正文字數(shù)12 00020 000字。其中漢語言文

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!