小时数字钟电路设计课稿.doc
文本预览下载声明
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:计算机组成原理课程设计
课程设计题目:12小时数字钟电路设计与实现
院(系):计算机学院
专 业:计算机科学与技术
班 级学 号:2013040101164
姓 名:
指导教师:胡光元
完成日期:2016 年 1月 13 日
目 录
第1章 总体设计方案 2
1.1 设计原理 2
1.2 设计思路 2
1.3 设计环境 2
第2章 详细设计方案 2
2.1 算法与程序的设计与实现 3
2.2 流程图的设计与实现 4
第3章 程序调试与结果测试 7
3.1 程序调试 7
列举出调试过程中存在的问题 7
3.2 程序测试及结果分析 7
参考文献 9
附 录(源代码) 10
第1章 总体设计方案
设计原理
通过Verilog语言,编写12小时数字钟电路设计与实现的Verilog程序,一般的做法是底层文件用verilog写代码表示,顶层用写的代码生成的原理图文件链接组成,最后在加上输入输出端口正常模式增加上,下午显示。
手动校准。按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1
设计环境
(1)硬件环境
?伟福COP2000型计算机组成原理实验仪
COP2000计算机组成原理实验系统由………
?COP2000集成调试软件
COP2000 集成开发环境是为………….
(2)EDA环境
?Xilinx foundation f3.1设计软件
Xilinx foundation f3.1是Xilinx公司的可编程期间………….
第2章 详细设计方案
2.1 算法与程序的设计与实现
(1)秒钟计时器
由于秒计数器为60进制计数器,所以以秒计数器作为示例说明其编程思想。其中秒计数器模块在程序中为always @(posedge clk)的程序段,由上面分析得秒计数器由一个十进制计数器与一个六进制计数器组成,程序中有second0表示秒计数器低位即10进制计数器,second1表示秒计数器的高位为一个六进制计数器。clk为时钟信号,时钟周期1/60(S),当低位second0满10时,自动进一位,即second1自动进位。Second0,second1位宽均为4位reg型变量。
分钟钟计时器
分钟计时器由于秒计数器为12 进制计数器,示例说明其编程思想。其中秒计数器模块在程序中为always @(posedge mod )的程序段,由分析得小时计数器由一个二进制计数器与一个三进制计数器组成,程序中有hour0表示秒计数器低位即二进制计数器,hour1表示秒计数器的高位为一个三进制计数器。Mod为时钟信号,来自分钟计时模块的mod,时钟周期360(S),当低位hour0满3时,自动进一位,即hour1自动进位。hour1,hour1位宽均为4位reg型变量。
小时计时器
小时计时器同秒钟计时器其中小时计数器模块在程序中为always @(posedge tun)的程序段,分钟计时器的低位、高位分别由minute0、minute1表示,但分钟计时器模块的敏感信号为“posedge tun”时钟信号,“tun”的产生自秒钟计时器,可知其产生的时钟信号为1(S),每触发一次则分钟计数器计数加1一次,同时产生mod的时钟信号,同时由于做的是12小时数字钟电路,所有zox表示的是显示上下午,当小时计数器满12时zox变化一次,其中zox=0表示的是上午,zox=1表示的是下午。
时间设置
时间设置模块实现的功能为通过按键调节可以对当前时间进行手动控制。其主要是在时间设置使能端有效地情况下通过SW1和i_SW2两个按键对数字钟的小时和分钟数进行调节。Disp_drive为设置中的显示控制,即通过SW1对位的调整,Disp_drive随之变化。i_SW2为对每一位上的数字在其范围内进行加1调节。Disp_drive取值000、001、010和011分别对应hour1、hour0、minute1和minute0的设置,其中的加1设置在各个计时器模块,这样做的原因是防止两个“always”进程对同一个变量赋值发生错误。
(5)控制显示模块
控制显示模块在整个数字钟的设计中起着非常重要的作用。它的作用是将时间等数据用数码管显示的控制和数据传输模块,包括数据的传输以及BCD码译码等。通过几个控制使能端将其不同功能时的时间在数码管上显示出来。本模块中端口定义比较多,下面是其所对应的功能。
clk:时间自动模式工作使能信号;
Timeset_EN:时间设置使能信号;
Time_disp_select:时间显示位选
显示全部