基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真_第1页
基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真_第2页
基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真_第3页
基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真_第4页
基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉工程大学邮电与信息工程学院武汉工程大学邮电与信息工程学院毕业设计(毕业设计( 论论 文文 )说明书)说明书论文题目 基于基于 VHDLVHDL 硬件描述语言的篮球比赛计时器的设计与仿真硬件描述语言的篮球比赛计时器的设计与仿真 学 号 学生姓名 专业班级 指导教师 总评成绩 年 月 日武汉工程大学邮电与信息工程学院毕业设计论文- 0 -文献综述文献综述一、概述一、概述本人所做的毕业论文设计是基于 VHDL 硬件描述语言对简易的篮球比赛计时器的设计,因此在开题之初,我查阅大量的相关资料以及对资料的分析、整理为将要写作论文作参考。由此可知,本文主要介绍计时器中VHDL硬件描述语言的设计。VHDL

2、语言是一种用于电路设计的高级语言。它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的

3、设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。二、正文综述二、正文综述1.VHDL1.VHDL 硬件描述语言的回顾与展望硬件描述语言的回顾与展望本次的论文是基于 VHDL 硬件描述语言的篮球比赛计时器的设计,因此有必要对 VHDL 硬件描述语言要有深刻的了解。VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言 。自 IEEE 公布了 VHDL 的标准版本,

4、IEEE-1076(简称 87 版)之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和VHDL 接口。此后 VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的1076-1993 版本, (简称 93 版) 。现在,VHDL 和 Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多 EDA 公司的支持,在电子工程领域,已成为事实上的通用硬武汉工程大学邮电与信息工程学

5、院毕业设计论文- 1 -件描述语言。有专家认为,在新的世纪中,VHDL 于 Verilog 语言将承担起大部分的数字系统设计任务。VHDL 语言作为一种数字电子系统设计语言,在集成电路前端设计,用 FPGA器件实现的数字电子系统设计的过程中,发挥着十分重要的作用。用 EDA 工程的方法进行现代电子系统设计,对于科研、教学领域是一门新发展的工程学科,对于信息产业领域的设计企业、生产企业是一项先进的设计和生产技术。电子设计技术由于计算机技术的发展而产生了巨大变化。经典的电子设计方法,是用电路图表示设计思想,用实验电路板搭载实验电路,进行模拟、仿真,用电子测试仪器进行功能、性能测试。20 世纪 80

6、 年代,计算机辅助设计(CAD)技术开始发展,许多 CAD 工具软件开始流行。在信息学科领域也和其他学科一样,计算机辅助设计技术步入了发展轨道。由于电子科学是计算机科学的基础,计算机学科的发展离不开电子学科的支持,但是计算机科学又反作用于电子科学,加速了电子学科的发展。这样构成了一个闭环正反馈系统,使得电子设计技术很快由计算机辅助设计阶段进入了电子设计自动化(EDA)阶段。这是一个质的飞越,因为在 EDA 工程中,用硬件描述语言表达设计思想,用计算机进行模拟、仿真,可测试设计把测试器件设计到芯片系统内部,实现了内建自测试功能。利用 EDA 集成设计环境,可以使电子设计流程全自动实现。我们把利用

7、 EDA 工程进行电子设计的方法称为现代电子设计。 20 世纪 80 年代,电子产品设计由分立元件设计过渡到用通用集成电路为基本元件的设计。这两个阶段各自有几十年的发展时间。随着 EDA 工程的发展,电子产品的设计在 21 世纪初进入到以 IP 核为基本单元的设计时代。在电子设计初级阶段,设计工程师用分立电子元件设计电路,体积大,功耗多,可靠性低。采用通用集成电路芯片设计电子系统后,电子系统整机体积大大缩小,功耗大幅度下降。TTL 门电路、CMOS 器件都是设计工程师选择的常用元件。在现代电子设计阶段,设计工程师不再选用分立电子元件、通用集成电路,而是选用 IP 核作为电子设计的基本元件。这在

