当前位置:文档之家› 基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真

基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真

武汉工程大学邮电与信息工程学院毕业设计(论文)说明书

论文题目基于VHDL硬件描述语言的篮球比赛计时器的设计与仿真学号

学生姓名

专业班级

指导教师

总评成绩

年月日

文献综述

一、概述

本人所做的毕业论文设计是基于VHDL硬件描述语言对简易的篮球比赛计时器的设计,因此在开题之初,我查阅大量的相关资料以及对资料的分析、整理为将要写作论文作参考。

由此可知,本文主要介绍计时器中VHDL硬件描述语言的设计。VHDL语言是一种用于电路设计的高级语言。它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用

这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

二、正文综述

1.VHDL硬件描述语言的回顾与展望

本次的论文是基于VHDL硬件描述语言的篮球比赛计时器的设计,因此有必要对VHDL硬件描述语言要有深刻的了解。

VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL 接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

VHDL语言作为一种数字电子系统设计语言,在集成电路前端设计,用FPGA器件实现的数字电子系统设计的过程中,发挥着十分重要的作用。用EDA工程的方法进行现代电子系统设计,对于科研、教学领域是一门新发展的工程学科,对于信息产业领域的设计企业、生产企业是一项先进的设计和生产技术。

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

20世纪80年代,电子产品设计由分立元件设计过渡到用通用集成电路为基本元件的设计。这两个阶段各自有几十年的发展时间。随着EDA工程的发展,电子产品的设计在21世纪初进入到以IP核为基本单元的设计时代。在电子设计初级阶段,设计工程师用分立电子元件设计电路,体积大,功耗多,可靠性低。采用通用集成电路芯片设计电子系统后,电子系统整机体积大大缩小,功耗大幅度下降。TTL门电路、CMOS器件都是设计工程师选择的常用元件。在现代电子设计阶段,设计工程师不再选用分立电子元件、通用集成电路,而是选用IP核作为电子设计的基本元件。这在概念上有较大差别。分离元件、通用集成电路芯片是一个实际的电子元件,IP核则是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。利用IP核设计电子系统,引用方便,修改基本元件的功能容易。具有复杂功能和商业价值的IP核一般具有知识产权,尽

管IP核的市场活动还不规范,但是仍有许多集成电路设计公司从事IP核的设计、开发和营销工作。IP核有两种,与工艺无关的VHDL程序称为软核;具有特定电路功能的集成电路版图称为硬核。硬核一般不允许更改,利用硬核进行集成电路设计难度大,但是容易成功流片。

2. VHDL硬件描述语言优点综述

功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。

支持广泛、易于修改。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。

强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。

独立于器件的设计、与工艺无关。设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。

很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。

易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,

将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。

⑴与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

⑵VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

⑶VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,

⑷对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

⑸VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

3.MAX+plus II 软件仿真技术介绍

上面已经简单的叙述了VHDL硬件描述语言的优势。下面简述一下将要在我的设计中使用到的VHDL硬件描述语言的编辑平台—MAX+plus II。

MAX+plus II是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。MAX+plus II界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在MAX+plus II上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。

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的设计输入、处理与较验功能全部集成在统一的开发环境下,这样

可以加快动态调试、缩短开发周期。

MAX+plus II提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。

设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。

MAX+plus II软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。

MAX+plus II软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函三、总结

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

摘要

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

本文讲述了基于VHDL硬件描述语言的篮球比赛计时器的基本原理,组成与设计,程序的编译,与MAX+plus II软件的仿真等相关技术。首先把计时器的设计分为顶层和底层两部分,在底层中划分多个模块并分别进行程序设计,最后运用MAX+plus II软件进行仿真调试。

关键词:VHDL 篮球比赛计时器模块MAX+plus II仿真

Abstract

With the rapid development of EDA technology, VHDL hardware description language hardware circuit design as an important tool 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 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 hardware, 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 + 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 basketball game timer module MAX+plus II simulation

目录

1. 前言 .......................................................... - 11 -

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 -

7.1设计思想 (24)

7.2程序及仿真 (26)

8. 顶层设计 ....................................................... - 35 -

8.1模块综合 (35)

8.2全电路仿真 (35)

