ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:202.72KB ,
资源ID:21366895      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21366895.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(eda多功能电子钟实习报告Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

eda多功能电子钟实习报告Word文件下载.docx

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

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

3、以可以用一个2位的二进制码显示十位,用4位二进制码(BCD)显示个位。Figure 2 我的多功能数字钟控制器结构框图(一)、分频器设计方案:a) 分频器原理框图:Clk/50MHZClk1/1HZClk1000/1KHZClk3/2HZ分频器b) 工作原理说明:本模块为分频模块,输入端为clk(50MHZ)信号,通过if条件语句进行三次分频,分为clk1,clk1000,clk3,其中clk1为1HZ频率信号,clk1000为1KHZ频率信号,clk3为2HZ频率信号。(二)、计数器及控制器设计方案:a) 计数器控制器原理框图本模块既包含了控制模块又包含了计数模块,有4个输入端分别为clk1

4、,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时,指示灯开始闪烁。(三)、数码显示器设计方案:a) 译码扫描显示器时间输入七段LED数码管Display原理框图b) Display原理说明:本模块有

5、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位数码管都是亮的。sel3.1的三位选通端口与显示时

6、间格式对应关系如下:sel3.1端口与avg7.1对应的显示量000“秒的个位”001“秒的十位”010“”011“分的个位”100“分的十位”101110“时的个位”111“时的十位”三、电路设计、仿真与实现:Figure 3 电路设计全程图符号说明:1.clk,clk1,clk1000,clk3:分别为50MHZ,1HZ,1KHZ,2HZ的频率信号; 2.count11,count12,count13:分频计数变量; 3. s1,s2,s8:控制输入端,作用分别为调整小时,分钟,复位; 4. hour,minute,second:时间变量; 5.del:led整点报时闪烁灯; 6.avg:

7、数码管七段码输出端; 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 if (count11=50000000) begin clk1=1;count11=0;end else begin clk1=0;count11=count11+1;

8、 if (count12=50000) begin clk1000=1;count12=0; else begin clk1000=0;count12=count12+1; if (count13=25000000) begin clk3=1;count13=0; else begin clk3=0;count13=count13+1;endmodulec) 仿真波形:Figure 4分频功能仿真Figure 4图中标注的clk为50MHZ的频率信号,时间周期为20ns,占空比为50%,分频输出信号虽然达到了分频的要求,但占空比却远远低于50%,在本次实习中没有反作用,如有要求非常严格的设计,

9、则需要对信号分频程序进行调整。(二)、计数控制设计实现: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,minute,second,count2;always (posedge clk1)begin if(s1&s2&s8) begin second=second+1; if(!(60-second) /判断

10、秒 begin minute=minute+1; second=0; end if(!(60-minute) /判断分 begin hour=hour+1; if (hour=24)hour=0; minute=0; if(minute=59&second=56) /倒计时 count2=1; else count2=0; else if (!s1) hour=hour+1;s2) minute=minute+1; else begin hour=23;minute=59;second=50;always(posedge clk3)begin if(count2=1)del=del; else

11、 del=0;c) 仿真波形图:Figure 5计时功能仿真从仿真波形图可以看出当s1,s2,s8均为高电平时,每过1秒(即clk1出现一次高电平)second自动加1,计时功能正常运行。Figure 6复位功能从仿真波形图可知:当按下s8(复位键)之前,时间为16时33分44秒,按下复位键后时间自动归零,重新从0时0分0秒开始计时。Figure 7 时间调整功能从Figure 4 时间调整功能仿真图可知,在时间调整前(s2按下)系统时间为16时34分19秒,s2按下后,时间自动调整为16时35分19秒,分钟加1;s1按下前时间为16时35分21秒,按下后时间自动调整为17时35分21秒,小时

12、加1;Figure 8 LED灯整点报时功能从Figure 5 LED整点报时功能仿真图可知,当时间达到16时59分55秒时,LED指示灯开始按照1HZ的频率闪烁,过整点后,停止闪烁,系统时间调整为17时整。Figure 9 24时自动归零功能 从Figure 9 24时自动归零功能可知,当系统时间为23时59分59秒时,过一秒钟,系统时钟回归零,重新计时!(三)、数码显示设计实现:a) Display输出显示器原理图b) Display程序:module display(clk1000,avg,hour,minute,second,sel);input clk1000;input 5:out

13、put 7:1 avg;output 3:1 sel;reg 7:reg 4:1 t1;reg 3:always (posedge clk1000)begin if(sel8) begin case(sel) 3b111:t1=second%10;b000:t1=second/10;b010:t1=minute%10;b011:t1=minute/10;b101:t1=hour%10;b110:t1=hour/10; default:t1=1100; endcase sel=sel+1; else sel=3b000; case(t1) 4b0000:avg=7b1111110;b0001:b