8、概念上有较大差别。分离元件、通用集成电路芯片是一个实际的电子元件,IP 核则是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。利用 IP 核设计电子系统,引武汉工程大学邮电与信息工程学院毕业设计论文- 2 -用方便,修改基本元件的功能容易。具有复杂功能和商业价值的 IP 核一般具有知识产权,尽管 IP 核的市场活动还不规范,但是仍有许多集成电路设计公司从事 IP 核的设计、开发和营销工作。IP 核有两种,与工艺无关的 VHDL 程序称为软核;具有特定电路功能的集成电路版图称为硬核。硬核一般不允许更改,利用硬核进行集成电路设计难度

9、大,但是容易成功流片。2. VHDL 硬件描述语言优点综述硬件描述语言优点综述功能强大、设计灵活。 VHDL 具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。 VHDL 支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。 VHDL 还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。由于 VHDL 已经成为 IEEE 标准所规范的硬件描述语言,目前大多数 EDA 工具几乎都支持 VHDL,这为 VHDL 的进一步推广和广

10、泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL 编写的源代码,因为 VHDL 易读和结构化,所以易于修改设计。强大的系统硬件描述能力。 VHDL 具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL 支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL 支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。独立于器件的设计、与工艺无关。设计人员用VHDL 进行设计时,不需要首先考虑选择完成设计的器件,就可

11、以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。很强的移植能力。 VHDL 是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。易于共享和复用。 VHDL 采用基于库 (Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将武汉工程大学邮电与信息工程学院毕业设计论文- 3 -这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。与其他的硬件描述语言相比, VHDL 具有更强的行为描述能力,从而决定了他成为系统

12、设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,对于用 VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动的把 VHDL 描述设计转变成门级网表。VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设

13、计。3. MAX+plus II 软件仿真技术介绍软件仿真技术介绍上面已经简单的叙述了 VHDL 硬件描述语言的优势。下面简述一下将要在我的设计中使用到的 VHDL 硬件描述语言的编辑平台MAX+plus II。MAX+plus II 是 Altera 公司提供的 FPGA/CPLD 开发集成环境,Altera 是世界上最大可编程逻辑器件的供应商之一。MAX+plus II 界面友好,使用便捷,被誉为业界最易用易学的 EDA 软件。在 MAX+plus II 上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速

14、处理和器件编程。MAX+plus II 开发系统的特点:MAX+plus II 支持与 Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic 和其它公司所提供的 EDA 工具接口。MAX+plus II 系统的核心 Complier 支持 Altera 公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000 和 Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。MAX+plus II 的设计输入、处理与较验功能全部集成在统一的开发环境下,这武汉工程大学

15、邮电与信息工程学院毕业设计论文- 4 -样可以加快动态调试、缩短开发周期。MAX+plus II 提供丰富的库单元供设计者调用,其中包括 74 系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function) 。设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。MAX+plus II 软件支持各种 HDL 设计输入选项,包括 VHDL、Verilog HDL 和Altera 自己的硬件描述语言 AHDL。MAX+plus II 软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函三、总结三、总结本文中篮球比赛

16、计时器所运用的 VHDL 硬件描述语言是一款用于电路设计的高级语言。VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。 随着技术的不断发展,VHDL 硬件描述语言的功能会变得越来强大,其应用也越来越广泛,给人们的生活工作带来极大的便利。

17、武汉工程大学邮电与信息工程学院毕业设计论文- 5 -摘摘 要要随着 EDA 技术的高速发展,VHDL 硬件描述语言作为硬件电路设计的一种重要工具成为现代高科技社会的一个闪亮标志。VHDL 发展的目的是为了将电子电路的设计和内部的含义用文件的方式存储起来,以便其他人能够轻易地了解电路的设计意义。这也就是说设计电路可以通过文子描述的方式完成设计工作,电子电路也可以当做文件一样来存储。VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。本文讲述了基于 VHDL 硬件描述语言的篮球比赛计时器的基

18、本原理,组成与设计,程序的编译,与 MAX+plus II 软件的仿真等相关技术。首先把计时器的设计分为顶层和底层两部分,在底层中划分多个模块并分别进行程序设计,最后运用MAX+plus II 软件进行仿真调试。关键词:关键词:VHDL 篮球比赛计时器 模块 MAX+plus II 仿真武汉工程大学邮电与信息工程学院毕业设计论文- 1 -AbstractWith the rapid development of EDA technology, VHDL hardware description language hardware circuit design as an important t

