12小时数字钟电路设计

上传人:壹****1 文档编号:455380790 上传时间:2023-01-10 格式:DOC 页数:16 大小:206.50KB
返回 下载 相关 举报
12小时数字钟电路设计_第1页
第1页 / 共16页
12小时数字钟电路设计_第2页
第2页 / 共16页
12小时数字钟电路设计_第3页
第3页 / 共16页
12小时数字钟电路设计_第4页
第4页 / 共16页
12小时数字钟电路设计_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《12小时数字钟电路设计》由会员分享,可在线阅读,更多相关《12小时数字钟电路设计(16页珍藏版)》请在金锄头文库上搜索。

1、word航空航天大学 课 程 设 计 报 告课程设计名称:计算机组成原理课程设计课程设计题目:12小时数字钟电路设计与实现院系:计算机学院专 业:计算机科学与技术班 级:34010104学 号:64姓 名:指导教师:胡光元完成日期:2016 年 1月 13 日 / 目 录第1章 总体设计方案21.1 设计原理21.2 设计思路21.3 设计环境2第2章 详细设计方案22.1 算法与程序的设计与实现32.2 流程图的设计与实现4第3章程序调试与结果测试7 程序调试7列举出调试过程中存在的问题73.2 程序测试与结果分析7参考文献9附 录源代码10第1章 总体设计方案1.1 设计原理通过Veril

2、og语言,编写12小时数字钟电路设计与实现的Verilog程序,一般的做法是底层文件用verilog写代码表示,顶层用写的代码生成的原理图文件组成,最后在加上输入输出端口。采用自上而下的方法,顶层设计采用原理图设计输入的方式。1.2 设计思路1.实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此根底上增加上,下午显示。2.手动校准。按动方式键,将电路置于校时状态,如此计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。1.3 设计环境1硬件环境伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由COP200

3、0集成调试软件COP2000 集成开发环境是为.2EDA环境是Xilinx公司的可编程期间.第2章 详细设计方案2.1 算法与程序的设计与实现1秒钟计时器由于秒计数器为60进制计数器,所以以秒计数器作为示例说明其编程思想。其中秒计数器模块在程序中为always (posedge clk)的程序段,由上面分析得秒计数器由一个十进制计数器与一个六进制计数器组成,程序中有second0表示秒计数器低位即10进制计数器,second1表示秒计数器的高位为一个六进制计数器。clk为时钟信号,时钟周期1/60S,当低位second0满10时,自动进一位,即second1自动进位。Second0,secon

4、d1位宽均为4位reg型变量。(2) 分钟钟计时器 分钟计时器由于秒计数器为12 进制计数器,示例说明其编程思想。其中秒计数器模块在程序中为always (posedge mod )的程序段,由分析得小时计数器由一个二进制计数器与一个三进制计数器组成,程序中有hour0表示秒计数器低位即二进制计数器,hour1表示秒计数器的高位为一个三进制计数器。Mod为时钟信号,来自分钟计时模块的mod,时钟周期360S,当低位hour0满3时,自动进一位,即hour1自动进位。hour1,hour1位宽均为4位reg型变量。(3) 小时计时器小时计时器同秒钟计时器其中小时计数器模块在程序中为always

5、(posedge tun)的程序段,分钟计时器的低位、高位分别由minute0、minute1表示,但分钟计时器模块的敏感信号为“posedge tun时钟信号,“tun的产生自秒钟计时器,可知其产生的时钟信号为1S,每触发一次如此分钟计数器计数加1一次,同时产生mod的时钟信号,同时由于做的是12小时数字钟电路,所有zox表示的是显示上下午,当小时计数器满12时zox变化一次,其中zox=0表示的是上午,zox=1表示的是下午。(4) 时间设置时间设置模块实现的功能为通过按键调节可以对当前时间进展手动控制。其主要是在时间设置使能端有效地情况下通过SW1和i_SW2两个按键对数字钟的小时和分钟

6、数进展调节。Disp_drive为设置中的显示控制,即通过SW1对位的调整,Disp_drive随之变化。i_SW2为对每一位上的数字在其围进展加1调节。Disp_drive取值000、001、010和011分别对应hour1、hour0、minute1和minute0的设置,其中的加1设置在各个计时器模块,这样做的原因是防止两个“always进程对同一个变量赋值发生错误。5控制显示模块控制显示模块在整个数字钟的设计中起着非常重要的作用。它的作用是将时间等数据用数码管显示的控制和数据传输模块,包括数据的传输以与BCD码译码等。通过几个控制使能端将其不同功能时的时间在数码管上显示出来。本模块中端

