eda多功能电子钟实习报告.doc

上传人:叶*** 文档编号:35114981 上传时间:2022-08-20 格式:DOC 页数:13 大小:106KB
返回 下载 相关 举报
eda多功能电子钟实习报告.doc_第1页
第1页 / 共13页
eda多功能电子钟实习报告.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《eda多功能电子钟实习报告.doc》由会员分享,可在线阅读,更多相关《eda多功能电子钟实习报告.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 数字电子技术课程设计报告 多功能数字钟电路设计 专业班级: 信息10-2 姓 名: 学 号: 开课系室: EDA 设计日期:2012年10月22日 26日设计题目:多功能数字钟电路设计一、设计任务及要求:1设计任务:利用verilog hdl语言设计多功能数字钟,使其具有显示时分秒、整点报时、小时和分钟可调等基本功能。2设计要求:设计一个多功能数字钟,要求显示格式为 时分秒,整点报时,在整点前5秒LED开始按照1HZ的频率闪烁,过整点后,停止闪烁。系统时钟选择时钟模块的50MHZ,要得到1的时钟信号,必须对系统时钟进行分频。调整时间的按键用按键模块的1和2,1调节小时,每按下一次,小时增加一

2、个小时,2调整分钟,每按下一次,分钟增加一分钟。另外用8按键作为系统时钟复位,复位后全部显示00-00-00。3 输出资源说明:a) 输入信号:按键s1,s2,s8(s1按下时为0,松开时为1,其他按键类似)。b) 外部输入脉冲信号时钟源CP(50MHZ),经适当分频后供计数器使用。c) 输出8组显示译码信号(每组7个输出端),分别接到外部的7个七段数码管上,分别显示小时、分钟、秒,显示格式 小时-分钟-秒。d) 输出一个高低电平信号,接到外部的1个指示整点的LED灯。(输出高电平时,对应的LED灯亮)1HzS2S8控制器计数器七段LED数码管显示(8个)输出显示译 码50MHz倒计时指示灯L

3、EDCLKS1Figure 1 多功能数字钟控制器结构框图根据如上说明,本设计的主要任务和设计要求是:1、 按照现代数字系统的Top-Down模块化设计方法,提出简易洗衣机控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码等模块化子系统的设计方案。2、 在Quartus的EDA设计环境中,采用原理图和Verilog语言混合输入的方法,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于Verilog语言实现的子模块(包括分频器、计数器、主控制器、扫描显示译码四部分)的逻辑功能仿真,并对顶层设计进行功能仿真。 3、 在2步的基础上,用下载电缆通过J

4、TAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。二、设计原理与方案:设计多功能数字钟首先要知道钟表的工作原理,整个钟表的工作应该是在1HZ的信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加小时,但是需要注意的是,小时的范围是从0-23。在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0-59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为它的范围是从0-23,所以可以用一个2位的二进制码显示十位,用4位二进制码(BCD)显示

5、个位。分频器计数器控制器七段LED数码管译 码扫描显示50MHz倒计时指示灯指示灯LEDCLK1HzHz1HzFigure 2 我的多功能数字钟控制器结构框图(一)、分频器设计方案: a) 分频器原理框图:分频器Clk1/1HZClk/50MHZClk1000/1KHZClk3/2HZb) 工作原理说明:本模块为分频模块,输入端为clk(50MHZ)信号,通过if条件语句进行三次分频,分为clk1,clk1000,clk3,其中clk1为1HZ频率信号,clk1000为1KHZ频率信号,clk3为2HZ频率信号。(二)、计数器及控制器设计方案:a) 计数器控制器原理框图S1计数器控制器倒计时指

6、示灯LEDS2S8时间输出Clk1/1HZClk3/2HZb) 工作原理说明:本模块既包含了控制模块又包含了计数模块,有4个输入端分别为clk1,s1,s2,s8,clk3,它们的作用分别是输入1HZ频率信号,调整小时信号,调整分钟信号,2HZ频率信号。有4个输出端分别为del,hour,minute,second,它们的作用分别是控制灯,输出当前系统时间(小时-分钟-秒)。在s1,s2,s8,都为1(即按键弹起时),程序块自动执行时钟计时功能;当s1按下(即s1为0)时,hour(控制小时)加1,当s2按下(即s2为0)时,minute(控制分钟)加1;当系统时间大于23-59-55时,指示

