1、 课课 程程 设设 计计 报报 告告 设计题目:用VHDL语言实现数字钟的设计 班 级:电子1002班 学 号: 姓 名: 指导教师: 设计时间:2012 年 12 月 摘摘 要要 数字钟是一种用数字电路技术实现时、分、秒计时的钟表。本设计主要是实现数 字钟的功能,程序用 VHDL 语言编写,整体采用 TOP-TO-DOWN 设计思路,具有基 本的显示年月日时分秒和星期的功能,此外还有整点报时功能。该数字钟的实现 程序分为顶层模块、年月模块、日模块、时分秒定时模块、数码管显示模块、分 频模块、星期模块,此外还有一个库。该程序主要是用了元件例化的方法,此外 还有进程等重要语句。 没有脉冲时,显示
2、时分秒,set 按钮产生第一个脉冲时,显示年月日,第 2 个脉冲到来时可预置年份,第 3 个脉冲到来时可预置月份,依次第 4、5、6、7、 8 个脉冲到来时分别可预置日期、时、分、秒、星期,第 9 个脉冲到来时设置星 期后预置结束,正常工作,显示的是时分秒和星期。调整设置通过 Up 来控制, UP 为高电平,upclk 有脉冲到达时,预置位加 1,否则减 1。当整点到达时,报 时器会鸣响,然后手动按键停止报时。 关键词:关键词:数字钟,数字钟,V VHDLHDL,元件,元件例化例化,数码管,数码管 1 1、 课程设计目的课程设计目的 掌握利用可编程逻辑器件和 EDA 设计工具进行电子系统设计的
3、方法 2 2、 课程设计内容及课程设计内容及要求要求 设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。用 6 个数码管显示时分秒,set 按钮产生第一个脉冲时,显示切换年月日,第 2 个脉 冲到来时可预置年份,第 3 个脉冲到来时可预置月份,依次第 4、5、6、7 个脉 冲到来时分别可预置日期、时、分、秒,第 8 个脉冲到来后预置结束,正常工 作,显示的是时分秒。Up 为高电平时,upclk 有脉冲到达时,预置位加 1.否则 减 1,还可以在此基础上增加其它功能。 3 3、 VHDLVHDL 程序设计程序设计 3.13.1 整体设计思路整体设计思路 本设计采用 top-down
4、模式设计,分模块进行,各功能都使用元件例化方式 设计,主要有 LED 显示模块、时分秒定时模块、日期模块、年月模块、分频模块、 星期模块,此外还创建了一个程序包,用来实现年月日、时分秒的加减调整。主 要运用了过程语句、元件例化语句、信号赋值语句、和顺序语句 图 3-1-1 整体结构图 图 3-1-2 顶层模块引脚图 3.23.2 各模块设计思路各模块设计思路 3 3.2.1.2.1 普通计数器(时、分、秒、月、年计数器)设计普通计数器(时、分、秒、月、年计数器)设计 时钟模块通过调用程序包的时分秒加减过程语句实现两个六十进制, 一个二 十四进制,秒的进位信号作为分的计数时钟信号,分的进位信号作
5、为时的时钟信 号。时的进位信号通过管脚映射到日期模块的计数时钟信号。 定时功能在时分秒模块中,是由分计数器在到达 59 时产生一个脉冲,让 speaker 产生高电位鸣响。 年月模块主要实现月份的十二进制计数器,和 100 进制的年份计数器。月份 的计数信号由日期模块的进位信号传递过来, 年份的时钟信号由月份的进位信号 产生。 图 3-2-1 时分秒引脚图 图 3-2-2 年月引脚图 3.2.23.2.2 可变进制计数器(天计数器)可变进制计数器(天计数器)模块模块设计设计 不同月中的天的数量是不同的, 例如 “大月” 就有 31 “天” , “小月” 有 30 “天” , 平年“二月”有 2
6、8“天” ,而闰年“二月”有 29“天” 。所以天计数器应该具备 进制可变的性能。日期模块主要分为三个部分,预置日期加,预置日期减和产生 进位信号,使月份增加。平闰年的判断是通过年月模块传输过来年份信号(两个 4 位的 BCD 码) ,如果高位的信号为“xxx0”且低位的信号为“xx00” (如 20,84 等) ,或高位为“xxx1”且低位为“xx10” (如 32 等)则判断为闰年。这种方法 的包含了一百年中的所有闰年的情况。然后判断大月小月可以判断月份来确定 30 进制还是 31 进制。进位信号也是分为大月、小月、平年闰年来确定是否产生。 图 3-2-3 日模块引脚图 3.2.33.2.3 LEDLED 显示模块显示模块 主要通过接受 setpin 的控制信号来选择显示的内容,把不同的信号赋给输出的 端口,从而实现时分秒,年月日的切换。 3.2.4 3.2.4 星期模块星期模块 通过七进制计数器实现,同时带有预置的功能,不能同年月调整联动,但是能单 独调整。 图 3-2-4 星期模块引脚图 4 4、 仿真与分析仿真与分析