19、ool for modern high-tech society has become a shining symbol. VHDL is designed for the development of electronic circuit design and the meaning of the internal use of papers stored so that other people can easily understand the meaning of circuit design. That is to say the design of the circuit can

20、be described by way of sub-text to complete the design work, the electronic circuit can also be the same as a file to store. VHDL description of digital systems primarily for the structure, behavior, functions and interfaces. In addition to containing many features of the statement outside the hardw

21、are, VHDL description of the language forms and style and syntax are very similar to the general high-level language computer. This thesis describes VHDL hardware description language based on the basketball game timer basic principles, composition and design, procedures for compiling, with the MAX

22、+ plus II simulation software and other related technologies. First of all, the design of the timer into the top and the bottom two parts, divided at the bottom in a number of modules and procedures were designed, and finally the use of MAX + plus II simulation software debugging.Key words:VHDL bask

23、etball game timer module MAX+plus II simulation武汉工程大学邮电与信息工程学院毕业设计论文- 1 -目目 录录1. 前 言.- 1 -2. 设计思想及原理.- 2 -3. 按键输入模块的设计.- 5 -3.1 设计思想.- 5 -3.2 程序及仿真.- 5 -4. 时钟分频模块的设计.- 8 -4.1 设计思想.- 8 -4.2 程序及仿真.- 8 -5. 计时器控制模块的设计.- 13 -5.1 设计思想.- 13 -5.2 程序及仿真.- 13 -6. 计时模块的设计.- 16 -6.1 设计思想.- 16 -6.2 程序及仿真.- 16 -7

24、. 显示模块的设计.- 24 -7.1 设计思想.- 24 -7.2 程序及仿真.- 26 -8. 顶层设计.- 35 -8.1 模块综合.- 35 -8.2 全电路仿真.- 35 -武汉工程大学邮电与信息工程学院毕业设计论文- 1 -9. 结束语.- 40 -参考文献.- 41 -附录 1 .- 42 -附录 2.- 43 -附录 3.- 45 -附录 4.- 46 -附录 5.- 49 -武汉工程大学邮电与信息工程学院毕业设计论文- 2 -1.1. 前前 言言 随着 EDA 技术的高速发展,VHDL 硬件描述语言作为硬件电路设计的一种重要工具成为现代高科技社会的一个闪亮标志。VHDL 发展

25、的目的是为了将电子电路的设计和内部的含义用文件的方式存储起来,以便其他人能够轻易地了解电路的设计意义。这也就是说设计电路可以通过文子描述的方式完成设计工作,电子电路也可以当做文件一样来存储。VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个

26、系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。本文说要的是如何通过 VHDL 硬件描述语言来设计简易的篮球比赛计时器。武汉工程大学邮电与信息工程学院毕业设计论文- 1 -2.2. 设计思想及原理设计思想及原理 一般的,篮球比赛计时器采用数字电路系统,计时器内部电路使用通用的集成逻辑器件设计,通过 LED 显示器直观的显示给比赛场中的所有人,而这种方法设计复杂,工序繁琐,器件较多,体积较大。

27、采用可编程逻辑器件设计的数字系统体积小,功耗低,可靠性高而且易于修改,而 VHDL 硬件描述语言作为可编程逻辑器件的基本工具,用户只需通过计算机和开发工具,将所设计的电路或系统用 VHDL 编程并下载到可编程逻辑芯片上就完成了系统的功能设计。因此,使用 VHDL 硬件描述语言对篮球比赛计时器的电路进行设计是一种更快速,便捷的方法,也是当今社会数字电路设计的主流选择。篮球比赛计时系统的设计内容如下: 采用 6 个 LED 七段显示器,1 个启动/暂停键,1 个复位键。 计时器的计时最长为 20 分钟,精确到 0.01 秒,以倒计时的方式计时到 0,计时到 0 时重新计时。 计时期间可以任意暂停,

