EDA课程设计数字秒表的设计_第1页
EDA课程设计数字秒表的设计_第2页
EDA课程设计数字秒表的设计_第3页
EDA课程设计数字秒表的设计_第4页
EDA课程设计数字秒表的设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

经典word整理文档,仅参考,双击此处可删除页眉页脚。本资料属于网络整理,如有侵权,请联系删除,谢谢!《》题目:数字秒表的设计院专业班级:学生姓名:学号:指导教师:2013年6月24日至2013年7月3日课程设计任务书数字秒表的设计一、设计(调查报告/论文)题目四、要求的设计(调查/论文)成果第天六、主要参考资料2320年月日目录目录.........................................................................1摘要.........................................................................23.3.11000Hz3.3.2100Hz3.3.33.3.43.3.53.3.63.3.7附录........................................................................181摘要随着人们生活水平的日益提高,社会体系的日益完善,人们对于各种应用器件的要求也越来越高。秒表作为日常生活中,特别是体育运动中应用的特别广泛,所以精确利用VHDL在FPGA或CPLD上实现1/100VHDL与可编程逻辑器件灵活、高效、集成度高的特点。利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。该秒表能对0秒~59分59.59秒范围进行计时,显示最长时间是59分59秒。计时精度达到10ms。设计了复位开关和启停开关。复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。关键词:EDA技术VHDL语言计时器数码管21.设计目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,进一步了解EDA技术,同时也对计算机系统中时钟控制系统进行了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的,以及怎样变频的。在掌握所学课程理论知识时。通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。并让我们从中认识到自己的不足,以便以后加以改正,弥补自己的不足,以达到实验效果。1.计时精度应大于1/100S,计时器能显示1/100S的时间,误差小于0.5秒。2.计时器的最大计时时间为1小时,为此需要6位的显示器,显示的最长时间为59分59.99秒。3.设置有复位和起/停开关,复位开关用来使计数器清零,做好计时准备。起停开关的使用方法与传统的机械式计数器相同,即按一下,启动计时器开始计时,再按一下计时终止。3.1设计规划图如图1所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。图1系统组成框图3打开File下的New命令,新建源程序,新建文件类型的选择界面如图2所示。再执行File下的NewProject3所示,打开新建工程向导,根据提示进行有关设置或选择,创建一个新的工程,并要求工程名与顶层文件名一致。对于已经建立的文件或工程,需要使用时打开即可。图3新建工程向导操作43.3建立各个功能模块程序并进行仿真调试3.3.150MHz分频为1000Hz分频器的源程序libraryieee;useieee.std_logic_1164.all;entityclkgen1isport(clk:instd_logic;newclk:outstd_logic);endentityclkgen1;architectureartofclkgen1issignalcnt:integerrange0to10#49999#;beginprocess(clk)isbeginifclk'eventandclk='1'thenifcnt=10#49999#thencnt<=0;elsecnt<=cnt+1;endif;endif;endprocess;process(cnt)isbeginifcnt=10#49999#thennewclk<='1';elsenewclk<='0';endif;endprocess;endarchitectureart;3.3.250MHz分频为100Hz分频器的源程序libraryieee;useieee.std_logic_1164.all;entityclkgenisport(clk:instd_logic;newclk:outstd_logic);endentityclkgen;5architectureartofclkgenissignalcnt:integerrange0to10#499999#;beginprocess(clk)isbeginifclk'eventandclk='1'thenifcnt=10#499999#thencnt<=0;elsecnt<=cnt+1;endif;endif;endprocess;process(cnt)isbeginifcnt=10#499999#thennewclk<='1';elsenewclk<='0';endif;endprocess;endarchitectureart;3.3.3改变分频系数次才发生一次变化,在我们设定的时间间隔内,根本看不到输出的变化,也无法判断该程序的真确与否,故我其仿真程序如下:libraryieee;useieee.std_logic_1164.all;entityclkgenisport(clk:instd_logic;newclk:outstd_logic);endentityclkgen;architectureartofclkgenis--signalcnt:integerrange0to10#499999#;signalcnt:integerrange0to10#29#;beginprocess(clk)isbegin6endprocess;process(cnt)isendprocess;endarchitectureart;仿真结果如下图4所示:图4CLKGEN的时序仿真结果port(clk:instd_logic;clr:instd_logic;cq:outstd_logic_vector(3downto0);co:outstd_logic);7ifcqi="1001"thencqi<="0000";elsecqi<=cqi+'1';endif;endif;endprocess;process(cqi)isifcqi="0000"thenco<='1';elseco<='0';endif;endprocess;endarchitectureart;3.3.5六进制计数器的源程序8port(clk:instd_logic;clr:instd_logic;ifcqi="0101"thencqi<="0000";elsecqi<=cqi+'1';endif;endif;endprocess;process(cqi)isifcqi="0000"thenco<='1';elseco<='0';endif;endprocess;9process(clk)isendprocess;endarchitectureart;3.3.6数字秒表的源程序libraryieee;port(clr:instd_logic;clk:instd_logic;ena:instd_logic;dout:outstd_logic_vector(23downto0));endentitytimes;architectureartoftimesiscomponentclkgenisport(clk:instd_logic;newclk:outstd_logic);endcomponentclkgen;componentcnt10isport(clk,clr,ena:instd_logic;cq:outstd_logic_vector(3downto0);co:outstd_logic);endcomponentcnt10;componentcnt6isport(clk,clr,ena:instd_logic;cq:outstd_logic_vector(3downto0);co:outstd_logic);endcomponentcnt6;signals0:std_logic;signals1,s2,s3,s4,s5:std_logic;beginu0:clkgenportmap(clk=>clk,newclk=>s0);u1:cnt10portmap(s0,clr,ena,dout(3downto0),s1);u2:cnt10portmap(s1,clr,ena,dout(7downto4),s2);u3:cnt10portmap(s2,clr,ena,dout(11downto8),s3);u4:cnt6portmap(s3,clr,ena,dout(15downto12),s4);u5:cnt10portmap(s4,clr,ena,dout(19downto16),s5);u6:cnt6portmap(s5,clr,ena,dout(23downto20));endarchitectureart;所示:architecturebehvofledisbeginwhen"0000"=>dout<="0111111";when"0001"=>dout<="0000110";when"0010"=>dout<="1011011";when"0011"=>dout<="1001111";when"0100"=>dout<="1100110";when"0101"=>dout<="1101101";when"0110"=>dout<="1111101";when"0111"=>dout<="0000111";when"1000"=>dout<="1111111";when"1001"=>dout<="1101111";when"1010"=>dout<="1110111";when"1011"=>dout<="1111100";when"1100"=>dout<="0111001";when"1101"=>dout<="1011110";when"1110"=>dout<="1111001";when"1111"=>dout<="1110001";whenothers=>dout<="0000000";endcase;逻辑总图如下图9:图9逻辑总图Display逻辑图如下图11:在本次设计过程中,我查阅了大量的书籍,不但巩固和加深了所学的专业基础课知识,还将所学的知识融会贯通,并且将课本与实际相结合,真正实现了学有所用。通过这次课程设计之后,一定把以前所学过的知识重新温故。我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在课程设计过程中遇到各种问题是常有的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的。课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。一定的联系。在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论