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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数字时钟设计课程设计.docx

1、数字时钟设计课程设计东 北 石 油 大 学课 程 设 计课 程 硬件课程设计 题 目 数字时钟设计 院 系 专业班级 学生姓名 学生学号 指导教师 2011年 7 月 10日2012年 6 月 10日东北石油大学课程设计任务书课程 硬件课程设计 题目 数字时钟设计 专业 主要内容、基本要求等一、主要内容:利用EL教学实验箱、微机和Quartus软件系统,使用VHDL语言和层次设计方法设计实现数字钟,完成硬件设计设计和功能仿真,最后下载到EL教学实验箱中予以实现。二、基本要求:1.具有时,分,秒,计数显示功能,以24小时循环计时。2.具有清零功能。三、扩展要求1.整点报时功能。四、参考文献1 崔

2、国玮.李文涛.基于EDA技术的数电课程设计新模式的探索与实践J. 2008 2 李国洪.沈明山.可编程逻辑器件EDA技术与实践M.机械工业出版社.20083 金凤莲.VHDL语言在EDA仿真中的应用现代电子技术J.2005 4 邢小杰.单片机电子时钟设.中国科技博览J.2009 5 王玫.基于EDA技术的数字电路课程设计实例分析J.20096 张晓军.解大.陈陈.VHDL语言在电子设计自动化中的应用J.2002 完成期限 第18-19周 指导教师 专业负责人 2011年 6月 10日目 录第一章 概述 11.1 EDA 技术简介 11.2 课题背景 11.3 EDA发展趋势 21.4 系统的总

3、体设计 2第二章实验开发系统软件介绍 32.1 VHDL设计步骤 32.2系统软件介绍 3第三章 数字时钟的设计 53.1 设计目的 53.2 设计原理 53.3 设计要求 53.4 单元模块的设计 53.5 引脚设置 123.6系统测试 123.7 实验连线 13结论 15参考文献 16第1章 概述1.1 EDA 技术简介现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic d

4、esign automatic,EDA)技术。电子技术领域全方位融入EDA技术,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化,如软件无线电技术的崛起、模拟电路系统硬件描述语言的表达和设计的标准化、系统可编程模拟器件的出现、数字信号处理和图像处理的全硬件实现方案的普遍接受以及软硬件技术的进一步融合等1。 EDA使得电子领域各学科的界限更加模糊,更加互为包容,如模拟与数字、软件与硬件、系统与器件、ASIC与FPGA、行为与结构等。随着硬件描述语言的标准化进一步确立,计算机辅助工程、辅助分析和辅助设计在电子技术领域获得更加广泛的应用。与此同时,电子技术在通信、计算机及家电产品

5、生产中的市场需求和技术需求,极大地推动了全新的电子设计自动化技术的应用和发展,特别是集成电路设计工艺步入了超深亚微米阶段,百万门以上的大规模可编程逻辑器件的陆续面世,以及基于计算机技术的面向用户的低成本大规模ASIC设计技术的应用,促进了EDA技术的形成。更为重要的是各EDA公司致力于推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件的研究,更有效地将EDA技术推向成熟和实用2。1.2 课题背景FPGA嵌入式应用开发技术与数字钟技术发展的客观实际出发,通过对该技术发展状况的了解,以及课题本身的需要,指出研究基于FPGA的芯片系统与设计数字钟的设计与实现的必要性。课题相关技术的发展当

6、今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上MaxplusII(或最新的QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式

7、,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。本设计利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。数字钟可以由各种技术实现,如单片机等利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优

8、良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现3。1.3 EDA发展趋势EDA 技术发展趋势面对当今飞速发展的电子产品市场,设计师需要更加实用、快捷的 EDA 工具,使用统一的集成化设计环境,改变传统设计思路,将精力集中到设计构思、方案比较和寻找优化设 计等方面,需要以最快的速度,开发出性能优良、质量一流的电子产品,对 EDA 技术提出 了更高的要求。未来的 EDA 技术将在仿真、时序分析、集成电路自动测试、高速印刷电路 板设计及开发操作平台的扩展等方面取得新的突破,向着功能强大、简单易学、使用方便的 方向发展4。1.4 系统的总体设计数字时钟是一种用数字电路技术实现时、分、秒计时的

9、装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,数字时钟可植入自动控制、测试等系统内部,作为系统的时钟源,可为系统提供定时信号或中断控制的时间基准,具有广泛的用途。由于数字集成电路的发展使得数字时钟的精度远远超过老式钟表,而且加入了一些诸如自动报时、定时闹钟等功能。这些都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。数字时钟的设计方法有很多种,包括基于单片机的硬件设计、基于各种描述语言的软件设计,本设计采用VHDL语言来设计数字时钟有着多方面的优越性,通过把整个设计分为多个模块依次来实现,减少了众多重复性步骤,合理化了设计过程,使

10、得设计更加省时、快捷,提高了设计效率5。第2章实验开发系统软件介绍2.1 VHDL设计步骤采用VHDL的系统设计,一般有以下6个步骤:1)按照要求的功能模块划分;2)VHDL的设计描述(设计输入);3)代码仿真模拟(前仿真);4)计综合、优化和布局布线;5)布局布线后的仿真模拟(后仿真);6)设计的实现(下载到目标器件)2.2系统软件介绍Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编

