收藏 分享(赏)

基于VHDL的多功能数字钟设计报告.docx

上传人:HR专家 文档编号:12109158 上传时间:2021-09-09 格式:DOCX 页数:21 大小:601.83KB
下载 相关 举报
基于VHDL的多功能数字钟设计报告.docx_第1页
第1页 / 共21页
基于VHDL的多功能数字钟设计报告.docx_第2页
第2页 / 共21页
基于VHDL的多功能数字钟设计报告.docx_第3页
第3页 / 共21页
基于VHDL的多功能数字钟设计报告.docx_第4页
第4页 / 共21页
基于VHDL的多功能数字钟设计报告.docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、基于VHDL的多功能数字钟设计报告作者:日期:基于VHDL的多功能数字钟设计报告0212 15 班卫时章一、设计要求1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能 2、设计精度要求为1秒。二、设计环境:Q u a rt u s II三、系统功能描述1、系统输入:时钟信号clk采用5 0MHz;系统状态及较时、定时转换的控 制信号为k、se t ,校时复位信号为rese t,均由按键信号产生。2、系统输出:LED显示输出;蜂鸣器声音信号输出。3、多功能数字电子钟系统功能的具体描述如下:(一)计时:正常工作状态下,每日按2 4 h计时制计时并显示,蜂鸣器无声,逢整点 报时。(二)

2、校时:在计时显示状态下,按下“ k”键,进入“小时”待校准状态,若此时 按下“set”键,小时开始校准;之后按下“k”键则进入“分”待校准状态;继续 按下“k”键则进入“秒”待复零状态;再次按下“k”键数码管显示闹钟时间, 并进入闹钟“小时”待校准状态;再次按下“k”键则进入闹钟“分”待校准状 态;若再按下“ k”键恢复到正常计时显示状态。若校时过程中按下“re set ” 键,则系统恢复到正常计数状态。(1) “小时”校准状态:在“小时”校准状态下,显示“小时”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。(2) “分”校准状态:在“分”校准状态下,显示“分”的数码管以

3、2Hz闪烁,并 按下“ s e t”键时以2Hz的频率递增计数。(3) “秒”校准状态:在“秒复零”状态下,显示“秒”的数码管以 2Hz闪烁,并 以1Hz的频率递增计数。闹钟“小时”校准状态:在闹钟“小时”校准状态下,显示“小时”的数码管 以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。(5 )闹钟“分”校准状态:在闹钟“分”校准状态下,显示“分”的数码管以2Hz 闪烁,并按下“set”键时以2Hz的频率递增计数。(三)整点报时:蜂鸣器在“5 9”分钟的第“51”、“53”、“55”、“57”秒发频率 为5 00Hz的低音,在“59”分钟的第“ 59”秒发频率为100 0 Hz的高音

4、,结 束时为整点。(四)显示:采用扫描显示方式驱动4个LED数码管显示小时、分,秒由两组led 灯以4位BCD 码显示。(五)闹钟:闹钟定时时间到,蜂鸣器发出频率为1000Hz的高音,持续时间为60秒。四、各个模块分析说明1、分频器模块(freq . vhd)(1)模块说明:输入一个频率为50M Hz的C L K,利用计数器分出1KHz 的 q 1KHz , 5 00Hz 的 q5 0 0Hz,2Hz 的 q2Hz 和 1Hz 的 q1 H z。(2)源程序:1 ibr a ry i eee;use ieee.s t d _l o gic_ 1 1 64.all;use ieee. std_l

5、 o g i c_un signed.all;entity fre q isport (C L K: in st d_l o g i c ;输入时钟信号qlKHz:buffer std_l ogic;q500 Hz: buf f e r st d_ 1 o gic ;q2Hz: buffe r st d_ 1 og i c ;q 1Hz: out st d_ l o gi c ); e nd freq;a r chi t ect ure bhv of freq is begi nP1KHZ:process (C L K)v aria b le co ut: integer:= 0 ; begi

6、ni f CLKevent and CLK = 1 t h encou t:=co u t+ 1;-每来个时钟上升沿时 cout开始计数if cout = 2 50 00 then q 1KHz=0; 当 cout= 2 5000 时,q1KH z 输 出“0”elsif cout 50000 then q1K Hz = / 1;当 25 0 00V cout=50O 00 时,q1K Hzelse cout:=0;输出 “1”,完成 1KHz 频率输出 e n d if;end i f; end p r oce s s ;P50O HZ: pro cess (q1KHz)q 1 K H z

