版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏州科技学院天平学院
EDA电子综合设计
院系:___________________
专业:___________________
班级:___________________
学号:___________________
姓名:___________________
第一部分:设计说明
1.1设计任务
设计一款数字电子时钟,具体要求如下:
1:输入条件:50MHz时钟,2个输入按键;
2:功能实现:具有显示时、分、秒功能;采用LED数码管显示;具有同钟
与对时功能,对时精确到分,闹钟设置与对时采用按键作为输入信号。
3:采用altera公司的quartusH软件进行编程与仿真,设计语言可以选择
VerilogHDL或VHDL。
L2目的与意义
训练综合运用学过的数字电子技术、数字系统设计技术(HDL硬件设计)和计
算机编程及电路相关基本知识,培养独立设计比较复杂数字系统设计能力。
通过综合设计,力争掌握使用EDA工具设计数字系统电路的基本方法,包
括原理方案的确定、详细设计中的编程与仿真等一系列过程,为以后进行工程实
践问题的研究打下设计基础。
时钟,自从它发明的那天起,就成为人类的朋友,但随着社会的进步,科技
的的发展,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,
怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。
现代社会,守时已不仅关系到一个人的职业生涯,还成了衡量一个人道德的
标准。时钟为人们提供了科学利用时间规律的依据,然而,普通的机械钟表与半
机械钟表对于忙碌的生活显然早已不太适应,设计一款高精度数字时钟势在必
行。本课题将通过对目前市场上的数字电子钟的研究,利用EDA技术设计一款高
精度数字式电子钟,使人们可以得到精确时间显示,帮助人们合理安排时间,方
便人们的生活。
第二部分原理方案设计
设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按
键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示。能够利用
按键实现“较时”、“较分”功能,随时对数码管的显示进行校正和校对。数字中
系统主要由系统时钟,三个功能按键(mode,turn,change),FPGA,数码管和
蜂鸣器部分组成。
数码管
显示模块
(=>
蜂
二>计时模块仁>闹钟模块鸣
器
A~~TT
控制模块
图1多功能数字时钟整体模块图
2.1分频模块方案设计
分频模块用于为系统的实现提供稳定的工作频率和计时信号源,产生分频为
1HZ频率的信号作为计时模块的信号源。
分频算法设计:定义变量并根据需要得到的分频信号设定计数值,对该变量
进行加或减计数,每到达一次计数值点,将该变量清零或重置,并且对输出信号
取一次反,即可以得到所需的分频信号。
在这里使用任意分频计数器。定义变量并且设定一个上限值,每次加计数到
该上限值时,输出该计数值的最高位。
第三部分详细设计过程
图2顶层模块
3.1分频模块
该模块为任意分频计数涔,在这里使用了两个分频模块,分别输出4Hz和
IKhz的时钟信号。
功能:对输入时钟clock进行F_DIV倍分频后输出clk_out。其中F_DIV为
分频系数,分频系数范围为广2,(n二F_DIV』IDTH)若要改变分频系数,改变参
数匕DTV或F_DTV_WTDTH到相应范围即可。若分频系数为偶数,则输出时钟占空
比为50%;若分频系数为奇数,则输出时钟占空比取决于输入时钟占空比和分频
系数(当输入为50%时,输出也是50%)。
图3分频模块div_4hz
图4分频模块div_lk
定义变量为分频系数,若位偶数,则产生分频系数的一半个时钟周期为高电
平,分频系数的一半个时钟周期为低电平;若为奇数,则相应地偏移一个。
若分频系数为偶数,则输出时钟占空比为50机若分频系数为奇数,则输出
时钟占空比取决于输入时钟占空比和分频系数(当输入为50%时,输出也是50%)o
modulodivdhztclock,clkout);//I/O口声明
inputclock;〃输入时钟
outputclk_out;〃输出时钟
〃内部寄存器
regclk_p_r;〃上升沿输出时钟
regclknr;〃下降沿输H时钟
reg[F_DIV_WIDTH-1:0]counl-p;〃上升沿脉冲计数器
reg[F_DIV_WIDTH-1:0]count_n;〃下降沿脉冲计数器
〃参数一分频系数
〃分频系数<«<——修改这里
parameterF_DTVJrTDTH=32;〃分频计数器宽度
wirefull_div_p;〃上升沿计数满标志
wirehalfdivp;〃上升沿计数半满标志
wirefulldivn;〃下降沿计数满标志
wirehalf_div_n;〃下降沿计数半满标志
〃判断计数标志位置位与否
assignfull_div_p=(count_p<F_D1V-1);
assignhalf_div_p=(count_p<(F_DIV»1)-1);
assignful1div_n二(count_n<F_DTV-1);
assignhalfdivn=(countyn<(FDIV»1)-1);
〃时钟输出
assignclk_out=(F_DIV==1)?
clock:(F_DIV[O]?(clk_p_r&clk_n_r):clk_p_r);
〃上升沿脉冲计数
always@(posedgeclock)
begin
if(full_div_p)
begin
count_p<=count_p+Vbl;
if(half_div_p)
clk_p_r<=1'bO;
else
clk_p_r<=1'bl;
end
else
begin
count_p<=0;
clk_p_r<=VbO;
end
end
〃下降沿脉冲计数
always©(negedgeclock)
begin
if(full_div_n)
begin
count_n<=count_n+1'bl;
if(half_div_n)
clk_n_r<=1'bO;
else
clk_n_r<=rbl;
end
else
bpgin
count_n<=0;
clk_n_r<=rbO;
end
end
endmodule
3.2显示模块
该模块设计为时钟显示模块,一共8个共阳吸数码管,显示格式为。
整个时钟的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,
秒增加1秒,当秒从59秒跳转到0()秒时,分钟增加I分,同时当分钟从59分
跳转到()0分时,小时增加1小时,小时的范围为0~23时。
由于分钟和秒钟显示的范围都是从0~59,可以用一个4位的二进制码显示
十位,用一个四位的二进制码(BCD码)显示个位;对于小时因为他的范围是
从0〜23同样可以用一个4位的二进制码显示十位用一个4位的二进制码(BCD
码)显示个位。
由于动态扫描,需要一个频率较高的时钟信号用于刷新显示。送入显示的数高低
4位分离开来,分别用于显示十位和个位。
图5显示模块scan_led
modulescan_led(clk_lk,dig,seg,hourh,hourl1,minh,minlI,sech,secll);
inputclk_lk;
input[3:O]hourh,hourll,minh,minl1,sech,secl1;
output[7:OJdig;
output[7:()]seg;
reg[7:0]dig;
reg[7:O]seg;
reg[3:0]dataout_buf;
reg[2:0Jcount;
always@(posedgeclk_lk)
begin
coiint<=count+1'bl;
end
always@(posedgeclk_lk)
begin
case(count)
3'dO:
dataout_buf=secll;
3'dl:
dataout_buf=sech;
3'd2:
dataout_buf=4'ha;
3'd3:
dalaoul_buf=miiill;
3'd4:
dataout_buf=minh;
3,d5:
dataout_buf=4,ha;
3'd6:
dataout_buf=hourlI;
3'd7:
dataout_buf二hourh;
endcase
casc(count)
3,d():
dig=8'bl111.1110;
3'dl:
dig=8'bllll_1101;
3'd2:
dig=8'bllll_1011;
3,d3:
3'd4:
dig=8'bl110_1111;
3'd5:
dig=8'bll01_llll;
3'd6:
3*d7:
dig=8'b0111_llll;
endcase
end
always@(dataout_buf)
begin
case(dataout_buf)
4'hO:
seg=8'b0000_0011;
4'hl:
seg=8'b1001_l111;
4,h2:
seg=8'b0010_0101;
4'h3:
seg=8'b0000_1101;
4,h4:
seg=8,bl()()l_l()()l;
4'h5:
seg=8'bO100.1001;
4'h6:
seg=8'b0100_0001;
4,h7:
seg=8,bOO()l_llll;
4'hX:
seg=8'b0000_0001;
4'h9:
seg=8'b0000_1001;
4'ha:
seg=8'bllll_1101;
endcase
end
endmodule
3.3时钟控制模块
该模块设计为多功能数字钟的控制模块。
各信号引脚功能定义为:
mode:功能控制信号;为0:计时功能;为1:闹铃功能;为2:手动校对
功能;
turn:在手动校对时,选择是调整时间,还是分钟,若长时间按住该键,可
使秒信号清零,用于精确调时;
change:手动调整时,每按一次,计数器加1,如果长按,则连续快速加1;
用于快速调时和定时:
hour,min,sec:时,分,秒显示信号;
alert:扬声器驱动信号;用于产生闹铃音和报时音;闹铃音为持续20秒的
急促的“嘀嘀嘀”音,若按住“change”键,可屏蔽该闹铃音;整点报时音为
“嘀嘀嘀嘀嘟"四短一长音;
LD.alert:接发光二极管,指示是否设置了闹钟功能;
LD_hour:接发光二极管,指示当前调整的是小时信号;
LD_min:接发光二极管,指示当前调整的是分钟信号。
mode按键每触发一次,定义一个变量m自加,从。加到2;加满2,重新置为0。
用case语句产生3种模式。
图6时钟模块clockl
module
clack(clk,clk_1k,mode,change,tnrn,alert,hourh,hourlI,minh,minl1,sech,seclI,
LD_alert,LD_hour,LD_min);
inputclk,clk_lk,mode,change,turn;
outputalert,LD_alerl,LD_hour,LD_min;
output[3:0]hourh,hourl1,minh,minlI,sech,secl1;
rcg[7:0]hour,min,sec,hourl,minl,secl,ahour,amin;
reg[1:()]m,fm,numl,num2,num3,num4;
reg[1:()]loop1,loop2,loop3,loop4,sound;
regLD_hour,LD_min;
regclk_lHz,clk_2Hz,minclk,hclk;
regalert1,alert2,ear;
regcount1,count2,counta,counlb;
wirecl1,cl2,cla,clb.in_clk,h_clk;
always@(posedgeelk)
begin
clk_2Hz<=-clk_2Hz;
if(sound==3)beginsound<=0;ear<=l;end
elsebeginsound<=sound+1;ear<=0;end
end//ear信号用于产生或屏蔽声音
always@(posedgeclk_2Hz)//由4HZ的输入时钟产生1HZ的时基信号
clk_lHz<=~clk_IHz;
always@(negedgemode)//mode信号控制系统在三种功能间的转换
begin
if(m==2)m<=0;
elsem<=m+l;
end
always@(ncgcdgeturn)//产生count1,countI,counta,countb四个信号
always
begin
case(m)
2:beginif(!fm)
begincountl<=!change;{LD_rr)in,LD_hour}<=2;end
else
begincounta<=!change;{LD_min,LD_hour}<=1;end
{count2,countb)<-0;
end
1:beginif(!fm)
begincount2<=!change;{LD_min,LD_hour}<=2;end
else
begincountb<=!change;{LD_min,LD_hour)<=l;end
{cuunll,counla}<-2*b00;
end
default:{count1,count2,counta,countb,LD_min,LD_hour)<=0;
endcase
end
always@(negedgeelk)
if(count2)begin
if(loopl=3)numl<=l;
else
beginloopl<=loopl+l;numl<=0;end
end
elsebeginloopl<=0;numl<=0;end
always@(negedgeclk)
if(countb)begin
if(loop2=3)num2<=l;
else
beginIoop2<=loop2+1;num2<=0;end
end
elsebeginloop2<=0;num2<=0;end
always@(negedgeelk)
if(countl)begin
if(loop3==3)num3<=l;
else
beginIoop3<=loop3+1;num3<=0;end
end
elsebeginloop3<=0;num3<=0;end
always@(negedgeelk)
if(counta)begin
if(loop4=3)num4<=l;
else
beginluop4<—loup4+1;iiuin4<-0;end
end
elsebeginloop4<=0;num4<=0;end
assignct1=(num3&clk)|(!num3&m_clk);
assignct2=(num1&clk)|(!num1&count2);
assigncta=(num4&cik)|(!num4&h_clk);
assignctb=(num2&clk)|(!num2&countb);
always@(posedgeclk_lHz)
if(!(sec1A8'h59)|(!turn)&(!m))
begin
sec1<=();if(!((!turn)&(!m)))minclk<=1;
end
elsebegin
if(secl[3:0]==4(bl001)
beginsecl[3:0]<=4,b0000;sec1[7:4]<=sec1[7:4]+1;end
elsesec1[3:0]<=sec1[3:0]+1;minclk<=0;
end
assignm_clk=minclk||countl;
always@(posedgectl)
begin
if(minl==8'h59)beginminl<=0;hclk<=l;end
elsebegin
if(minl[3:0]==9)
beginminl[3:0]<=0;min1[7:4]<=min1[7:4]+1;end
elsemin1[3:()]<~min1[3:0]+1;hclk<=0;
end
end
assignh_clk=hclk||counta;
always@(posedgeeta)
if(hourl==8'h23)hourl<=0;
elseif(liuurl[3;0J~9)
beginhourl[7:4]<=hourl[7:4]+1;hourl[3:()]<=0;end
elsehourl[3:0]<=hourl[3:0]+l;
always@(posedgect2)
if(amin==8'h59)amin<=0;
elseif(amin[3:0J=9)
beginamin[3:0J<=0;aminl7:4J<=amin[7:4J+1;end
elseamin[3:0]<=amin[3:0]+1;
always@(posedgectb)
if(ahour==8'h23)ahour<=0;
elseif(ahour[3:0]==9)
beginahour[3:0]<=0;ahour[7:41<=ahour[7:4]+1;end
elseahour[3:01<=ahour[3:01+1;
always
if((minl=amin)&&(hourl=ahour)&&(amin|ahour)&&(change))
if(secl<8'h20)alert1<=I;
elsealertl<=0;
elsealert1<=0;
always
case(m)
3'b00:beginhour<=hourl;min<=minl;sec<=sec1;end
3'b01:beginhour<=ahour;min<=amin;sec<=8'hzz;end
3'blO:beginhour<=hourl;min<=minl;sec<=8'hzz;end
cndcasc
assignLD_alert-(ahour|amin)?1:();
assignalert=((alert1)?clk_1k&clk:0)|alert2;
always
begin
if((minl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京西城区中国邮政集团有限公司执纪骨干集中社会招聘12人笔试历年难易错考点试卷带答案解析
- 2025内蒙古赤峰市投资担保集团有限公司旗下子公司公招聘及总笔试历年典型考点题库附带答案详解
- 2025内蒙古地质矿产集团第二次招聘工作人员6人笔试历年典型考点题库附带答案详解
- 2025内蒙古兴安盟乌兰浩特市属国有企业招聘工作人员6人笔试历年常考点试题专练附带答案详解
- 2025兴业银行福建宁德分行校园招聘笔试历年典型考题及考点剖析附带答案详解2套
- 2025兴业银行宜宾分行社会招聘(12月)笔试历年典型考题及考点剖析附带答案详解2套
- 2025佛山农商银行社会招聘12人笔试历年典型考题及考点剖析附带答案详解
- 2025下半年浙江杭州市萧山区国有企业招聘拟录用人员(二)笔试历年常考点试题专练附带答案详解
- 生鲜连锁超市建设项目交通影响评价
- 企业治理体系完善方案
- 镇静催眠药的应用
- 冲孔灌注桩试桩记录总表
- 13J103-7《人造板材幕墙》
- 细胞生物学丁明孝5版考研题
- 范微观经济学高级教程第16章寡头垄断
- 第22课 小毛虫 (一等奖创新教学设计)(2课时)
- 科研设计的基本原则与三要素
- GB/T 7113.5-2011绝缘软管第5部分:硅橡胶玻璃纤维软管
- DB34T 4156-2022 非物质文化遗产保护 明德折扇制作技艺
- 三级人力资源管理师考试案例分析模拟试题及答案
- 五年级语文期末复习计划五年级语文下册期末复习计划
评论
0/150
提交评论