11、程语言接口等特点。Quartus II 支持原理图输入与Verilog HDL 和VHDL输入混合设计,它除了承接原来的Max+Plus II 软件的部设计功能和器件对象外,还增加了许多新功能和新的FPGA器件系列。它可对设计进行功能仿真,对数字电路的设计实现同步模拟分析和时序仿真。这种同步模拟分析、时序仿真在数字电路的教学中可以起到很好的辅助作用。逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件VHDL网表文件和Verilog基于VHDL

12、的数字时钟设计和时序仿真网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。Quartus II软件设计流程设计输入:设计文件的输入方法有原理图输入、文本输入、内存编辑以及由第三方EDA工具产生的网表输入、格式输入,生成方法不同,生成的文件格式也有所不同。在图形设计文件中,Quartus II软件为了实现不同的逻辑功能提供了大量的基本单元符号和宏功能模块,在图形编辑器中可以直接调用;为了适应自顶向下的设计,设计者可以使用和Verilog HDL以及Tcl脚本输入文本型设计项目编译:项目编译主要完成设计项目的检查和逻辑综合,将项目最终设计结果生成器件的下载文件,并为模

13、拟和编程产生输出文件。仿真验证和时序分析:在把经过编译的输入设计编程或配置到器件之前,可以通过Quartus II软件的仿真器对文件进行全面测试,保证设计在各种可能的条件下都有正确的响应。根据所需的信息类型,可以进行功能仿真和时序仿真。Quartus II时序分析器允许分析设计中所有逻辑的性能,得出时序分析结果,如建立时间、保持时间、引脚到引脚延迟、最大时钟频率、延迟时间及其它时序特征,并协助引导适配器满足设计中的时序要求。器件编程:成功编译了设计工程之后,编译器的Assembler模块自动将适配过程的器件、逻辑单元和引脚分配信息转换为器件的编程图像,并以.sof形式保存,Quartus II

14、软件的编程器(programmer)使用该文件就可对器件进行编程配置。基于VHDL的数字时钟设计和时序仿真在Quartus II软件开发环境下,使用VHDL描述语言、结合FPGA开发板编译和仿真数字时钟;要求时钟能进行基本的计时功能,按照:“时:分:秒”来显示时间;并且能进行时间设置,具有整点报时功能,可对所有显示的内容进行调节设定6。第3章 数字时钟的设计3.1 设计目的设计一个24小时制数字钟,要求能显示时,分,秒,并且可以手动调整时和分具有清零功能。调节小时、分钟功能。整点报时功能,整点报时的同时LED灯花样显示。3.2 设计原理在同一EPLD芯片EPF10K10上集成了如下电路模块:

15、1时钟计数: 秒60进制BCD码计数; 分60进制BCDD码计数; 时24进制BCDD码计数;同时整个计数器有清零,调分,调时功能。在接近整数时间能提供报时信号。 2具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。 3扬生器在整点时有报时驱动信号产生。4. LED灯按个人口味在整点时有花样显示信号产生。3.3 设计要求1主芯片EPF10K10LC84-4。 28个LED灯。 3扬声器。 48位八段扫描共阴级数码显示管。5三个按键开关(清零,调小时,调分钟)3.4 单元模块的设计时钟的设计共化分为6个模块:秒计数器(second),分计数器(minute),小时计数器(hou

16、r),报警电路(alert),扫描电路(seltime),译码电路(deled)。下面具体分析各个模块的原理、内容和功能。分别对秒、分、小时进行计数。整个计数模块从00点00分00秒开始计时,当计数到23点59分59秒的时候,一天结束,计数器清零,新的一天重新开始计数。秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号。要设计一个同时显示时、分、秒6个数字的数字时钟,则需要6个七段数码显示管。通过产生一个扫描信号来控制6个七段显示器,依次点亮6个七段数码显示管,也就是每次只点亮一个七段显示器。只要扫描信号的频率超过人的眼睛视觉暂留频率24Hz以上