7、灯开始闪烁。(三)、数码显示器设计方案:译码扫描显示器a) Display原理框图时间输入七段LED数码管Clk1000/1KHZb) Display原理说明:本模块有4个输入端口clk1000,hour5.0,minute5.0和second5.0,它们分别接收来至分频模块的1KHZ频率和来至计数控制模块的hour5.0,minute5.0,second5.0信息,有2个输出端口avg7.1和sel3.1,avg7.1的七位端口分别接七段数码管的a、b、c、d、e、f、g七个端口,sel3.1的三位端口分别接三八译码器的三位输入端口;sel3.1在000111之间按照1KHZ的频率不断循环,

8、通过三八译码器控制的8个数码管从右向左分别点亮,由于数码管扫描频率较高,人眼无法分辨数码管的亮灭,从视觉上我们看到8位数码管都是亮的。sel3.1的三位选通端口与显示时间格式对应关系如下:sel3.1端口与avg7.1对应的显示量000“秒的个位”001“秒的十位”010“”011“分的个位”100“分的十位”101“”110“时的个位”111“时的十位”三、电路设计、仿真与实现:Figure 3 电路设计全程图符号说明:1.clk,clk1,clk1000,clk3:分别为50MHZ,1HZ,1KHZ,2HZ的频率信号; 2.count11,count12,count13:分频计数变量; 3

9、. s1,s2,s8:控制输入端,作用分别为调整小时,分钟,复位; 4. hour,minute,second:时间变量; 5.del:led整点报时闪烁灯; 6.avg:数码管七段码输出端; 7.sel:3-8译码器的三位选通端;(一)、分频设计实现:a) 分频器原理图b) 分频程序:module fenpin(clk,clk1,clk1000,clk3);input clk;output clk1,clk1000,clk3;reg clk1,clk1000,clk3,del;reg 31:0 count11,count12,count13;always (posedge clk)begin

10、 if (count11=50000000) begin clk1=1;count11=0;end else begin clk1=0;count11=count11+1;end if (count12=50000) begin clk1000=1;count12=0;end else begin clk1000=0;count12=count12+1;end if (count13=25000000) begin clk3=1;count13=0;end else begin clk3=0;count13=count13+1;endendendmodulec) 仿真波形:Figure 4分频

11、功能仿真Figure 4图中标注的clk为50MHZ的频率信号,时间周期为20ns,占空比为50%,分频输出信号虽然达到了分频的要求,但占空比却远远低于50%,在本次实习中没有反作用,如有要求非常严格的设计,则需要对信号分频程序进行调整。(二)、计数控制设计实现:a) 计数器及控制器原理图:b) 控制计数程序:module counter(clk1,clk3,s1,s2,s8,hour,minute,second,del);input clk1,s1,s2,s8,clk3;output del;output 5:0 hour,minute,second;reg del;reg 5:0 hour

12、,minute,second,count2;always (posedge clk1)begin if(s1&s2&s8) begin second=second+1; if(!(60-second) /判断秒 begin minute=minute+1; second=0; end if(!(60-minute) /判断分 begin hour=hour+1; if (hour=24)hour=0; minute=0; end if(minute=59&second=56) /倒计时 begin count2=1; end else count2=0; end else if (!s1) h

13、our=hour+1; else if (!s2) minute=minute+1; else begin hour=23;minute=59;second=50;endendalways(posedge clk3)begin if(count2=1)del=del; else del=0;endendmodulec) 仿真波形图:Figure 5计时功能仿真从仿真波形图可以看出当s1,s2,s8均为高电平时,每过1秒(即clk1出现一次高电平)second自动加1,计时功能正常运行。Figure 6复位功能从仿真波形图可知:当按下s8(复位键)之前,时间为16时33分44秒,按下复位键后时间

14、自动归零,重新从0时0分0秒开始计时。Figure 7 时间调整功能从Figure 4 时间调整功能仿真图可知,在时间调整前(s2按下)系统时间为16时34分19秒,s2按下后,时间自动调整为16时35分19秒,分钟加1;s1按下前时间为16时35分21秒,按下后时间自动调整为17时35分21秒,小时加1;Figure 8 LED灯整点报时功能从Figure 5 LED整点报时功能仿真图可知,当时间达到16时59分55秒时,LED指示灯开始按照1HZ的频率闪烁,过整点后,停止闪烁,系统时间调整为17时整。Figure 9 24时自动归零功能 从Figure 9 24时自动归零功能可知,当系统时

15、间为23时59分59秒时,过一秒钟,系统时钟回归零,重新计时!(三)、数码显示设计实现: a) Display输出显示器原理图b) Display程序:module display(clk1000,avg,hour,minute,second,sel);input clk1000;input 5:0 hour,minute,second;output 7:1 avg;output 3:1 sel;reg 7:1 avg;reg 4:1 t1;reg 3:1 sel;always (posedge clk1000)begin if(sel8) begin case(sel) 3b111:t1=s