7、作为输入信号,分出q500H z variab 1 e c o ut: i nteger:= 0;b e gi ni f q1KHz, eventa nd q1KHz=1 th e ncou t:= c ou t+ 1;if cout = 1 t h 6 n q 5 0 0Hz=,0;-二分频elsi f c o ut= 2 then co ut: = 0; q 500Hz=,1;e nd if;end if;en d pro c e s s ;P2 H Z: pro cess (q5 0 0Hz) var i able cout: inte ger :=0;beginthenif q500H

8、z/ eve nt and q 5 00Hz = co ut:= c out+ 1 ;if c o ut=125 then q2Hz =/ 0;elsif c out2 5 0 then q2 H z =1; el s e cout:=0;e nd if;end i f;end pr ocess;P1HZ: proc es s(q 2H z )v ariable c o ut:i n t eger:=0;beg i ni f q2H z event and q2 Hz=1 then co ut:=c o u t+1;i f cout= 1 then q1Hz=0/ ;el sif c o ut

9、=2 the n c out: = 0; q1Hz =1;end i f;e nd if;end p ro c e s s;end b hv;(3)模块图:2、控制器模块(con t ra 1 .vh d)(1)模块说明:输入端口 k, set键来控制6个状态,这六个状态分别是:显示计时时间状态,调计时的时、分、秒的3个状态,调闹铃的时、分的3个状态,reset键是复位键,用来回到显示计时时间的状态。(3)模块图:end pro cess;en d ar ch ite cture one;仿真波形图:-若s=0 ,y输出a,反之输出b(3)模块图:=-controli dkcth?ilccmr

10、;_Hteh-rfeMtcbhcbm flashh -f ! fla&hnn rZ: =ir=f:3、二选一模块(mux21 a . v hd)源程序:library ieee;use ieee s td_l o g i c _1164.all;use ieee.s td_l o g ic_unsig n ed. a l 1 ;entity mux 21a isp o rt (a, b, s:i n bit;y: o u t b it);e nd entity mux21 a ;a rch ite c ture one of mux2 1 a is beg i n process(a,b s)

11、 b e gi ni f s=0 the n y=a;else y=b;e nd if;rassLk rest d 1就54、计时模块a.秒计时(second .vh d )(1 )仿真波形图: 弓 12”7 M uc LO.E4 ue 12. & ut 19 3& uc II 92 vc 出 4as 23I1IIIn.n n.n n.n.nn n r.n 匚rLiirLrLrUWWLrtrLnjirjirLnrinjTrumulnrinrLnj;j. n_ ; 1_Li_L _L_LL_d_LJ:;:工:LLi _事函0常然府底里窄奚B强奏E督霓寅5荚变亮为奥支赛荚奖P奏功英GGCTGTG戏