9. 结束语 ......................................................... - 40 -参考文献 .......................................................... - 40 -

附录1 ............................................................. - 42 -附录2 . (43)

附录3 (45)

附录4 (46)

附录5 (49)

1. 前言

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

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

本文说要的是如何通过VHDL硬件描述语言来设计简易的篮球比赛计时器。

2. 设计思想及原理

一般的,篮球比赛计时器采用数字电路系统,计时器内部电路使用通用的集成逻辑器件设计,通过LED显示器直观的显示给比赛场中的所有人,而这种方法设计复杂,工序繁琐,器件较多,体积较大。采用可编程逻辑器件设计的数字系统体积小,功耗低,可靠性高而且易于修改,而VHDL硬件描述语言作为可编程逻辑器件的基本工具,用户只需通过计算机和开发工具,将所设计的电路或系统用VHDL编程并下载到可编程逻辑芯片上就完成了系统的功能设计。因此,使用VHDL硬件描述语言对篮球比赛计时器的电路进行设计是一种更快速,便捷的方法,也是当今社会数字电路设计的主流选择。

篮球比赛计时系统的设计内容如下:

⑴采用6个LED七段显示器,1个启动/暂停键,1个复位键。

⑵计时器的计时最长为20分钟,精确到0.01秒,以倒计时的方式计时到0,计时到0时重新计时。

⑶计时期间可以任意暂停,复位。

篮球比赛计时系统的VHDL程序设计如下:

①底层设计

按键输入模块:消除按键的弹跳抖动

时钟分频模块:将外部时钟信号进行分频给计时器各个模块

篮球比赛计时器控制模块:产生用于控制比赛计时器的使能信号

比赛时间计时模块:20分钟倒计时计数

显示模块:将计时效果通过LED七段显示器显示出来

②顶层设计

各模块综合

根据篮球比赛计时系统的设计要求,工作原理和基本设计方案,它的设计系统结构框图如下图2-1所示:

图2-1 篮球比赛计时器的系统结构框图

根据设计系统结构框图,可以看出系统的输入输出信号包括:

外部时钟信号clk:输入信号;

比赛时间复位开关信号reset:输入信号;

启/停开关信号on_off:输入信号;

LED七段显示数码管的选通信号choose[7:0]:输出信号;

LED七段显示数码管的输出信号segment[6:0]:输出信号;

给出设计的系统结构框图后,接下来的工作就是进行系统的模块划分以及确定这些模块之间的连接关系。

因为计时系统的复位开关和启/停开关采用按键的输入方式,其产生时刻和持续时间的长短是随机不定的,且存在因开关簧片反弹引起的电平抖动现象,因此必须在每个开关后面安排一个消抖和同步化电路模块,以保证系统能捕捉到输入脉冲,并保证每按一键,只形成一个宽度为系统时钟周期的脉冲。

由于外部时钟信号clk的频率为1000HZ,而实际需要的内部计时时钟频率为100HZ,提供给消抖同步电路的频率为25HZ,因此需要一个时钟分频电路,通过这个分频电路,对外部时钟信号clk进行分频操作,用来产生所需的时钟信号。

计时操作是在复位开关信号无效,并且两次启/停开关信号有效之间才能够进行的,因此需要一个电路用来产生使能信号。只有当这个使能信号有效时,系统才能进行计时操作。

系统还要将计时的结果显示出来,为了节省资源,这里采用循环点亮LED七段显示数码管的方法来显示秒表的计时输出。通过choose(5 DOWNTO 0)来进行6个LED七段显示数码管的选择,从而将输出信号segment(6 DOWNTO 0)送到相应的

LED七段显示数码管上已完成计时的显示。

通过上面的说明,可以将篮球比赛计时器划分为5个模块:按键输入模块,时钟分频模块,计时器控制模块,计时模块,显示模块。根据系统的工作原理,可以给出系统的各个模块之间的具体连接关系,如图2-2所示。

图2-2 系统各个模块的连接关系图

3. 按键输入模块的设计

3.1 设计思想

