EDA课程设计 数字时钟_eda课程设计数字时钟
EDA课程设计 数字时钟由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“eda课程设计数字时钟”。
EDA
课程设计报告
一·设计任务
使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。
二·设计要求
除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。
a)具有时,分,秒,计数显示功能,以24小时循环计时; b)具有时间清零功能;
c)具有小时、分钟和秒钟调整功能(个位和十位分开调或合起来调)。
d)具有闹钟功能,能预设闹钟时间,精确到秒。
整个数字钟只设一个时钟输入端口,所需不同频率信
号在内部分频实现。(LED扫描频率设为50Hz以上)。
三·设计方案
设计采用模块方式,分别为分频模块:产生1Hz的脉冲作为秒的输入,和产生1kHz的脉冲作为数码管显示的动态扫描。计时模块:秒模块,分模块,时模块。闹钟模块,显示模块,控制模块。
四·模块端口设置
1.分频模块
输入:clkin :
本实验输入为50MHz晶振
输出:clk : 为显示模块及始终调节提供1KHz脉冲
clkt: 为计数器模块提供1Hz脉冲
2.计时模块
m 是模式按键,当m=0 时,进入计时模式,在计时模式下可以进行时间调整。num3,num4 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提
供。counta,count1 是手动调节时间。Turn 接按键,可以改变当前调节的是小时还是分钟,长按turn 键还可以使秒钟信号清零。sec1,min1,hour1 输出的是计时的秒,分,时。
3.闹钟模块
原理:num1,num2 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提供。countb,count2 是手动调节闹钟时间。amin,ahour 是输出的闹钟的分钟和 小时 4.控制模块
m 是模式按键,当m=0 时,指当前输出的是计时功能;当m=1 时,指当前调整的是
闹钟时间;当m=2 时,指当前调整的是计时时间;当m=3 时,此时turn 按键可用于跑表的暂停与开始。change 接按键,手动调整时,每按一次,计数器加1;如果长按,则连续快
速加1,用于快速调时和定时;turn 接按键,在手动校时功能时,选择是调整小时,还是分
钟;若长时间按住该键,还可使秒信号清零,用于精确调时。count1,count2,counta,countb 分
别是用来调节计时时间和闹钟时间。LD_min,LD_hour,指示当前调节的是分钟还是小时。5 显示模块
输入:clk--1kHz时钟,提供高频扫描
in0、in1…in5--分别为时、分、秒的个位与十位信号
输出:a、b…g--数码管输入
d0、d1…d5--数码管选通
五.程序。
分频模块
module fenpin(clk,clkt,clkin);input clkin;output clk,clkt;reg clk,clkt;reg [31:0]out,t1;
initial t1
always@(posedge clkin)begin
out
if(out==20000)
begin
out
clk
end end
always@(posedge clk)
begin
t1
if(t1==1000)
begin
clkt
t1
end
else
clkt
计时模块 module jishi(clk,clk_1Hz, turn,mode,count1,counta,sec1,min1,hour1,num3,num4);input clk,clkt,turn,num3,num4;input mode;input count1,counta;output [7:0] sec1,min1;output [7:0] hour1;wire clkt,ct1,cta,turn,num3,num4;reg [7:0] sec1=0,min1=0;reg [7:0] hour1=0;reg [1:0] m;wire count1,counta;reg minclk,hclk;always @(posedge mode)//mode 信号控制系统在三种功能间转换 begin if(m==4)m
if((sec1==8'h59)|turn&(!m))///////若长时间按住该键,还可使秒信号清零,用于精确调时。begin sec1
if(!(turn&(!m)))minclk
always @(posedge ct1)begin if(min1==8'h59)begin min1
begin min1[3:0]
always @(posedge cta)if(hour1==8'h23)hour1
闹钟模块
module alarm(clk,amin,ahour,num1,num2,count2,countb,LD_alert);input clk,num1,num2,count2,countb;output [7:0] amin;
output [7:0] ahour;output LD_alert;wire LD_alert;reg [7:0] amin=0;reg [7:0] ahour=0;aign ct2=(num1&clk)|(!num1&count2);//ct2 用于定时状态下调整分钟信号
aign LD_alert=(ahour|amin)?1:0;//指示是否进行了闹铃定时 always @(posedge ct2)if(amin==8'h59)amin
module ctrol(change,turn,count1,count2,counta,countb,pause,LD_min,LD_hour,mode);input change,mode,turn;output count1,count2,counta,countb,pause,LD_min,LD_hour;reg [1:0] m;reg fm=0,count1=0,count2=0,counta=0,countb=0,pause=0,LD_min=0,LD_hour=0;wire mode,turn,change;always @(posedge mode)//mode 信号控制系统在三种功能间转换 begin if(m==4)m
always @(m or fm or change)begin case(m)2: begin ////////2:调节时间功能; if(fm)begin count1
Else
begin counta
0: begin {count1,count2,counta,countb,LD_min,LD_hour}
module show(min1,sec1,amin,hour1,ahour,MSH,MSL,SH,SL,MH,ML,min,sec,hour,mode);input [7:0] min1,sec1,amin;input [7:0] hour1,ahour;input[3:0] MSH,MSL,SH,SL,MH,ML;input mode;output [7:0] min,sec;output [7:0] hour;reg [7:0] min,sec;reg [7:0] hour;reg [1:0] m;always @(posedge mode)//mode 信号控制系统在三种功能间转换
begin if(m==4)m
hour
min
六
实验分析七
实验总结
八、参考资料
1、《EDA技术实用教程》
2、实验箱使用说明;