7、口定义比拟多,下面是其所对应的功能。clk:时间自动模式工作使能信号;Timeset_EN:时间设置使能信号;Time_disp_select:时间显示位选信号;Disp_select:显示位选信号输出;程序设计中,各使能端信号为1表示执行该功能,以时间自动工作模式使能信号有效为例说明,当Time_EN为1时,首先将时间显示位选信号isp_select的值赋给显示位选信号disp_select输出,定义time_disp_select的状态一共有6个,分别为100000、010000、001000、000100、000010和000001,其在各状态下分别依次表示将、hour0、hour1、m

8、inute0、minute1、second0和second1的值赋给data,用case语句来实现,其实现语句如下:always(clk,TimeSet_EN,time_disp_select,disp_select,hour1,hour0,minute1,minute0,second1,second0) begin /时钟,秒表显示 if(clk | TimeSet_EN) = 1b1) begindisp_select = time_disp_select;case(time_disp_select)6b100000: Data = hour1; 6b010000: Data = hour

9、0; 6b001000: Data = minute1; 6b000100: Data = minute0; 6b000010: Data = second1; 6b000001: Data = second0;default: Data = 4b0; endcase end显示译码数据段主要程序如下:case(Data) 4b0000: disp_data=7b1111110; 4b0001: disp_data=7b0110000; 4b0010: disp_data=7b1101101; 4b0011: disp_data=7b1111001; 4b0100: disp_data=7b0

10、110011; 4b0101: disp_data=7b1011011; 4b0110: disp_data=7b1011111; 4b0111: disp_data=7b1110000; 4b1000: disp_data=7b1111111; 4b1001: disp_data=7b1111011; default: disp_data=7b0; endcase 显示译码程序说明了0到9十个数在7段数码管中所对应的值,在case语句里面最重要的是一定不能忘了default,否如此仿真会发生所不希望看到的结果。如下图13为闹钟设置使能有效时仿真结果。2.2 流程图的设计与实现数字钟主体小时计

11、数器分计数器秒计数器24进制计数器60进制计数器6进制计数器10进制计数器Zox=0(上午)Zox=1(下午)2. 12小时数字时钟整体12小时数字钟显 示时钟时间数值 时间的校验第3章程序调试与结果测试 程序调试1、 Error (10170): Verilog HDL syntax error at a.v(65) near text always; expecting end 忘记在begin之后加end完毕语2、 Error (10161): Verilog HDL error at a.v(165): object Dat is not declared 在程序开始Dat忘记标记和定

12、义3、 Error (10170): Verilog HDL syntax error at Time.v(49) near text else; expecting endmodule 程序后面没加endmodule4、 Error (10170): Verilog HDL syntax error at Time.v(56) near text =; expecting ., or an identifier 把“=改为“=3.2 程序测试与结果分析1. 从图中可以看出当second0满1010即10时被置为0000,而second1加1,满足秒的低位满十进一位的设置。2.从图中可以看出,

13、在第一个时钟周期,时间显示位选信号time_disp_select的值为000000,此时应执行case语句的default,Data的值为0;在第二个时钟周期,time_disp_select的值为000001,此时对应其最后一种状态,将second0的值赋给Data,即Data的值为0110,从图中看,仿真结果正确,disp_data表示的是将当前数据译码显示之后七段数码管的显示,所以在第一个周期值为1111110,表示值为0,与Data所表示的数对应。依次类推,可将Data的值全部表示出来。3.从图中可以看出,当只有Timeset_EN:时间设置使能信号有效时,其七段数码管显示结果,与数

14、字钟自动工作使能端的区别为闹钟设置使能端有效时只需对hour0、hour1、minute0和minute1进展设置,由于其同样需要将值赋给disp_select,为了统一期间,其值也设为6位,其4个状态分别为100000、010000、001000和000100。其他与自动工作模式一样。参考文献HDL实用教程.:电子科技大学,19992齐洪喜,陆颖.VHDL电路设计M.:清华大学,20043江国强,哲英.EDA技术与应用M.:电子工业,20044雷伏容.VHDL电路设计M.:清华大学,20065曾繁泰,美金.VHDL程序设计M.:清华大学,20006松,王国栋.VHDL实用教程.:电子科技大学,20007雅兴.FPGA原理、设计与应用.:大学,19988俊硕,景林,金萍.基于FPGA的直流电机PWM控制器设计J.微电机2009109卢杰,赖毅.VHDL与数字电路设计.:科学,200110昌凡,龙永红,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号