28、复位。篮球比赛计时系统的 VHDL 程序设计如下:底层设计 按键输入模块:消除按键的弹跳抖动 时钟分频模块:将外部时钟信号进行分频给计时器各个模块 篮球比赛计时器控制模块:产生用于控制比赛计时器的使能信号 比赛时间计时模块:20 分钟倒计时计数 显示模块:将计时效果通过 LED 七段显示器显示出来顶层设计 各模块综合根据篮球比赛计时系统的设计要求,工作原理和基本设计方案,它的设计系统结构框图如下图 2-1 所示:武汉工程大学邮电与信息工程学院毕业设计论文- 2 -图 2-1 篮球比赛计时器的系统结构框图根据设计系统结构框图,可以看出系统的输入输出信号包括:外部时钟信号 clk:输入信号;比赛时

29、间复位开关信号 reset:输入信号;启/停开关信号 on_off:输入信号;LED 七段显示数码管的选通信号 choose7:0:输出信号;LED 七段显示数码管的输出信号 segment6:0:输出信号;给出设计的系统结构框图后,接下来的工作就是进行系统的模块划分以及确定这些模块之间的连接关系。因为计时系统的复位开关和启/停开关采用按键的输入方式,其产生时刻和持续时间的长短是随机不定的,且存在因开关簧片反弹引起的电平抖动现象,因此必须在每个开关后面安排一个消抖和同步化电路模块,以保证系统能捕捉到输入脉冲,并保证每按一键,只形成一个宽度为系统时钟周期的脉冲。由于外部时钟信号 clk 的频率为

30、 1000HZ,而实际需要的内部计时时钟频率为100HZ,提供给消抖同步电路的频率为 25HZ,因此需要一个时钟分频电路,通过这个分频电路,对外部时钟信号 clk 进行分频操作,用来产生所需的时钟信号。计时操作是在复位开关信号无效,并且两次启/停开关信号有效之间才能够进行的,因此需要一个电路用来产生使能信号。只有当这个使能信号有效时,系统才能进行计时操作。系统还要将计时的结果显示出来,为了节省资源,这里采用循环点亮 LED 七段显示数码管的方法来显示秒表的计时输出。通过 choose(5 DOWNTO 0)来进行 6 个LED 七段显示数码管的选择,从而将输出信号 segment(6 DOWN

31、TO 0)送到相应的武汉工程大学邮电与信息工程学院毕业设计论文- 3 -LED 七段显示数码管上已完成计时的显示。通过上面的说明,可以将篮球比赛计时器划分为 5 个模块:按键输入模块,时钟分频模块,计时器控制模块,计时模块,显示模块。根据系统的工作原理,可以给出系统的各个模块之间的具体连接关系,如图 2-2 所示。图 2-2 系统各个模块的连接关系图武汉工程大学邮电与信息工程学院毕业设计论文- 4 -3.3. 按键输入模块的设计按键输入模块的设计3.13.1 设计思想设计思想由于系统的复位开关和启/停开关采用按键的输入方式,其产生时刻和持续时间的长短是随机不定的,且存在因开关簧片反弹引起的电平

32、抖动现象,因此必须在每个开关后面加一个按键输入模块,即同步消抖电路。按键输入模块的作用是保证系统能捕捉到输入脉冲,并保证每按一次键,只形成一个宽度为模块时钟周期的脉冲。按键输入模块的工作原理是:每按一下复位开关 reset,按键输入模块将输出一个宽度为 1ms 的复位脉冲 reset0;每按一下启/停开关 on_off,按键输入模块将输出一个宽度为 1ms 的启/停脉冲 on_off0。图 3.1-1 给出了按键输入模块中输入信号 reset 和输出信号 reset0 之间的定时关系。图 3.1-1 按键输入模块中的定时关系通过图 3.1-1 所示的定时关系可以看出:状态控制信号 reset_

33、temp1 是复位信号reset 在时钟信号 clk0 的下降沿进行锁存的锁存信号,状态控制信号 reset_temp2 是状态控制信号 reset_temp1 在时钟信号 clk0 的下降沿进行锁存的锁存信号,控制信号reset_temp3 是状态控制信号 reset_temp2 的反相信号,复位脉冲就是时钟信号 clk0,控制信号 reset_temp1,控制信号 reset_temp3 的逻辑与。武汉工程大学邮电与信息工程学院毕业设计论文- 5 -3.23.2 程序及仿真程序及仿真根据图 3 所示的定时关系,下面给出按键输入模块的部分 VHDL 设计程序,完整的程序见附录 1。USE 定

