课程设计用verilog实现简易数字钟

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合肥工业大学电子科学与技术专业集成电路前端课程设计报告

设计题目:简易数字钟设计

姓名

学号

班级电子科学与技术1班

日期2010年12月6日

模式:7

按键7 PIO6 引脚7 change

4 3 4 t_hou

1 0 1 t_min

时钟显示

hou2 PIO 39-36 84 83 78 77

hou1 35-32 76 75 74 73

min2 31-28 72 71 70 69

min1 27-24 68 67 52 51

sec2 23-20 50 49 48 47

sec1 19-16 42 41 40 39

灯at 47 106

clock clock0 123(选择1Hz的信号)

模式1 正常计时模式at=0 灯灭

模式2 手动较时模式at=1 灯亮

按建功能:change 控制数字钟在计时和手动调整两个状态之间转换

t_min 分钟手动调整按键

t_hou 小时手动调整按键

clock 标准1HZ时钟信号

中间变量tun 秒到分的进位信号

mod 分到时的进位信号

mt 分钟的控制信号上升沿触发

nt 时钟的控制信号上升沿触发

输出sec1 秒个位

sec2 秒十位

min1分个位

min2分十位

hou1时个位

hou2时十位

at 表示模式的变量0为正常计时模式,1表示手动调整模

概述:

要求:1设计一个能显示时、分、秒的简易数字钟。具有时间调整功能。

2利用GW48-PK2系统上的数码管显示时间。

3 调整时间用的按键也使用GW48-PK2系统上的按键。

目的:本次课程设计的目的是为了掌握FPGA技术的层次化设计方法,掌握ModelSim和QuartusⅡ的使用方法。

步骤:用verilog语言在记事本编写程序,然后在ModelSim中仿真,查看波形,再用QuartusⅡ仿真,定义针脚,在面板上模拟。

数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的寿命,因此得到广泛的应用。

设计原理及框图

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路,具有时、分、秒计数显示功能,以24小时为计数循环,由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要加上校时功能。

这次实验主要是要实现时钟的两种基本功能:计时和较准,时间计数由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器,和控制按键构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为24进制计数器.,然后需要把8位二进制数转变为译码管需要的8421码。

设计方案:

这个实验总体分:秒、分、时三个模块,计时和较准两个模式

标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲之一。“分计数器”也采用60进制计数器,每累计60分钟,发出一个时脉冲信号,该信号作为时计数器的时钟脉冲之一,时计数器采用24进制计时器,可实现对一天24小时的计时。译码显示电路将“时”、“分”、“秒”计数器的输出状态通过译码管显示。这们时钟的计时功能就实现了,

秒模块是一个以1HZ的clock信号控制的60进制计数器,并同时产生分进位信号tun。

always @(posedge clock)

begin

if(sec==59) \\当秒等于59时,如果处于计时模式时产生

begin \\一个进位脉冲tun, 否则tun信号暂停

sec<=0;

if(at==0)

tun<=1;

else

tun<=tun;

end

else \\若秒不等于59,同样如果处于计时模式

begin \\就使tun信号清0,否则tun信号暂停

sec<=sec+1;

if(at==0)

tun<=0;

else

tun<=tun;

end

end

分模块也是一个60进制计数器,并产生小时的进位信号mod,但要受到两个控制信号的控制一个是进位信号tun,另一个是t_min的按建信号。

当at=0时,赋值mt=tun

当at=1时,赋值mt=(!tun&t_min)|(tun&!t_min)

always@(posedge mt)

begin

if(min==59) \\当min=59时,如果处于计时模式,

begin \\则产生一进位信号mod,否则mod暂停

min<=0;

if(at==0)

mod<=1;

else

mod<=mod;

end

else \\当分不等于59,同样,

begin \\如果处于计时模式,则mod清0,否则mod暂停

min<=min+1;

if(at==0)

mod<=0;

else

mod<=mod;

end

end

时模块和分模块相似,是一个24进制计数器,受mod和t_hou信号控制,同理当at=0时,nt=mod

当at=1时,nt=(!mod&t_hou)|(mod&!t_hou)

always@(posedge nt)

begin

if(hou==23)

hou<=0;

else

hou<=hou+1;

end

这样就实现了计时模式时控制信号为进位信号,手动模式时控制信号为按键信号计时模式和手动调整模式互不干扰,各司其职,至此已实现时钟的功能已实现,而显示时间的译码管是4位二进制数,须要两个译码管分别显示十位和个位,所以要求出秒、分、时的个位和十位,用以下程序就可实现。

always@(sec)

begin

sec1<=sec%10;

sec2<=sec/10;

end

always@(min)

begin

min1<=min%10;

min2<=min/10;

end

always@(hou)

begin

hou1<=hou%10;

hou2<=hou/10;

end

相关文档
最新文档