[EDA课程设计数字时钟.doc
文本预览下载声明
数字时钟的设计
一 实验目的
1)掌握VHDL语言的基本运用
2)掌握MAX+plusII的简单操作并会使用EDA实验箱
3)掌握一个基本EDA实验的操作
二 功能设计
1)有时、分、秒计数显示功能,小时为24进制,分钟和秒为60进制2)设置复位、清零等功能
3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间4)设置调试模式和计时两个模式,分别实现计时和调时功能,通过设置任意时间实现闹铃功能
三 系统设计方案概述及工作原理根据系统设计要求,系统设计采用自顶向下设计方法,由时钟分频部分、计时部分、按键部分调时部分和显示部分五个部分组成。这些模块都放在一个顶层文件中。1)首先下载程序进行复位清零操作,电子钟从00:00:00计时开始。md2[1]可以调整时钟的小时部分, md2[2]可以调整分钟,步进为1。2)由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于1Hz,这里取100Hz。CLK端连接外部10Hz的时钟输入信号clk。对clk进行计数,当clk=10时,秒加1,当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。3)用6位数码管分别显示“时”、“分”、“秒”,通过DOUT( 6 DOWNTO 0 )上的信号来点亮指定的LED七段显示数码管。
4)通过对md1按键高低电平的控制可以进入时钟的另一个调时模式,调试模式和计时模式是分开互不影响的。然后再通过对md2[1]和md2[2]对时钟进行时间设定。等到计时到达设置时间时,实现打铃功能。
顶层设计分析:对于电子钟的设计,这里将采用自顶向下的设计方法进行设计,因此首先需要进行电子钟的顶层设计。本节将首先介绍电子钟的系统结构和模块划分,然后设计出顶层VHDL设计程序。根据电子钟的设计要求、工作原理和设计方案, 整个模块的接口如下:1 时钟分频部分1) 复位开关信号reset:输入信号2) 外部时钟信号clk:输入信号3) 内部计时时钟信号clk1:输入信号2 计时部分1) 复位关信号reset:输入信号3) 小时十位信号hou2:输出信号4) 小时个位信号hou1:输出信号5) 分十位信号min2:输出信号6) 分个位信号min1:输出信号7) 秒十位信号sec2:输出信号8) 秒个位信号sec1:输出信号3 按键部分1) 复位开关信号reset:输入信号2) 时调整按键md2[1]:输入信号3) 分调整按键md2[2]:输入信号4) 小时十位信号hou2:输出信号5) 小时个位信号hou1:输出信号6) 分十位信号min2:输出信号7) 分个位信号min1:输出信号4 显示部分1) 外部时钟信号clk:输入信号2) 小时十位信号hou2:输入信号3) 小时个位信号hou1:输入信号4) 分十位信号min2:输入信号5) 分个位信号min1:输入信号6) 秒十位信号sec2:输入信号7) 秒个位信号sec1:输入信号8) LED七段显示数码管的选通信号DOUT:输出信号
5 调时部分
1) 调时开关md1
2) 时调整按键md2[1]:输入信号3) 分调整按键md2[2]:输入信号四 各部分功能分析
1)计数部分由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计数。其VHDL源程序相差不大由于篇幅有限,这里我们以分计数的实现为例。程序如下:
-----------------------------------------------分钟十位
m110:process(clk,min2,sec1,sec2,md1,md2)
begin
if clkevent and clk=1 then
if (min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) then
min1=0000;
elsif min1=0101and min2=1001and (md1=0 and md2=00)then
min1=0000;
elsif (min2=1001and (sec1=0101 and sec2=1001)) or (min2=1001and md1=0 and md2=00)then
min1=min1+1;
end if;
end if;--end if;
end process m110;
----------------------------------------------分钟个位
m220:process(clk,sec1,sec2,md1,md2)
begin
if clkevent and clk=1 then
if min
显示全部