34、义部分:LIBRARY IEEE; -标准定义库USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -引用 IEEE 中 STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_UNSIGNED 的全部定义实体部分:ENTITY keyin IS PORT(reset : IN STD_LOGIC; -复位键输入信号 on_off : IN STD_LOGIC; -启停键输入信号 clk : IN STD_LOGIC; -时钟输入信号 cl

35、k0 : IN STD_LOGIC; -按键输入模块的时钟信号 reset0 : OUT STD_LOGIC; -消抖后的复位信号 on_off0 : OUT STD_LOGIC); -消抖后的启停信号END keyin;结构体部分:ARCHITECTURE rtl OF keyin IS SIGNAL reset_temp1 : STD_LOGIC;SIGNAL reset_temp2 : STD_LOGIC;SIGNAL reset_temp3 : STD_LOGIC; -复位信号的三种状态SIGNAL on_off_temp1 : STD_LOGIC; SIGNAL on_off_tem

36、p2 : STD_LOGIC;SIGNAL on_off_temp3 : STD_LOGIC; -启停信号的三种状态 . . . . . .武汉工程大学邮电与信息工程学院毕业设计论文- 6 -PROCESS (clk) -进程语句,有时钟信号变化时执行BEGIN IF(clkevent AND clk =1)THEN -时钟上升沿有效reset0= clk0 AND reset_temp1 AND reset_temp3; on_off0= clk0 AND on_off_temp1 AND on_off_temp3; -三种信号逻辑与 END IF; END PROCESS;END rtl;

37、按键输入模块的仿真图如下:图 3.2-1 按键输入模块的仿真图可以看出,图 3.2-1 所示仿真波形的定时关系与图 3.所示的定时关系是相同的。通过图 4.可以看出复位脉冲 reset0 和启/停脉冲 on_off 的宽度为一个 clk 时钟周期,通过上面的仿真操作,验证了 VHDL 设计程序的正确性。武汉工程大学邮电与信息工程学院毕业设计论文- 7 -4.4. 时钟分频模块的设计时钟分频模块的设计4.14.1 设计思想设计思想时钟分频模块的功能是将输入的外部时钟信号 clk 进行分频,从而产生用来消除抖动的 25HZ 时钟信号 clk0 和用于计时的 1HZ 的时钟信号 clk1。外部的时钟

38、信号clk 经过 10 次分频后可以得到 100HZ 的时钟信号 clk1,再进行 4 次分频就可以得到25HZ 的时钟信号 clk0,4.24.2 程序及仿真程序及仿真下面给出 10 分频电路和 4 分频电路的 VHDL 设计程序10 分频电路的部分 VHDL 设计程序,完整程序见附录 2 结构体部分:ARCHITECTURE rtl OF clk_div10 IS SIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0); -定义一个计数信号BEGIN PROCESS(clk) BEGIN IF(clkevent AND clk = 1)THEN IF(res

39、et = 1)THEN count 0); -当复位信号有效时,计数清 0 ELSIF(count = “1001”)THEN count 0); ELSE count = count + 1; -当复位信号无效时,技术到 9 复位到 0 开始 END IF; END IF; END PROCESS;武汉工程大学邮电与信息工程学院毕业设计论文- 8 - PROCESS(clk) BEGIN IF(clkevent AND clk = 1)THEN IF(count = “1001”)THEN clk_div = 1; -当计数到 1001 时,clk_div 输出为 1 ELSE clk_di

40、v = 0; .10 分频电路的仿真图如下:图 4.2-1 10 分频电路的仿真图 由图 4.2-1 的仿真图可以看出 clk_div 的频率是 clk 的十分之一,证明程序正确。4 分频电路的部分 VHDL 设计程序,完整程序见附录 2,其程序与 10 分频电路类似,下面给出与 10 分频电路不同的地方:结构体部分:武汉工程大学邮电与信息工程学院毕业设计论文- 9 - PROCESS(clk) BEGIN IF(clkevent AND clk = 1)THEN IF(count = “11”)THEN clk_div = 1; -当计数到 11 时 clk_div 输出 1 ELSE cl

