




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEIPAGEII东北石油大学课程设计课程课程硬件课程设计题目数字时钟设计院系计算机与信息技术学院专业班级学生姓名学生学号指导教师东北石油大学课程设计任务书课程硬件课程设计题目数字时钟设计专业主要内容、基本要求等一、主要内容:利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言和层次设计方法设计实现数字钟,完成硬件设计设计和功能仿真,最后下载到EL教学实验箱中予以实现。二、基本要求:1.具有时,分,秒,计数显示功能,以24小时循环计时。2.具有清零功能。三、扩展要求1.整点报时功能。四、参考文献[1]孙富明,李笑盈.基于多种EDA工具的FPGA设计,电子技术应用,2002年1月,第1期[2]潘松,黄继业.EDA技术实用教程.北京:科学出版社,2002[3]卢杰,赖毅.VHDL与数字电路设计.北京:科学出版社,2001[4]谭会生,张昌凡.EDA技术及应用[M].西安:西安电子科技大学出版社,2004.4.[5]江国强.EDA技术习题与实验[M].北京:电子工业出版社,2005.1.完成期限2周指导教师专业负责人2012年PAGE17东北石油大学本科生课程设计(论文)第1章概述EDA的简述EDA技术是现代电子信息工程领域的一门新技术,EDA主要包括4大要素:1.大规模可编程逻辑器件2.硬件描述语言3.软件开发工具4.实验。开发系统但从EDA技术的几个主要方面的内容来看,可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片[2]。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的QAE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能[3]。20世纪90年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成[4]。EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图;在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造[5]。21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。1.2EDA技术设计方法(1)前端设计(系统建模RTL级描述)后端设计(FPGAASIC)系统建模。
(2)IP复用。
(3)前端设计。
(4)系统描述:建立系统的数学模型。
(5)功能描述:描述系统的行为或各子模块之间的数据流图。
(6)逻辑设计:通常以文本、原理图、逻辑图、布尔表达式来表示设计结果。
(7)仿真:包括功能仿真和时序仿真,主要验证系统功能的正确性及时序特性。第2章系统工作平台介绍2.1EDA的软件工作平台PLD(ProgrammableLogicDevice)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有两大类型:CPLD(ComplexPLD)和FPGA(FieldProgrammableGateArray)。它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。我们采用了QuartusⅡ软件作为开发工具。2.2QuartusⅡ软件概述QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。第3章数字时钟主要设计过程3.1数字时钟设计思想1.时钟计数: 秒——60进制BCD码计数; 分——60进制BCDD码计数; 时——24进制BCDD码计数;同时整个计数器有清零功能,在接近整数时间能提供报时信号。2.具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。3.扬生器在整点时有报时驱动信号产生。3.2数字时钟设计流程图时钟输入信号1时钟输入信号1秒模块时模块八段数码管显示分模块报时模块进位时钟输入信号2进位图3-1数字时钟流程图第4章数字时钟的详细设计过程4.1秒模块秒模块的主要功能是由60进制(由两个10进制的计数器拼凑出来,分别对秒个位以及秒十位进行计数)的计数器实现的,其中设置了两个输入端:clk和rst做为时钟和使能端;三个输出端:sec0,sec1和co分别作为秒个位,秒十位和进位端;两个计数变量cnt1和cnt0。在进程中,当rst为高电平时,则将变量cnt1与cnt0同时清零。当时钟信号发生改变并且出现上升沿时,如果变量cnt1与cnt0分别为5和9时,则进位输出端高电平有效。否则当变量cnt0小于9时,cnt0计数加1,进位输出端低电平不输出。当变量cnt0大于等于9时,变量cnt0清零,同时变量cnt1计数加1,进位输出端低电平不输出。最后再将两个变量cnt1与cnt0分别送给输出端sec1和sec0(如图4-1所示)。图4-1秒模块秒模块程序节选:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitySECONDisport(clk,rst:instd_logic;时钟/清零信号sec1,sec0:outstd_logic_vector(3downto0);秒高位/低位co:outstd_logic);输出/进位信号endSECOND;architectureSECofSECONDis…………下图为秒模块程序仿真图:图4-2秒模块仿真图4.2分模块同秒模块相似也由60进制(由两个10进制的计数器拼凑出来,分别对分个位以及分十位进行计数)的计数器实现的,其中设置了两个输入端:clk和clr做为时钟和使能端;三个输出端:min0,min1和co分别作为分个位,分十位和进位端;两个计数变量cnt1和cnt0。在进程中,当clr为高电平时,则将变量cnt1与cnt0同时清零。当时钟信号发生改变并且出现上升沿时,如果变量cnt1与cnt0分别为5和9时,则进位输出端高电平有效。否则当变量cnt0小于9时,cnt0计数加1,进位输出端低电平不输出。当变量cnt0大于等于9时,变量cnt0清零,同时变量cnt1计数加1,进位输出端低电平不输出。最后再将两个变量cnt1与cnt0分别送给输出端min1和min0(如图4-3示)。图4-3分模块分模块程序节选:…………beginifclr='1'then当clr为1时,高低位均为0cnt1:="0000";cnt0:="0000";elsifclk'eventandclk='1'thenifcnt1="0101"andcnt0="1001"then当记数为59(即经过59个记时脉冲)co<='1';进位cnt1:="0000";cnt0:="0000";elsifcnt0<"1001"then小于9时cnt0:=cnt0+1;co<='0';elsecnt0:="0000";cnt1:=cnt1+1;co<='0';endif;endif;…………分模块仿真图如下:图4-4分模块仿真图4.3时模块秒模块的主要功能是由24进制(同样由两个10进制的计数器拼凑出来,分别对时个位以及时十位进行计数)的计数器实现的,其中设置了两个输入端:clk和clr做为时钟和使能端;三个输出端:h1,h0和co分别作为时个位,时十位和报时端;两个计数变量cnt1和cnt0。在进程中,当clr为高电平时,则将变量cnt1与cnt0同时清零。当时钟信号发生改变并且出现上升沿时,如果变量cnt1与cnt0分别为2和3,则将变量cnt1与cnt0同时清零。否则当变量cnt0小于9时,cnt0计数加1,报时输出端高电平有效。当变量cnt0大于等于9时,变量cnt0清零,同时变量cnt1计数加1,报时输出端高电平有效。最后再将两个变量cnt1与cnt0分别送给输出端h1,h0(如图4-5所示)。图4-5时模块时模块程序节选:………………elsecnt1:=cnt1+1;高位记数累加cnt0:="0000";co<='1';endif;endif;h1<=cnt1;h0<=cnt0;endprocess;endhour_arc;下图为时模块仿真图:图4-6时模块仿真图4.4报时模块报时模块很简单,其输入端:clk作为时钟,m0、m1、s0、s1作为秒个/十位、分个/十位的信号输入端。输出端:qlk作为报时端。当clk为高电平有效时,如果m0、m1、s0、s1同时有效,则qlk输出‘1’,否则qlk输出‘0’(如图4-7所示)。图4-7报时模块报时模块程序节选:…………process(clk)beginifm1="0101"andm0="1001"ands1="0101"ands0="1001"then当秒高位为5,低位为9时且分高位为5,低位为9时,也就是“59分59秒”的时候“报时”qlk<='1';高频输出为1elseqlk<='0';endif;…………4.5八段数码管扫描电路该模块是由计数器来实现的。输入端:clk,sec0,sec1,min0,min1,h0,h1分别作为扫描时钟,和秒个/十位,分个/十位,时个/十位,输出端:daout,sel分别作为输出显示和位选信号端。信号:count作为计数信号。在进程中,当clk发生改变并且出现上升沿时,如果信号count大于等于5时,则将其清零,否则计数加1。通过case语句在计数器中的6种信号状态下将秒个/十位,分个/十位,时个/十位分别送给输出端daout。最后将信号count送给位选信号端sel(如图4-8所示)。图4-8八段数码管扫描电路数码管显示驱动电路程序节选:…………casecountiswhen"000"=>daout<=sec0;秒个位when"001"=>daout<=sec1;秒十位when"010"=>daout<=min0;分个位when"011"=>daout<=min1;分十位when"100"=>daout<=h0;时个位when"101"=>daout<=h1;时十位whenothers=>daout<=sec0;endcase;…………4.6数码管显示驱动电路该模块的输入端为d,它与八段数码管扫描电路相连,输出端为q,是段选信号输出端。通过case语句将0到9的每个数字用7段译码管表示出来并送给输出端q(如图4-9所示)。4-9数码管显示驱动电路数码管显示驱动电路程序节选:…………casediswhen"0000"=>q<="0111111";--显示0when"0001"=>q<="0000110";--显示1when"0010"=>q<="1011011";--显示2when"0011"=>q<="1001111";--显示3when"0100"=>q<="1100110";--显示4when"0101"=>q<="1101101";--显示5when"0110"=>q<="1111101";--显示6when"0111"=>q<="0100111";--显示7when"1000"=>q<="1111111";--显示8whenothers=>q<="1101111";--显示9endcase;…………4.7数字时钟顶层文件顶层文件的输入端有跟秒模块时钟端相连的clk1端,与秒、分、时模块使能端相连的reset,与八段数码管扫描电路的时钟端相连的clkdsp。输出端有与报时模块相连的喇叭speaker,与数码管显示驱动电路相连的dp,与八段数码管扫描电路相连的sel1。在内部连线中,秒模块的个/十位的输出端、分模块的个/十位的输出端、时模块的个/十位的输出端通过信号分别与数码管显示驱动电路的输入端sec0,sec1,min0,min1,h0,h1和报时模块的m0、m1、s0、s1相连。秒模块的进位输出端与分模块的时钟输入端相连,分模块的进位输出端与时模块的时钟输入端相连,时模块的报时输出端与报时模块的时钟输入端相连,数码管显示驱动电路的输入端为与八段数码管扫描电路的输出端相连。顶层文件程序节选:…………COMPONENTHOURport(clk,clr:instd_logic;输入时钟/高电平有效的使能信号h1,h0:outstd_logic_vector(3downto0);co:outstd_logic);时高位/低位endCOMPONENT;COMPONENTALERTport(clk:instd_logic;高频声控制qlk:outstd_logic);低频声控制endCOMPONENT;…………第5章功能测试5.1顶层文件仿真对顶层文件进行仿真得出下图:图5-1顶层文件仿真图5.2引脚设置和下载图5-2图形式引脚锁定对话框图5-3配置文件下载窗口5.3电子数字钟硬件验证将电子数字钟的sof下载文件下载到EL试验箱的MAX7000芯片中,运行结果见图5-4所示。从图5-4中可见,秒、分、时电路均按60进制和24进制进行计数。本次设计达到了任务书中规定的任务。5-4EL教学实验箱显示图结论通过这段时间的学习,使我初步的掌握了EDA技术的应用,在此同时也掌握了其相关的应用软件QuartusII的安装及基本使用方法。在本次的课程设计中,利用微机和QuartusII软件系统,在老师的帮助下我完成了数字时钟的设计。并且通过多次的认证,确认实验结果与理论相一致,实验的设计和结果均为正确。在数字时钟的设计过程中我掌握了EDA技术的VHDL文本输入的设计方法,这种方法让设计更加的简洁和方便。同时也非常牢固了掌握了数字时钟的设计原理,包括计数器、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗设备的操作流程手册
- 电影行业特效制作与后期发行方案
- 建设工程施工合同概论
- 说明文书关于项目推进的解决方案介绍
- 手机摄影教程作业指导书
- 温州浙江温州乐清市司法局招聘编外人员笔试历年参考题库附带答案详解
- 2025年河北邯郸高三二模政治试卷【含答案】
- 组合式血液净化技术在治疗重症高甘油三酯血症性急性胰腺炎中的临床应用探究
- 分析药学干预对喹诺酮类抗菌药物临床合理用药的影响
- 高管信托协议书(2篇)
- 2025年时政题库及答案(100题)
- 碧桂园青岛后田项目专项拿地报告
- 2023年高考物理一轮复习练习题:机械振动(含基础、提升两套)
- GB/T 25659.1-2010简式数控卧式车床第1部分:精度检验
- 四种注射法专业知识讲座培训课件
- 卫生信息管理第一章绪论课件
- 国际关系理论现实主义自由主义建构主义分析与比较
- DB11_T1832.1-2021 建筑工程施工工艺规程第1部分:地基基础工程
- 第一章植物的生物大分子
- 天津海关各部门基本情况汇总表
- 总平面布置及CAD
评论
0/150
提交评论