1、verilog实验十七 数字时钟实验十七 数字时钟一、实验目的设计一个可以计时的数字时钟,其显示时间范围是00:00:0023:59:59,且该时钟具有暂停计时、清零等功能。二、实验器材1、SOPC实验箱2、计算机(装有Quartus II 7.0软件)三、实验预习1、了解时钟设计原理和各主要模块的设计方法。2、提前预习,编写好主模块的verilog程序。四、实验原理一个完整的时钟应由 4部分组成:秒脉冲发生电路、计数部分、译码显示部分和时钟调整部分。1、秒脉冲发生:一个时钟的准确与否主要取决秒脉冲的精确度。可以设计分频电路对系统时钟50MHz进行50000000分频从而得到稳定的1Hz基准信
2、号。定义一个50000000进制的计数器,将系统时钟作为时钟输入引脚clk,进位输出即为分频后的1Hz信号。2、计数部分:应设计1个60进制秒计数器、1个60进制分计数器、1个24进制时计数器用于计时。秒计数器应定义clk(时钟输入)、rst(复位)两个输入引脚,Q3Q0(秒位)、Q7Q4(十秒位)、Co(进位位)9个输出引脚。分、时计数器类似。如需要设置时间可再增加置数控制引脚Set和置数输入引脚d0d7。3、译码显示部分:此模块应定义控制时钟输入、时分秒计数数据输入共25个输入引脚。8位显示码输出(XQ7-XQ0)、6位数码管选通信号(DIG0-DIG5)共12个输出引脚。在时钟信号的控制
3、下轮流选择对时分秒输入信号进行译码输出至XQ7-XQ0,并通过DIG0-DIG5输出相应的选通信号选择数码管。每位显示时间控制在1ms左右。时钟信号可由分频电路引出。五、实验内容1、启动Quartus II建立一个空白工程并命名。2、新建VHDL 源程序文件,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。并生成图形符号文件。代码:module shizhong(CLK,RST,EN,S1,S2,HOURH,HOURL,MINH,MINL,SECH,SECL);input CLK,RST,EN,S1,S2;output3:0 HOURH,HOURL
4、,MINH,MINL,SECH,SECL;reg3:0 SECL,SECH,MINL,MINH,HOURL,HOURH;always (posedge CLK or negedge RST)if(!RST) begin SECL=0;SECH=0;MINL=0;MINH=0;HOURL=0;HOURH=0; end/系统复位else if(EN) /EN为低电平时时钟暂停beginif(!S1) /调节小时begin if(HOURL=9) begin HOURL=0; HOURH=HOURH+1; end else begin if(HOURH=2&HOURL=3) begin HOURL=
5、0;HOURH=0; endelse HOURL=HOURL+1;endendelse if(!S2) /调节分钟beginif(MINL=9)beginMINL=0;if(MINH=5) MINH=0;else MINH=MINH+1;endelse MINL=MINL+1;endelse if(SECL=9) /时钟正常跳动状态beginSECL=0;if(SECH=5)begin SECH=0; if(MINL=9)begin MINL=0; if(MINH=5)begin MINH=0;if(HOURL=9) begin HOURL=0;HOURH=HOURH+1;endelse if
6、(HOURH=2&HOURL=3) begin HOURL=0; HOURH=0;endelse HOURL=HOURL+1;endelse MINH=MINH+1; endelse MINL=MINL+1;endelse SECH=SECH+1;endelse SECL=SECL+1;endelsebeginHOURH=HOURH;HOURL=HOURL;MINH=MINH;MINL=MINL;SECH=SECH; SECL=SECL; endendmodule3、波形仿真验证。正常计数正常调时调分末尾正常跳转清零暂停六、实验小结1、在做实验前应该先充分理解实验原理,并根据原理编写语言。2、编写语言时要在注意语法错误的同时注意逻辑错误。3、实验波形中存在毛刺,是因为存在竞争冒险现象。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1