41、k_div = 0; END IF; END IF; END PROCESS;END rtl;4 分频电路的仿真图如下:图 4.2-2 4 分频电路的仿真由图 4.2-2 的仿真图可以看出 clk_div 的频率是 clk 的四分之一,证明程序正确。时钟分频模块设计时,只需采用元件调用语句将上文中已设计保存的 10 分频与武汉工程大学邮电与信息工程学院毕业设计论文- 10 -4 分频的程序进行调用。时钟分频模块的部分 VHDL 设计程序如下,完整程序见附录 2 实体部分:ENTITY clk_div IS PORT(clk : IN STD_LOGIC; -时钟输入信号 clk0 : IN S

42、TD_LOGIC; -按键输入模块的时钟信号 clk1 : OUT STD_LOGIC); -计时以及控制模块的时钟信号END clk_div;结构体部分:ARCHITECTURE rtl OF clk_div IS COMPONENT clk_div10 PORT(clk : IN STD_LOGIC; reset : IN STD_LOGIC; clk_div : OUT STD_LOGIC); END COMPONENT; COMPONENT clk_div4 PORT(clk : IN STD_LOGIC; reset : IN STD_LOGIC; clk_div : OUT STD

43、_LOGIC); END COMPONENT; SIGNAL clk0_temp : STD_LOGIC; SIGNAL clk1_temp : STD_LOGIC; BEGIN U0 : clk_div10 PORT MAP(clk , clk1_temp); -对 10 分频程序进行元件调用 U1 : clk_div4 PORT MAP(clk1_temp , clk0_temp); -对 4 分频程序进行元件调用 clk0 = clk1_temp AND clk0_temp; -将 10 分频和 4 分频进行级联,得到武汉工程大学邮电与信息工程学院毕业设计论文- 11 -25HZ 时钟信

44、号 clk1 = clk1_temp;END rtl;时钟分频模块的仿真图如下:图 4.2-3 时钟分频模块的仿真图由图 4.2-3 的仿真图可以看出,clk1,clk0 的频率分别是输入时钟信号 clk 频率的十分之一和四十分之一,从而证明程序的正确性。 武汉工程大学邮电与信息工程学院毕业设计论文- 12 - 5.5.计时器控制模块的设计计时器控制模块的设计5.15.1 设计思想设计思想计时器控制模块的功能是用来产生计时器内部比赛时间定时计数的计数允许信号 en。当复位信号 reset0 有效时,计数允许信号 en 无效;当复位信号 reset0 无效时,且去除抖动后的启/停信号 on_of

45、f0 有效时,计数允许信号 en 开始有效,直到下一次启/停信号 on_off0 有效时变成无效。这里定义一个“乒乓信号” ,它的作用是在启/停信号 on_off0 有效时进行一次反向操作,然后以这个信号作为选通信号,从而得到计数允许信号 en。图 5.1-1 给出了上述信号的具体时序关系,其中信号 strobe 就是定义的“乒乓信号” 。图 5.1-1 比赛时间控制模块中的时序关系5.25.2 程序及仿真程序及仿真计时器控制模块的部分 VHDL 设计程序如下,完整程序见附录 3实体部分:ENTITY time_control IS PORT(reset0 : IN STD_LOGIC; -消

46、抖后的复位信号on_off0 : IN STD_LOGIC; -消抖后的启停信号clk1 : IN STD_LOGIC; -分频后的时钟信号武汉工程大学邮电与信息工程学院毕业设计论文- 13 -en : OUT STD_LOGIC); -计时允许信号END time_control; 结构体部分ARCHITECTURE rtl OF time_control IS SIGNAL strobe : STD_LOGIC; -定义一个乒乓信号BEGIN PROCESS(reset0,on_off0)-进程语句,当消抖后复位或启停信号有作用时有效 BEGIN IF(reset0= 1)THEN str

47、obe= 0; -当复位信号有效时,乒乓信号为 0 ELSIF(on_off0 event AND on_off0 = 1)THEN strobe= NOT strobe; -启停信号的上升沿有效时乒乓信号取反 END IF; END PROCESS; en= clk1 AND strobe; -时钟信号与乒乓信号进行逻辑与得到计时允许信号END rtl;计时器控制模块的仿真图如下:武汉工程大学邮电与信息工程学院毕业设计论文- 14 -图 5.2-1 计时器控制模块的仿真图由图 5.2-1 中的仿真波形图与图 5.1-1 所示的时序关系是相同的,可以验证程序正确。武汉工程大学邮电与信息工程学院