14、0110000;b0010:b1101101;b0011:b1111001;b0100:b0110011;b0101:b1011011;b0110:b1011111;b0111:b1110000;b1000:b1111111;b1001:b1111011;b0000001;c) Display模块仿真:Figure 10 Display数码显示功能从Figure 7 Display仿真图形可知,当系统时间设定为18时34分23秒时,sel3.1三位端口与avg7.1七位端口对应关系如下:“1111001” 3“1101101” 2“0110011”4“1111001”3“1111111”8“0

15、110000”1在数码管上显示为:18-34-23(四)、Fit Design 结果;实际DownLoad及测试结果Figure 11 多功能电子钟综合全图在将整合程序下载进FPGA开发板前,需将所有程序模块都转化为图形模块存入图形文件库后,新建block diagram,调出图形模块文件进行连接,连接编译完毕后,进行管脚分配,如下(各管脚功能下附件1):Figure 12 管脚分配图仿真波形:Download下载调试结果:下载调试结果符合波形仿真结果,符合设计要求。四、 分析与讨论:1. 总结:短短几天的实习已经结束了,在这次的实习中更进一步掌握了利用Verilog hdl语言进行电路设计、

16、仿真与综合,学习了如何利用该语言进行模块化、分层次设计,更加熟练的掌握了Quartus软件的使用方法。在这次的实习中同时遇到不少的问题:有显示问题,还有指示灯闪烁的问题。显示的问题是:当将程序下载到FPGA开发板上后,时间显示的顺序和正常的电子表显示顺序是相反的,显示顺序相反说明利用3-8译码器对8个数码管进行选通时,选通的顺序是相反的,只需将case下的条件翻转过来即可。指示灯的问题是:开始的时候指示灯一直亮,没有闪烁的情况出现,源程序中控制闪烁的条件有两条:1. if(minute=59&=56) count2=1;else count2=0;2. always(posedge clk3)

17、在初始设计程序的时候由于逻辑的混乱使del在符合条件的情况下为1,认为只要符合条件就亮,忽略了闪烁的问题,而闪烁的关键还在于“del=del;”句,由于设置了二分频程序,所以在上面的always(posedge clk1)语句运行一次的时候,always(posedge clk3)语句运行2次,也就是有每当count2传递一个数给always(posedge clk3)的时候,always(posedge clk3)要对该数使用两次,而count2在这2次中不变,要变的只能是del(从010101)可以从中发现del下次的值总是与上次相反,于是可以用取反语句进行操作来解决该问题!在对顶层文件进

18、行全编译的时候出现了Error: Width mismatch in port hour5.0 of instance inst2 and type display - source is hour4.0 (ID counter:inst1)这个问题,通过对字面的理解可知是由于输入输出hour的位数不配套引起的问题当修改counter文件中hour4:0为hour5:0的时候,问题得到解决,需要注意的是:当修改了管脚的位数后需要重新编译,重新构造图形模块。纵使有很多问题,但最终都被解决了,虽然有的问题是和同学讨论解决的,但还是很高兴的。在这些错误中也透露了自己对现有知识掌握的不牢固,对很多概念

19、仍处于朦胧状态。通过这几天的实习,虽然有点累,但实习完后发现自己对以前学过的东西掌握的更牢固了,而且在实习中还弥补了一些自己欠缺的知识,掌握了对于像多功能钟这种现代数字系统的Top-Down模块化设计方法。模块化设计方法的优点在于其简洁性,但是在最终电路确定下来之前应尽量减少模块间的联系,如果模块间重叠使用的层次过多,在修改或增加或减少一个变量的情况下,会引起其他模块的未知变化。2. 建议i. 如果能开一门关于Verilog HDL语言的课程就好了,让大家能够很好的掌握这门语言,好多知识通过自学是很难意识到的,就像这次实习有些同学设计的程序出错就是一个点的问题,如果设计时注意了,也就不会出现这

20、种问题。相信如果有老师专门教授这门课,大家的水平会更好。ii. 我认为应该建立一个数电实验数据库,数据库内存放一些题目,就像计算机等级考试题库一样,课程设计时,大家的题目不一样(起码自己所在班级内不一样),应该会减少那些偷懒的同学,强迫他们学习。iii. 增加实习时的指导老师,我们一个专业才一位老师,老师的负担很大,同学们的问题也不能得到及时解决。iv. 更改实习的时间,中间休息了一个月回来后好多知识都忘记了,即使复习也没刚考完试那会掌握的熟练。附件1(管脚分配图):端口名使用模块信号对应FPGA管脚说 明按键开关S1R16调整小时按键开关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脉冲源

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1