17、,就可以达到尽管每次点亮单个七段数码显示管,却能具有6个同时显示的视觉效果,而且显示也不致闪烁抖动。其中6位扫描信号一方面控制七段显示器依次点亮,时间数据选择模块的作用是将时钟产生的秒、分钟、小时信号集合起来,然后驱动六位七段数码管的片选驱动信号输出。1.秒模块的设计;能够实现60进制循环计数,带有复位端reset、手动调分功能端setmin和向分进位端enmin ,受时钟上升沿信号控制,其文本语言(文件名:second.vhd)为底层文本,图1为秒计数器的仿真波形图。process ( clk , reset , setmin) -秒计数进程 begin - enmin=k; if (res

18、et=0) then count = 0000000;-复位信号为1时,秒计数清零 elsif (setmin=0) then enmin = clk; elsif (clk event and clk=1) then -给他一个上升沿,然后 if (count(3 downto 0)=1001) then if (count 16#60#) then if (count=1011001) then enmin=1; -当秒计数为58时进位信号为1 count=0000000; ELSE count=count+7; -分低位小于9时,cnt加1 end if; else count=0000

19、000; end if; elsif (count 16#60#) then count = count+1;-秒高位小于5时,加1 enmin=0 after 100 ns; else count=0000000; end if; end if; end process;第一个模块为秒计数模块,其实质是一个六十进制计数器,其中输入管脚: clk为1hz的时钟脉冲;reset为秒模块清零复位键;setmin为调分钟按键输出管脚:enmin为分模块的进位信号。 如图所示:图3-1 六十进制秒计数器的仿真波形2.分模块的设计;能够实现60进制循环计数,带有带有复位端reset、手动调小时功能端se

20、thour和向分进位端enhour ,受时钟上升沿信号控制。其文本语言(件名:minute.vhd)为底层文本,图2为分计数器的仿真波形图process ( clk,reset,sethour) -分计数进程 begin if (reset=0) then count = 0000000; elsif (sethour=0) then enhour = clk1; elsif (clk event and clk=1) then-时钟上升沿,en为1时分开始计数 if (count(3 downto 0)=1001) then if (count 16#60#) then if (count=

21、1011001) then enhour=1; -当分计数到58时产生进位信号 count=0000000; ELSE count=count+1; -分低位小于9时,cnt加1 end if; else count=0000000; end if; elsif(count 16#60#) then -用十六进制表示60 count = count + 1; enhour=0 after 100 ns; else count=0000000; end if; end if; end process;计数模块的第二个模块为分计时模块,其实质是一个六十进制计数器,其中:输入管脚:clk为秒模块输出

22、的进位信号;clk1为1hz的时钟控制脉冲;reset管脚的作用为分模块的清零、复位sethour为调小时按键。输出管脚:enhour输出为时模块的进位信号如图所示:图3-2 六十进制分计数器的仿真波形3.时模块的设计;能够实现24进制循环计数,带有复位端reset,受时钟上升沿信号控制。其文本语言(文件名:hour.vhd)为底层文本,图2为分计数器的仿真波形图。process ( clk,reset) -小时计数进程 begin if (reset=0) then count = 000000; elsif (clk event and clk=1) then-时钟上升沿,en为1时小时开

23、始计数 if (count(3 downto 0)=1001) then if (count 16#24#) then -如果用用16进制表示24 count=count + 1; else count=000000; end if; elsif(count 16#24#) then -十六进制表示24 count = count + 1; else count=000000; end if; end if; end process;如图所示: 图3-3 小时计数器的仿真波形第三个模块为小时计数模块,其实质是一个二十四进制计数器,其中:输入管脚:clk为分模块输出的进位信号; Reset为小时

24、模块的清零、复位管脚. 输出模块:dout5.0为小时模块输出的计数信号4.报时模块的设计;能够实现整点报时和循环点亮3只LED灯,工作时受时钟上升沿控制。其文本语言(文件名:alert.vhd)为底层文本,图4为其仿真波形。speaker:process (clk) - 进程 begin- 开始 speak =10) then count1=00; else count1 = count1 + 1;-加1给count1 end if; end if; end if; end process speaker;lamper:process(clk) begin if (rising_edge(c

25、lk)then if (count = 10) then if (count =00) then lamp = 001 ; -第一个灯亮 elsif (count = 01) then lamp = 010 ; -第二个灯亮 elsif(count=10) then lamp = 100 ;-第三个灯亮 end if; count = count + 1; else count = 00; -如果没有加1的话就都不亮 end if; end if; end process lamper;如图所示:图3-4 报警电路的仿真波形报警模块的作用是在时钟整点的时候输出一个报时信号,信号作用用开发板上,

26、产生外部响声,起到报时的作用,同时可以选择在开发板的LED上显示出整点报时的LED花样显示,其中:输出管脚:clk为1hz的脉冲信号; dain6.0是分钟的输入信号; 输出管脚:speak为整点报时的声音输出lamp2.0为整点报时的LED输出5.译码器模块的设计;能够实现译码功能,将扫描到的数据能够译码显示在7段数码管上,输出端led6.0分别对应数码管的ag。其文本语言(文件名:deled.vhd)为底层文本。BEGIN led = 1111110 when num= 0000 else 0110000 when num= 0001 else 1101101 when num= 0010

27、 else 1111001 when num= 0011 else 0110011 when num= 0100 else 1011011 when num= 0101 else 1011111 when num= 0110 else 1110000 when num= 0111 else 1111111 when num= 1000 else 1111011 when num= 1001 else 1110111 when num= 1010 else 0011111 when num= 1011 else 1001110 when num= 1100 else 0111101 when num= 1101 else 1001111 when num= 1110 else 1000111 when num= 1111 ; END fun;6.扫描模块的设计;能够实现逐次扫描秒个位、秒十位、分个位、分十位、时个位、时十位,并输出扫描数据和相应位的点dp,带有复位端reset,受扫描时钟上升沿控制。其文本语言(文件名:seltime.vhd)为底层文本,图5为其仿真波形。process ( clk1,reset) begin if (reset =0) then-如果设置等于0 count = 000; elsif (clk1 e

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

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