48、毕业设计论文- 15 -6.6. 计时模块的设计计时模块的设计6.16.1 设计思想设计思想比赛时间计时模块主要用来实现系统内部比赛时间的定时计数功能。此模块的输入信号包括去除抖动后的复位信号 reset0,计时时钟 clk1 和定时计数的使能信号en。它的输出信号就是比赛时间的计时信息,包括分钟十位信号 min10,分钟个位信号 min,秒十位信号 sec10,秒个位信号 sec,0.1 秒位信号 sec_1,0.01 秒位信号sec_0。对于计时模块,可以采用计数器的串联来实现,实现的结构框图如图 6.1-1 所示:武汉工程大学邮电与信息工程学院毕业设计论文- 16 -图 6.1-1 计时

49、模块的结构框图由图 6.1-1 所示的结构框图可以看出,比赛时间计时模块是由 1 个二进制减法计数器,1 个六进制减法计数器和 4 个十进制减法计数器串联一起来实现的。在对比赛时间计时模块进行具体的 VHDL 设计之前,首先需要对它的各个子模块进行设计,这些子模块包括二进制减法计数器,六进制减法计数器和十进制减法计数器。二进制减法计数器: 由图 6.1-1 可以看出,设计的减法计数器的输入端口需要包括复位端口 reset,使能端口 enable 和时钟输入端口 clk;输出端口包括计数输出端口 q 和借位输出端口bout。6.26.2 程序及仿真程序及仿真二进制减法计数器的部分 VHDL 设计

50、程序如下,完整程序见附录 4 实体部分:ENTITY count2 IS PORT(reset : IN STD_LOGIC; -复位输入信号enable : IN STD_LOGIC; -使能信号clk : IN STD_LOGIC; -时钟输入信号bout : OUT STD_LOGIC; -借位输出信号q : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); -计数信号END count2;结构体部分:ARCHITECTURE rtl OF count2 IS SIGNAL q_temp : STD_LOGIC_VECTOR(1 DOWNTO 0);-计数状态信号BEG

51、IN PROCESS(clk) BEGIN IF(clk event AND clk = 1)THEN 时钟上升沿有效 IF(reset =1)THEN 武汉工程大学邮电与信息工程学院毕业设计论文- 17 - q_temp= “01”; -当复位信号有效时,计数为 01 ELSIF(enable = 1)THEN IF(q_temp = “00”)THEN q_temp= “01”; -当复位信号无效,使能信号有效时计数到00 时回到 01 ELSE q_temp= q_temp 1; -否则进行减法计数 END IF; END IF; END IF; q= q_temp; END PROCE

52、SS; bout= 1 WHEN q_temp = “00” AND enable = 1; ELSE 0; -当计数到 00 并且使能信号有效时,借位信号输出 1,否则为 0END rtl;二进制减法计数器的仿真图如下:武汉工程大学邮电与信息工程学院毕业设计论文- 18 -图 6.2-1 二进制减法计数器的仿真图由图 6.2-1 的仿真波形图可以看出当复位信号无效而使能信号有效时,开始进行减法计数,减到 0 时,借位信号输出一个波形,可以验证程序正确。六进制减法计数器与二进制减法计数器类似,下面只给出不同之处。六进制减法计数器的部分 VHDL 设计程序如下,完整程序见附录 4实体中计数信号要

53、定义为 3 位:q : OUT STD_LOGIC_VECTOR(2 DONWTO 0); 结构体中: IF(reset =1)THEN q_temp= “101”; -当复位信号有效时,计数为 101 ELSIF(enable = 1)THEN IF(q_temp = “000”)THEN q_temp= “101”; -当复位信号无效,使能信号有效时计数到000 时回到 101六进制减法计数器的仿真图如下:武汉工程大学邮电与信息工程学院毕业设计论文- 19 -图 6.2-2 六进制减法计数器的仿真图由图 6.2-2 的仿真波形图可以看出当复位信号无效而使能信号有效时,开始进行减法计数,减到

