您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页EDA设计24小时时钟

EDA设计24小时时钟

来源:化拓教育网
计算机与信息技术学院综合性实验报告

专业:通信工程 年级/班级: 08级 2010—2011学年第二学期 课程名称 EDA技术 指导教师 xxx 本组成员 xxxx 学号姓名 计科楼111 2011年5月24日 实验地点 实验时间 计科楼503 8:00-11:50 项目名称 24小时时钟 实验类型 综合性 一、实验目的 1.掌握EDA的设计流程和Verilog HDL; 2.掌握计数器是实现方法;

3.设计一个24小时的时钟,具有开始、暂停、清零等功能。 二、实验仪器或设备

装Quartue II 5.0软件的微机一台 三、总体设计(设计原理、设计方案及流程等) (一) 设计原理:

1.对于一个矩形脉冲信号,如果在其上升沿计数一次,就可以编写代码对其脉冲个数进行计数。

2.要设置一个时钟,要考虑到时钟的时、分、秒之间的进制关系。 3.可以将时、分、秒分别用8位二进制码来表示,高四位为它们的十位,低四位为它们的个位。

4.考虑到要让输出显示为十进制的格式,可以让低四位位从0计到9时,高四位加1。

5.由于时是24进制,可以设置当时间到23时59分59秒时,直接给时、分、秒赋值为0。

6.可以控制时钟的暂停、开始,可在秒进行加1之前先判断控制信号rst是0还是1。当rst为0时,时钟暂停;当rst为1时,时钟接着开始计时。

7.可以设置一个清零信号clr。当clr为0时,执行上述的操作;当clr为1时,给时、分、秒赋值为0。 (二)设计方案及流程图 1.设计方案

(1)判断清零信号clr是否为0。如果为0,开始计数,如果为1,给时、分、秒赋值为0。

(2)在计时过程中,首先要判断控制信号rst是否1,为1时秒才加1,否则秒保持不变。

2.流程图(见下页)

四、实验步骤(包括主要步骤、代码分析等) (一)主要步骤

1.打开Quartue II 5.0集成调试软件

2.单击“File”-“New” -“Verilog HDL File”,新建一个Verilog HDL文件,命名为“clock.v”。

3.新建工程,命名为“clock”,进行“编译”。

4.编译无误后,进行波形仿真。选“File”-“New”-“Other File”-“Vector Waveform File”新建一个波形仿真文件,根据需要添加clk、rst、clr、hour、min、sec的波形,对输入波形设置后,进行仿真。 5.观察波形图,分析实验结果 (二)主要代码分析

if(!clr) 当清零信号为0是执行一下操作 if((hour==8'h23)&(min==8'h59)&(sec==8'h59)) 当时间为23时59分59秒

时执行下列操作

begin hour<=0; sec<=0; min<=0; end else

if((min==8'h59)&(sec==8'h59)) 当时间为59分59秒时执行下列操作 begin min<=0; sec<=0;

if((hour[3:0]==4'b1001)) 当时的个位为9时执行下列操作 begin hour[3:0]<=4'b0000; hour[7:4]<=hour[7:4]+1; end else hour[3:0]<=hour[3:0]+1; end

else 当分和秒不为59分59秒时执行下列操作 if((sec==8'h59)) 当秒为59时执行下列操作 begin sec<=0;

if((min[3:0]==4'b1001))

begin min[3:0]<=4'b0000; min[7:4]<=min[7:4]+1; end else min[3:0]<=min[3:0]+1;

end

else 当秒不为59时执行下列操作 begin

if((sec[3:0]==4'b1001))

begin sec[3:0]<=4'b0000; sec[7:4]<=sec[7:4]+1; end else

if(rst) 当暂停信号为1时,执行下列操作 begin sec[3:0]<=sec[3:0]+1; end

else 当暂停信号为0时,执行下列操作 sec[3:0]<=sec[3:0]; end

else 当清零信号为1时,执行下列操作 begin hour<=0; min<=0; sec<=0; end 五、结果分析与总结

通过此次实验,我掌握了计数器的实现方法,可以熟练运用Quartue II 5.0的Verilog HDL平台,并设计一个24小时时钟,编程所需要的功能。 六、附录

(一)实验结果

(二)源程序 /*信号定义:

clk: 时钟信号 hour: 时 min: 分 sec: 秒

rst: 为0时暂停,为1时开始 clr: 为1时清零 **/

module clock(clk,hour,min,sec,rst,clr); input clk,clr,rst;

output[7:0] hour,min,sec; reg[7:0] hour,min,sec; always @(posedge clk) if(!clr)

if((hour==8'h23)&(min==8'h59)&(sec==8'h59)) begin hour<=0; sec<=0; min<=0; end else

if((min==8'h59)&(sec==8'h59)) begin

min<=0; sec<=0;

if((hour[3:0]==4'b1001)) begin

hour[3:0]<=4'b0000; hour[7:4]<=hour[7:4]+1; end else

hour[3:0]<=hour[3:0]+1; end else

if((sec==8'h59)) begin sec<=0;

if((min[3:0]==4'b1001)) begin

min[3:0]<=4'b0000; min[7:4]<=min[7:4]+1; end else

min[3:0]<=min[3:0]+1; end else begin

if((sec[3:0]==4'b1001)) begin

sec[3:0]<=4'b0000; sec[7:4]<=sec[7:4]+1; end else

if(rst) begin

sec[3:0]<=sec[3:0]+1; end else

sec[3:0]<=sec[3:0]; end else begin

hour<=0; min<=0; sec<=0; end endmodule

教师签名:

年 月 日

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务