还剩4页未读,继续阅读
文本内容:
数字逻辑课程设计实验报告——实现整点报时,闹钟的数字钟••JSJ11姓名学号XXX XX7年月2012618日一.实验目的
1.学会应用数字系统设计方法进行电路设计;
2.进一步提高Quarlus II软件的开发应用能力;
3.培养学生书写综合实验报告的能力二.实验要求
1.根据实验任务,选择最佳设计方案,综合运用Quartus II软件的各种设计方法设计出层次分明、结构清楚、电路优化、VHDL语言描述简洁的完整设计文件通过仿真直至下载来验证设计的正确性三.设计任务及要求
1.能进行正常的时、分、秒计时功能
2.能利用实验板上的按键实现校时,校分及清零功能
3.能利用实验板上的扬声器做整点报时
4.闹钟功能
5.在Quartus II中采用层次化设计方法进行设计
6.完成全部电路设计后在实验板上下载,验证设计课题的正确性四.设计方案
(一).顶层图
(1)按下“SA”键时,计时器迅速递增,并按24小时循环,计满23小时后再回00;
(2)按下“SB”键时,计时器迅速递增,并按60分钟循环,计满59分钟后再回00;但不向高位进位
(3)按下“SC”键后,秒清零
(4)计时(24进制计数器),计分(60进制计数器)、计秒(60进制计数器)模块由10进制计数器
(74160)连接构成闹钟部分K1控制设置时开关,K2控制设置分开关,s4,s5分别设置闹钟时和分输出部分Speaker连扬声器,其它输出连八段数码管count24qhp..OJ-.二十四进制模块ckjh
3..O]21muxM
7..4]r,,1用于时钟的二十四进制原理图u count24mst3RN_A13加7MJLT1FLEXER说明二十四进制计数器在十进制计数器此处选count60二一名[QUTPUT3面T7416Q上改变21mux ckjh
3..O]cfcrjh7„4]tc loRiraiff•nsM[QUIFUIT、38gl5面8MJLTIFLEXERPINL5|P1NK4|[QUTPUTI------------5seg[5!^TLT|*L4|coint603HNG4-elkjh[
3..O]pUTFUT|--------------8则1]-clrjh
7..4]忙mt9freqdividerAND2-elkhz512hz64Dhz4hz1insti6AND2=Dinfit18AND2Dinsl20copm-q con■ih!
7..O]-jm
7..0j・nh
7..0j-nm[
7..O]inst132count60|P»NB12-T刘
3..0]-elkjhp..4Jtch7G4«St19CLRNinst wiso7416074160LDN AB CD-o LDNENTENPA jh
[4]m-jh[O]W CLRNQAB QA雨jh[6FQBC QBnWQC XDQC—XQDENT QDRCOENP RCOCLRN-0CLK CLKins”COUNTERCOUNTERinstelkOUTPUT|jh[
3..O]OUTPUT\jh[
7..4]OUTPUT[tC2用于闹钟的二十四进制原理图:2count24GND7416074160LDN-0-O LDNAAjh
[4]jhO]B QA义GND BQA jh[5jC QBNiTWCQB jh[6T-D QCD QC-X ENTQDXEMT QDENPRCOXENP RCOCLRNCLRN-0-OCLKvcc CLKinstlCOUNTERCOUNTERinstelkOUTPUT jh[
3..O]OUTPUT Jh[
7..4]OUTPUTtc注在前图的基础上将EP,ET改为输入端
(三)•六十进制原理图count60(说明也是在十进制计数器(此处选7416Q上改变)此图用于时钟计时,对于闹钟的,ch接高电平,将ep,e政为输入端74160
(四)・分频模块fioi_divider说明:从频率为1KHz74160的时钟信号里分出,512Hz,64Hz,4Hz,1Hz LDN-o LDNAAjh
[4]jh[5j-jh[O]WB QABQA m-m-Xjhf2]^C QBCQB而哥XD QCDQCENT QDEMTQD、741617416174161ENPRCO--C ENPRCO」T卬!-----------hz512-C LDNhz51-o CLRNLDN ACLRNAR CABQAC QCBLKCLKC QBDQCDQCins COUNTERB^T QDBMTQDinst COUNTERBMPR881P RCOL-CCLRNCLRN-o-KJCLKCLKCOUhTTERinstiCOUNTER inst4COUMTERGND
(五)动态扫描模块ndtsnclr、OUTPUT|jh[
3..O]说明s傕显示时钟与闹钟设置之间切换、OUTPUTjh[
7..4]LERARY IEEE;plTRlT|yhz64-K-X为use eeestd bgr1164al}6—X—、KOUTPUT tcusefeeestiLJ^giL_ynsjgnedal];ITFlIT4-------hzlENTITY ndtsnISPORTclk,sf in std^Dgi;h,m,^nh,nm:in stdbgiz vectorC downto Q;seg7outoutstdjDgr_yector6downto Q;seibuffer std_bgk_yector2downto Q;END ndtsn;ARCH ITECTUREbehavbrOF ndtsnISsgnalkey std_bgc_yector Cdown toQ;BEGINPROCESS ei^variabte dountstd_Jogr_yector2down toQ:=000!BEGINIF fisingedge dthenIF dount=101then dount=,,000^ELSEdount=dountM;END IF;END IF;seK=dount endprocessPROCESS KeBEGINcasekey iswhen H0000—seg7out^=0111111when0001—seg7outc=0000110卜when,,0010—seg7ouK=,,1011011when0011—seg7ou10011119when,,0100—seg7ouK=,,l1001lO1^when H0101—seg7out^=1101101when0110—seg7out^=,,l111101when0111—seg7ouK=000011when1000—seg7ou tc=11111111when lOOl—seg7ouK=1101111when1010—seg7out^=1110111when1011—seg7outc=11111001when1100—seg7ou01110011when1101—seg7outc=,,10111101^whenH1110—seg7ou11110011when llll—seg7outc=111000J;when otliers=nul}END CASE;END PROCESSPROCESS肥BEGINIF sU6rlHENCASE sellSwhenWO1—key=h Qdown to
④;when Wl1—key=h6down toQ;when n010—key=mdown to4;when key=m6down toQ;when n100—key=s Qdown towhen n101—key=s6downto Q;when ottiers=nuljEND CASE;ELSECASE sellSwhenn000—key=nh Qdownto4;when Wl1—key=nh6downtoQ;whenn010—key=nm Qdownto®;when key=nm6downtoQ;when others=nuljEND CASE;END IF;END PROCESSENDbehavbi;六整点报时模块zdbs说明当时钟分达到59时,秒到50时开始每两秒响一次,频率为512H琴J00时响的频率为1KH4bbiaiy iee^USE feeestd_Jogt_J164alj useieee std_Jogi^_iinsgned aljENTHYzdbs ISP0RTmlyn Jsh,sl hstdjDgic_yector$downto0;sg50Q sglK:out std_Jogi;END zdb§ARCH ITECTUREbehavbr ofzdbs ISbeginsi^0X=lwhen mh=,,0101,,and mi=n1001nand sh^,,0101and^l=,,0000,lor si=,,0010,,or si=,,0100,,or si=n0110,or silOOO先前T;sglK=zlwhenmh=0000uandm1=0000and^^0000,,and0000else0;end behavfo;七比较模块copm即判断时钟是否到了所设定的闹钟时间,若到了,则输出为DLbiaiyuse ieeestd_Jogi^J164alj usefeeestd logicunsigned al]entity copmisportin std_Jogi;jh,jn:in std_bgtjyector Cdown to0;nh,nm:instd_jDgi^_yector Qdown to0;con:outstd_Jog^5end copm;ARCH ITECTUREbehavbr ofcopmE beghcon=rwhen jh=nh andjn=nm andq=/l/elseO;end behavb;五.设计过程中出现的问题L%进制模块和60进制模块仿真时,还差了一位满时就已进位,原因本应采用置数法,用了置零法,解决办法,改过来仿真就对了2时钟和分钟跑的很快,解决办法,去掉原原理图时和分输入端后的非门,原因,机器中的逻辑和原图中在这一部分相反Z在整点报时过程中,分满60后,时不进位,且手动调解时,分过30时,时钟进位,59时又进位一次,满60时再进位解决办法,去掉原理图b输入端的非门,原因,此处的逻辑机器也与原图中相反4扬声器不响,用同学的实验箱试验后发现是扬声器坏了,换了一个后,正常工作,继续实验六.课程设计的体悟在此次课程设计过程中暴露出了自身很多问题对VHDL语言的不熟悉,对译码器原理的不了解致使进度偏慢,折射出了平时学习过程中的诸多问题,但经历了这一过程,学到了很多,对以前知识的缺陷弥补了不少对软件,电路图,VHDL语言也更加熟悉,熟练了此次课程设计很有必要,不仅让我们所学的知识得以实践证明,也对我们以前的知识漏洞进行了弥补,同时对这门课程的理解和兴趣也多了一层。