54、 0 时,借位信号输出一个波形,可以验证程序正确。十进制减法计数器的部分 VHDL 设计程序如下,完整程序见附录 4实体中需讲计数信号定义为 4 位q : OUT STD_LOGIC_VECTOR(3 DONWTO 0); 结构体中 IF(reset =1)THEN q_temp= “1001”; -当复位信号有效时,计数为 1001 ELSIF(enable = 1)THEN IF(q_temp = “0000”)THEN q_temp= “1001”; -当复位信号无效,使能信号有效时计数到0000 时回到 1001十进制减法计数器的仿真图如下:武汉工程大学邮电与信息工程学院毕业设计论文-

55、 20 -图 6.2-3 十进制减法计数器的仿真图由图 6.2-3 的仿真波形图可以看出当复位信号无效而使能信号有效时,开始进行减法计数,减到 0 时,借位信号输出一个波形,可以验证程序正确。最后用元件调用语句将以上设计的二进制,六进制和十进制减法计数器的程序进行调用即可构成计时模块的程序设计。下面给出计时模块的部分 VHDL 程序,完整程序见附录 4 实体部分:ENTITY time_counter IS PORT(reset0 : IN STD_LOGIC;en : IN STD_LOGIC;clk1 : IN STD_LOGIC;min10 : OUT STD_LOGIC_VECTOR(

56、1 DOWNTO0);-分十位min : OUT STD_LOGIC_VECTOR(3 DOWNTO0);-分个位sec10 : OUT STD_LOGIC_VECTOR(2 DOWNTO0);-秒十位sec : OUT STD_LOGIC_VECTOR(3 DOWNTO0);-秒个位sec_1 : OUT STD_LOGIC_VECTOR(3 DOWNTO0);-0.1 秒武汉工程大学邮电与信息工程学院毕业设计论文- 21 -sec_0 : OUT STD_LOGIC_VECTOR(3 DOWNTO0);-0.01 秒END time_counter; 结构体部分:ARCHITECTURE

57、rtl OF time_counter IS COMPONENT count10 PORT(reset : IN STD_LOGIC; enable : IN STD_LOGIC; clk : IN STD_LOGIC; bout : OUT STD_LOGIC; q : OUT STD_LOGIC_VECTOR(3 DONWTO 0); END COMPONENT; COMPONENT count6PORT(reset : IN STD_LOGIC; enable : IN STD_LOGIC; clk : IN STD_LOGIC; bout : OUT STD_LOGIC; q : OU

58、T STD_LOGIC_VECTOR(2 DONWTO 0); END COMPONENT;COMPONENT count2PORT(reset : IN STD_LOGIC; enable : IN STD_LOGIC; clk : IN STD_LOGIC; bout : OUT STD_LOGIC; q : OUT STD_LOGIC_VECTOR(1 DONWTO 0); END COMPONENT;SIGNAL bo1,bo2,bo3,bo4,bo5,bo6 : STD_LOGIC; -定义借位信号SIGNAL reset_temp : STD_LOGIC; -定义复位信号武汉工程大

59、学邮电与信息工程学院毕业设计论文- 22 -U0: count10 PORT MAP (reset_temp, en, clk1, bo1, sec_0);U1: count10 PORT MAP (reset_temp, bo1, clk1, bo2, sec_1);U2: count10 PORT MAP (reset_temp, bo2 clk1, bo3, sec);U3: count6 PORT MAP (reset_temp, bo3, clk1, bo4, sec10);U4: count10 PORT MAP (reset_temp, bo4, clk1, bo5, min);

60、U5: count2 PORT MAP (reset_temp. bo5, clk1, bo6, min10); -分别调用各减法计数器用以级联得到如图 6.1-1 所示的计时模块原理图END rtl;计时模块的仿真图如下:图 6.2-4 计时模块的仿真图由图 6.2-4 的仿真波形图可以看出,当复位信号无效,计数允许信号有效时开武汉工程大学邮电与信息工程学院毕业设计论文- 23 -始计数,图中所示从 19 分 59.99 秒开始倒计时,可以验证程序正确。 武汉工程大学邮电与信息工程学院毕业设计论文- 24 -7.7. 显示模块的设计显示模块的设计7.17.1 设计思想设计思想在篮球比赛计时器

温馨提示

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

评论

0/150

提交评论