16、econd%10; 3b000:t1=second/10; 3b010:t1=minute%10; 3b011:t1=minute/10; 3b101:t1=hour%10; 3b110:t1=hour/10; default:t1=1100; endcase sel=56) count2=1; else count2=0;2. always(posedge clk3)begin if(count2=1)del=del; else del=0;end在初始设计程序的时候由于逻辑的混乱使del在符合条件的情况下为1,认为只要符合条件就亮,忽略了闪烁的问题,而闪烁的关键还在于“del=del;”句

17、,由于设置了二分频程序,所以在上面的always(posedge clk1)语句运行一次的时候,always(posedge clk3)语句运行2次,也就是有每当count2传递一个数给always(posedge clk3)的时候,always(posedge clk3)要对该数使用两次,而count2在这2次中不变,要变的只能是del(从010101)可以从中发现del下次的值总是与上次相反,于是可以用取反语句进行操作来解决该问题!在对顶层文件进行全编译的时候出现了Error: Width mismatch in port hour5.0 of instance inst2 and typ

18、e display - source is hour4.0 (ID counter:inst1)这个问题,通过对字面的理解可知是由于输入输出hour的位数不配套引起的问题当修改counter文件中hour4:0为hour5:0的时候,问题得到解决,需要注意的是:当修改了管脚的位数后需要重新编译,重新构造图形模块。纵使有很多问题,但最终都被解决了,虽然有的问题是和同学讨论解决的,但还是很高兴的。在这些错误中也透露了自己对现有知识掌握的不牢固,对很多概念仍处于朦胧状态。通过这几天的实习,虽然有点累,但实习完后发现自己对以前学过的东西掌握的更牢固了,而且在实习中还弥补了一些自己欠缺的知识,掌握了对于

19、像多功能钟这种现代数字系统的Top-Down模块化设计方法。模块化设计方法的优点在于其简洁性,但是在最终电路确定下来之前应尽量减少模块间的联系,如果模块间重叠使用的层次过多,在修改或增加或减少一个变量的情况下,会引起其他模块的未知变化。2. 建议i. 如果能开一门关于Verilog HDL语言的课程就好了,让大家能够很好的掌握这门语言,好多知识通过自学是很难意识到的,就像这次实习有些同学设计的程序出错就是一个点的问题,如果设计时注意了,也就不会出现这种问题。相信如果有老师专门教授这门课,大家的水平会更好。ii. 我认为应该建立一个数电实验数据库,数据库内存放一些题目,就像计算机等级考试题库一样

20、,课程设计时,大家的题目不一样(起码自己所在班级内不一样),应该会减少那些偷懒的同学,强迫他们学习。iii. 增加实习时的指导老师,我们一个专业才一位老师,老师的负担很大,同学们的问题也不能得到及时解决。iv. 更改实习的时间,中间休息了一个月回来后好多知识都忘记了,即使复习也没刚考完试那会掌握的熟练。附件1(管脚分配图):端口名使用模块信号对应FPGA管脚说 明S1按键开关S1R16调整小时S2按键开关S2P14调整分钟RST按键开关S8M15复位LEDLED模块D1L14整点倒计时LEDAG0数码管模块A段N4时间显示LEDAG1数码管模块B段G4LEDAG2数码管模块C段H4+LEDAG3数码管模块D段L5LEDAG4数码管模块E段L4LEDAG5数码管模块F段K4LEDAG6数码管模块G段K5SEL0 数码管选择位1M4 8个数码管的选择位SEL1数码管选择位2F3SEL2数码管选择位3F4CP脉冲源J350MHZ脉冲源

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