由于系统的复位开关和启/停开关采用按键的输入方式,其产生时刻和持续时间的长短是随机不定的,且存在因开关簧片反弹引起的电平抖动现象,因此必须在每个开关后面加一个按键输入模块,即同步消抖电路。按键输入模块的作用是保证系统能捕捉到输入脉冲,并保证每按一次键,只形成一个宽度为模块时钟周期的脉冲。

按键输入模块的工作原理是:每按一下复位开关reset,按键输入模块将输出一个宽度为1ms的复位脉冲reset0;每按一下启/停开关on_off,按键输入模块将输出一个宽度为1ms的启/停脉冲on_off0。

图3.1-1给出了按键输入模块中输入信号reset和输出信号reset0之间的定时关系。

图3.1-1 按键输入模块中的定时关系

通过图3.1-1所示的定时关系可以看出:状态控制信号reset_temp1是复位信号reset在时钟信号clk0的下降沿进行锁存的锁存信号,状态控制信号reset_temp2是状态控制信号reset_temp1在时钟信号clk0的下降沿进行锁存的锁存信号,控制信号reset_temp3是状态控制信号reset_temp2的反相信号,复位脉冲就是时钟信号clk0,控制信号reset_temp1,控制信号reset_temp3的逻辑与。

3.2 程序及仿真

根据图3所示的定时关系,下面给出按键输入模块的部分VHDL设计程序,完整的程序见附录1。

USE定义部分:

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; --时钟输入信号

clk0 : 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_temp2 : STD_LOGIC;

SIGNAL on_off_temp3 : STD_LOGIC; --启停信号的三种状态

. . . . . .

PROCESS (clk) --进程语句,有时钟信号变化时执行

BEGIN

IF(clk‘event 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;

按键输入模块的仿真图如下:

图3.2-1按键输入模块的仿真图

可以看出,图3.2-1所示仿真波形的定时关系与图3.所示的定时关系是相同的。通过图4.可以看出复位脉冲reset0和启/停脉冲on_off的宽度为一个clk时钟周期,通过上面的仿真操作,验证了VHDL设计程序的正确性。

4. 时钟分频模块的设计

4.1 设计思想

时钟分频模块的功能是将输入的外部时钟信号clk进行分频,从而产生用来消除抖动的25HZ时钟信号clk0和用于计时的1HZ的时钟信号clk1。外部的时钟信号clk 经过10次分频后可以得到100HZ的时钟信号clk1,再进行4次分频就可以得到25HZ 的时钟信号clk0,

4.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(clk‘event AND clk = ?1‘)THEN

IF(reset = ?1‘)THEN

count <= (OTHERS => ?0‘); --当复位信号有效时,计数清0

ELSIF(count = ―1001‖)THEN

count <=(OTHERS => ?0‘);

ELSE

count <= count + 1; --当复位信号无效时,技术到9复位到0开始

END IF;

END IF;

END PROCESS;

PROCESS(clk)

BEGIN

IF(clk‘event AND clk = ?1‘)THEN

IF(count = ―1001‖)THEN

clk_div <= ?1‘; --当计数到1001时,clk_div输出为1

ELSE

clk_div <= ?0‘;

…….

10分频电路的仿真图如下:

图4.2-1 10分频电路的仿真图

由图4.2-1的仿真图可以看出clk_div的频率是clk的十分之一,证明程序正确。

4分频电路的部分VHDL设计程序,完整程序见附录2,其程序与10分频电路类似,下面给出与10分频电路不同的地方:

结构体部分:

……

PROCESS(clk)

BEGIN

IF(clk‘event AND clk = ?1‘)THEN

IF(count = ―11‖)THEN

clk_div <= ?1‘; --当计数到11时clk_div输出1

ELSE

clk_div <= ?0‘;

END IF;

END IF;

END PROCESS;

END rtl;

4分频电路的仿真图如下:

图4.2-2 4分频电路的仿真

由图4.2-2的仿真图可以看出clk_div的频率是clk的四分之一,证明程序正确。

时钟分频模块设计时,只需采用元件调用语句将上文中已设计保存的10分频与4分频的程序进行调用。

时钟分频模块的部分VHDL设计程序如下,完整程序见附录2

实体部分:

ENTITY clk_div IS

PORT(clk : IN STD_LOGIC; --时钟输入信号

相关主题
文本预览
相关文档 最新文档