12、门司 丁 t 口! rr jrrrTrm之 TTngiTFTb.分计时(mi n u te . vhd)(1 )仿真波形图:模块图:c.小时计时(h o ur. v hd)(1)仿真波形图:0 ps 5.京 g 10.24 us 15.36 z Ek 4B g 均.3 g 30. 7 us :5. C4 ill4工*rI1IIjmwirtruwjuiirLninnnrLnjirLrLrutrwirWinnHnnnjinjruinLnnKDE电运为叵)(工史邕区区恒EIDjI i 仆:I I j I f I j j i 机 i 二 111gi j X j j i j I i 1 工. i i 八

13、 il_ 1:inst7=e .闹钟小时计时(c n t h 2 4b .vhd)d.闹钟分计时(cntm60b. v hd)(1 )仿真波形图:P 37 s S.弭 g白.坤gll.qs 43.4.印4 瓜4Tq 也覃金 之1 一卒心岂L甲 gI以 hrLmnrmjirLrLrLnrLnrLrirLrijiirLmrimuuimtmii如rmtmmrtmu5 | J 一 ! ! !一*1:S 百 14L ;口 i1 :- -攵: :1 : :(2)模块图:Jlltl mi mi niiBiiiiaiaHiiiaBiiHiiaiiiii in=cfitmBQbI1_I -w El4Op 3*:

14、-dk 如中,-i-=5、闹钟比较模块(compare. vhd)(1)模块说明:比较正常计数时间与闹钟定时时间是否相等,若相等,c omp out输出“1”,反之输出“0”。(2)仿真波形图:,十I a 田 田 国 田 E 田MiObhlthO thitmOtmlcomp outIP 国OP 第 125 US1 , S2 T1ST2.5S us主”53.驾 U54. 4S us116.35 m012iiiinibiuQri_0|III|1IIIII2 !111 :6 X 7 X & X 9 ;(oXi X a )(5X&)(Rill S=.-一 一 .,IIIiiii3DD1111I1J -

15、 111i1B11911(3)模块图:6、报时模块(bell. v hd)模块说明:该模块既实现了整点报时的功能,又实现了闹铃的功能,蜂鸣器通过 所选频率的不同,而发出不同的声音。仿真波形图:(3 )模块图:7、控制显示模块(show_c on. v h d)(1)模块说明:该模块加了数码管既可以显示正常时间,又可以显示闹钟时间 的功能;调时过程的定时闪烁功能也在此模块中真正实现。源程序:l i b rary ieee;u se i eee. std_l ogic_1164 .all;useieee .std_ lo g ic_u n si g ned.a ll;en tit y s how_

16、con isport (th 1 , t m 1,ts 1 :in s td_logic_v e c t or( 7 d ownto 4);t h0,tm 0 ,ts0:in std_lo g ic_ v e ctor(3 downto 0);bh1,bm1:in std_logic_vector( 7 downto 4 );b h 0,bm 0 :in st d _ 1 ogic_ v e ct o r(3 d o wnt o 0);sec1, min1,h1: out s t d_ log i c_vector (7 down to 4 );secO, mi n 0, h 0 : out

17、s td_ 1 ogic_v e ct o r( 3 dow n t o 0 );q2Hz, fl a shs, fla s h h, f 1 as hm, s el_sh ow: i n std_lo gic); end sho w_co n ;archit e ctu r e r t l of s h ow_co ni sbeginp r ocess (t h 1 ,tm1,ts1, t h0, tm0,t s 0 ,bh1,bm 1 ,bh 0 ,bm0 , q 2Hz,fla s hs,fl a sh h,flashm,se l_ s how)b eg i nif se 1 _sho

18、w=0thenif ( flashh=1an d q 2Hz =,1)thenh1=11 1 1; h 0= 1 111;显示小时数码管以2Hz闪烁min1= t m 1 ;mi n 0 =tm0;sec1=ts1;s ecO = t s0;elsif (fl ash m= 1 7 and q2H 1) t henh1= t h1;h0 = th0;mi n 1=1111 ;mi n 0 =1111;se c1=ts1; s ecO = ts0;e 1 s i f (flashs=1a nd q 2 Hz= / 1 ) t h enh 1 =th1;h0=th 0 ;mi n 1= t m 1

19、 ;mi n 0=tm0;sec1= 111 1 ;se c 0=11 1 1 elseh1=th1;h0 = th 0;min1=tm1; m i n 0 =tm 0 ;secl = t s 1; s e c 0= t s 0;end if;e lsif se 1 _sho w=7 1t hen-若 sel_sh ow为 1 ,数码管显示闹钟时间i f( f lashh= / 1 and q2Hz=()thenhl =1111;h0=u 1111;mi n 1= b m1;m in0= b m0;sec1= 0 0 00;sec0= 0 00 0 ;e lsif ( f la s h m=/

20、 1 a nd q 2Hz=1)then h1=bh1;h0=bh 0 ;minl= 1111;min0=111 1 ;secl =0000;sec0= 0 000;elseh 1 = b h 1; h0=bh0;min1=bm1; m in0=bm0;sec1=0O 0 0;secO = 0000;end if ;end end r tend if;p r ocess;l;(3)模块图:才处CCXuseel 7 ,41 ITW1V-.*Ill7,4 会端工划 rriO(4.可W(J 3一廿4: 一 E? M -ts17 4) L由02则一 tmO(工切-bhip一i舟0口.飞 M bnOJB

21、. W- 0版:X咕1- ftotih:sei showirsf8、动态扫描显示模块(scan _led.vh d )(1)模块说明:由4组输入信号和输启信号进而实现了时钟时、分的动态显示。(2)源程序:li b r a r y ieee ;use ieee.std _ 1 og i c_1164. a ll;use ieee.st(d_log i c_unsi gned .all;6 ntit y sc a n_ 1 e d is p o rt (clk1:in std_lo g i c ;h0:in std_ 1 ogic_vector(3 d o wnto 0 );h1:in st d_

22、l o g i c _ vector(7 down t o 4);min0:in std_l o gic_vector( 3 dow nto 0 );min1: in st d_logic_vector(7 down to 4 );ML:ou t std_l ogic _vector (7 down t o 0);M H :o u t std _log i c_vecto r (7 dow n to 0);HL:o u t std_logi c _v e c t or(7 down t o 0);H H:out std_logic_ v e cto r (7 dow nto 0 ) );en

23、d sc a n_led;a r chitec t ure on e of sc a n_le d i ss i g n al cn t 4:std_log ic_vector (1 downto 0);si g n a 1 a: std_ 1 o gic_vect or(3 down to 0);b e g inpl: pro ce ss(clk 1 )beginif clk1event and clk 1 =1 thencn t 4= c nt4 + 1 ;if c nt4 =3 thenc n t4 case mi n 0 i swhen 0 00 0 =M LMLMLML M LM L

24、MLM L ML M L NULL;end cas e;wh e n 01 =ca s e min1 iswhen 0000H =MH MHMHMHMHM HM HMHMHMHNULL;e nd casq when 10= c ase h 0 iswhen 0 0 00=H L HLHL HLHLHL H LHL H LHLNU LL ;end c ase;when 11 = c ase h1 i swhen 000 0 = H H HHH H HH H H hh H H HHHHHH NUL L ; end c ase;w hen o the r s =null;end case;end p

25、roces s p 2;en d one;五、端口设定k : b u t ton 2 ,se t : b u t tonl , res et : butt o n0 ;Bel 1 :SW1用于开关蜂鸣器;i启Hum 21- F :/Sludiereri/1 tDA/tigtta Idee. k/Digi talclock - DsgildlLksck -二口in PlanneiJR:|Edr xiQBlgrm irjjjKlg:DM*,REF5*s3 HHr-hmMdnG4MNa油品心routE*j-BlJMiL5 i:drtdrout,最117Bb.生小匕oumt/lnsL&Ui7nuZ.5

26、 B烟台间FMG37njn:泻.一U中EUm.ois才口 TJE2.5 . (drtii-;QlW!FiTJ 31日方W3 加3”3 HHJOLJutFJN B39TBNflL(*idl:Q3 hhH、T.I-再N/197WJNB凡产”:LOC* HH|CLtputm_F157B7_FJEL51. (drtii-:LIO HHC(XkjEkn aii7Bffna2aH用n已Ob训mjas7RU工2,5 -阳WQ :阻力FINJjfi7口”?$ Mrtwiq如邛班E.3饰0TJy1孔海:仇帮jtF7V157日了7.5 -mtwBIJf2J tfeJrJd网78,Jit.E .*小XL4OH;国口

27、;0HFTJJJ77盯虺,y 4 - 1H,:So卜。C7J *177Et NL2.5 - t*七卅: MtInxffHN Ql.lt Idrtdf *?dPIFtHN *31r i7.51.加琳政g 小同FUU_B21SL_U卫凤加,叱4LE判三:OLlpuE小C21B l FHZ.5 1.13 V堀 0判IOj4MjkHN Cl鼻,dMiirNtLB性由蚂44o 口如邛ubpi地r1Bl_Ni7.5 B年彳dH朽c* a:.dmt1BUM2,5- (cfe-dl?:枪W沏ObiMr-.j_;i!,5. tfc-djy47六、顶层电路图七、心得体会此次的数字钟设计重在于按键的控制和各个模块代

28、码的编写,虽然能把键盘 接口和各个模块的代码编写出来,并能正常显示 ,但对于各个模块的优化设计还 有一定的缺陷和不足,比如对按键消抖等细节处并未作出优化。经过此次数字钟的设计,我确实从中学到很多的东西。首先,通过 VHDL硬 件语言的学习,我充分认识到了功能模块如何用语言实现 ,让我初步了解到了一 个数字电路用硬件语言设计的方式和设计思想。其次,也让我深深地体会到实践 的重要性,起初我学V HDL语言的时候,只是学得书本上的知识,经过这次课程设 计,通过对模块的语言实现,对于 VHD L语言我有了更深的认识。而且在程序错 误的发现和改正的过程中,我得到了更多的收获,也确实让我进步了不少。再次, 当我遇到一些问题的时候,请教老师,和同学们一起讨论,令我受益颇多!最后, 这个多功能数字电子钟是自我创造与吸取借鉴共同作用的产物,是自我努力的结果。这让我对数字电路的设计充满了信心。虽然课程设计已经结束,但这并不代 表着我已经真正掌握了 VH DL语言,仍需继续学习!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报