文档库 最新最全的文档下载
当前位置:文档库 › 基于FPGA的数字秒表的设计

基于FPGA的数字秒表的设计

基于FPGA的数字秒表的设计
基于FPGA的数字秒表的设计

本科毕业论文(设计)

题目

基于F P G A的数字秒表的设计

学生姓名庞建铿学号2008110241

系名物理与电子信息工程系

专业年级2008级(1)班

指导教师许发翔职称助教

单位百色学院

辅导教师职称

单位

完成日期2012 年05 月20 日

目录

百色学院本科毕业论文(设计)任务书.......................... I 百色学院本科毕业论文(设计)开题报告........................ II 百色学院本科毕业论文(设计)中期自查表...................... V 摘要 (1)

关键字 (1)

Abstract (1)

第一章绪论 (2)

1.1课题背景 (2)

1.2硬件描述语言——VHDL (3)

1.2.1 VHDL的简介 (3)

1.2.2 VHDL语言的特点 (4)

1.2.3 VHDL的设计流程 (4)

1.3数字秒表设计的要求 (5)

1.4数字秒表设计的目的 (5)

第二章设计思想与方法论证 (5)

2.1设计思想 (5)

2.1.1方案一:采用74LS163和CD4046设计秒表 (6)

2.1.2方案二:基于单片机的数字秒表的设计 (6)

2.1.3方案三:基于FPGA的数字秒表的设计 (6)

2.2论证分析 (7)

第三章系统设计 (7)

3.1 系统的总体设计 (8)

3.2 FPGA内部各单元模块设计与仿真 (9)

3.2.1分频电路模块 (9)

3.2.2去抖电路模块 (10)

3.2.3计数电路模块 (12)

3.2.4译码显示电路模块 (13)

第四章硬件模块介绍 (14)

4.1 FPGA的简介 (14)

4.2 CD4511的简介 (15)

第五章硬件调试 (16)

5.1 Quartus II的简介 (16)

5.2 硬件电路的设计与调试 (17)

5.2.1手工检测 (18)

5.2.2程序检测 (18)

5.2.3电路组装与调试 (19)

5.3软件调试 (19)

5.4注意事项 (19)

5.4.1在FPGA芯片上调试过程 (19)

5.4.2程序检测 (19)

5.5系统性能测试 (20)

5.5.1测试内容 (20)

5.5.2实现功能 (20)

5.6调试过程发现的问题与解决方法 (20)

结论 (21)

致谢 (22)

参考文献 (23)

附录一:数字秒表实物图 (24)

附录二:数字秒表源程序 (25)

百色学院本科毕业论文(设计)诚信保证书 (30)

指导教师签名:许发翔2011 年12 月12 日

百色学院本科毕业论文(设计)中期自查表

学生签名:年月日

指导教师签名:年月日

基于FPGA的数字秒表的设计

电子信息工程2008110241 庞建铿指导老师许发翔

摘要:EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。该设计就是基于FPGA在Quartus II软件下利用VHDL语言结合硬件电路来实现数字秒表的功能,采用ALTRA公司CycloneII系列的EP2C5T144C8N 芯片进行仿真,并给出仿真结果。数字秒表有4个主要模块,分别是分频电路,去抖电路,计时电路,显示电路。用VHDL语言编程来实现各个模块的功能,再用例化来实现各模块的连接,从而实现整个数字秒表的功能。该电路能够实现计时功能,计时精度高,电路简单。

关键字:FPGA;EDA;VHDL;Quartus II;数字秒表

The design of digital stop watch based on FPGA

Abstract:EDA technology as electronic engineering of a new technology, greatly enhancing the electronic system design efficiency and reliability. The design is based on FPGA in Quartus II of VHDL language software with the hardware circuit to realize the function of digital a stopwatch, the company CycloneII ALTRA series of EP2C5T144C8N chips for simulation, and the simulation results are given. Digital stopwatch there are five main modules, respectively is point’s frequency circuit, to shake circuit, timing circuit, control circuit, show circuit. With VHDL language programming to realize the function of each module of, again cases to achieve each module of the connection, and make the digital stopwatch function. This circuit can achieve good timing function, timing precision is high.

Key W ords:FPGA;EDA;VHDL;Quartus II;Digital stop watch

第一章绪论

数字秒表是日常生活中比较常见的电子产品,其设计也是EDA技术中重要的设计之一[1]。EDA是20世纪90年代初以来迅速发展起来的现代电子工程领域的一门新技术。它以可编程逻辑器件(PLD)为载体,以计算机为工作平台,以EDA工作软件为工作环境,以硬件描述语言(VHDL)为电子系统功能描述方式,以电子系统设计为应用方向的电子产品自动化设计过程。

在当今以数字化和网络化为特征的信息技术革命大潮中,电子技术得到了飞速发展,现代电子产品渗透到了社会的各个领域。现代电子产品的性能进一步提高,功能越来越复杂,集成化智能化程度越来越高,更新换代的节奏越来越快,开发风险越来越大,而且向着功能多样化,体积小型化,功耗最低化的趋势发展。所有这些都给电子系统的设计带来了前所未有的压力,唯一的出来就是熟练掌握EDA技术,并获得其有力支持。EDA技术的出现,极大的提高了电子系统设计的效率和可靠性,减轻了设计者的劳动强度,EDA是电子产品开发研制的动力源和加速器,是现代电子技术的核心。随着基于PLD的EDA技术的发展和应用领域的扩大和深入,它在电子信息,通信工程,自动控制及计算机应用等领域的重要性日益突出。随着电子技术与计算机技术的发展,熟练掌握和应用EDA技术已成为电子类及相关专业学生不可或缺的一项技能,。本文介绍的数字秒表,利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。给出了顶层电路图,和各模块的设计.增加了消除抖动的控制方法,消除了开关按键的机械抖动.通过编辑、编译和器件编程, 并通过编程器将引脚下载到ALTRA公司CycloneII系列EP2C5T144C8N芯片进行仿真,经实际电路测试验证,达到了预期的设计要求,显示结果基本准确。本次设计突出应用性,以加强工程实践能力和工程设计能力[2]。

1.1课题背景

当前电子系统的设计正朝着速度快,容量大,体积小,质量轻,用电省的方向发展。推动该潮流迅速发展的决定性因素就是使用了现代化的EDA设计工具。EDA是电子设计自动化(Electronic Design Automation)的缩写,是90年代初,从CAD(计算机辅助没计)、CAM(算机辅助制造)、CAT(计算机辅助测试)和

CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑行局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作[2]。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。EDA技术中最为瞩目的功能,即最具现代电子设计技术特征的功能就是日益强大的逻辑设计仿真测试技术。EDA仿真测试技术只需通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,在完成实际系统的安装后还能对系统上的目标器件进行所谓边界扫锚测试。这一切都极大地提高了大规模系统电子设计的自动化程度。

另一方面,高速发展的CPLD/FPGA器件又为EDA技术的不断进步奠定可坚实的物质基础。CPLD/FPGA器件更广泛的应用及厂商间的竞争,使得普通的设计人员获得廉价的器件和EDA软件成为可能。

现代的EDA工具软件已突破了早期仅能进行PCB版图设计,或类似某些仅限于电路功能模拟的、纯软件范围的局限,以最终实现可靠的硬件系统为目标,配备了系统设计自动化的全部工具。如配置了各种常用的硬件描述平台VHDL、Verilog HDL、ABEL HDL等;配置了多种能兼用和混合使用的逻辑描述输入工具,如硬件描述语言文本输入法(其中包括布尔方程描述方式、原理图描述方式、状态图描述方式等)以及原理图输入法、波形输入法等;同时还配置了高性能的逻辑综合、优化和仿真模拟工具[3]。

1.2硬件描述语言——VHDL

1.2.1 VHDL的简介

VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称

93版)。现在,VHDL和V erilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL语言将承担起大部分的数字系统设计任务[4]。

1.2.2 VHDL语言的特点

VHDL的程序结构特点是将一项工程设计,关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。

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

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

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的

分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。

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

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

1.2.3 VHDL的设计流程

它主要包括以下几个步骤:

(1)文本编辑:

用任何文本编辑器都可以进行,也可以用专用的VHDL编辑环境。通常VHDL文件保存为.vhd文件。

(2)功能仿真:

将文件调入VHDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)

(3)逻辑综合:

将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf或.edif的EDA工业标准文件。

(4) 布局布线:

将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放PLD/FPGA内。

(5)时序仿真:

需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真)通常以上过程可以都在PLD/FPGA厂家提供的开发工具。

(6)器件编程

1.3数字秒表的设计的要求

设计一个基于FPGA的数字秒表的具体化技术指标如下:

(1) 能对0秒~12小时范围进行计时;

(2)计时精度达到10ms;

(3)设计复位开关和启停开关,复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。

(4)用FPGA器件实现,用VHDL语言编程,并进行下载,仿真。

1.4数字秒表设计的目的

本次设计的目的就是在掌握VHDL语言的基础上,了解EDA技术,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。在掌握所学的计算机组成与结构课程理论知识时。通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。通过毕业设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。

第二章设计思想与方法论证

实现数字秒表的方法有多种,可以用单片机作为控制芯片,采用A T89C52

单片机,数字显示采用共阳七段LED显示器。也可以用FPGA作为控制芯片,采用EDA技术用VHDL语言实现硬件电路。当然每一种方案都有其各自的优点。本章列举、说明了三种不同实现数字秒表的方案,对两种方案的优缺点进行了对比,选出了最佳方案。

2.1设计思想

2.1.1 方案一:采用74LS163和CD4046设计秒表

晶体振荡器电路给数字秒表提供一个频率稳定准确的方波信号,可保证数字秒表的走时准确及稳定。不管是指针式的秒表还是数字显示的秒表豆使用了晶体振荡器的方波信号经过D触发器二分频得到秒信号供秒计算器进行计数。分频器实际上也就是计算器。时间计数电路由0.01秒,0.1秒,秒的个位,秒的十位,分的个位,分的十位,时的个位,时的十位计算器电路构成,其中0.01秒,0.1秒构成100进制,秒的个位跟秒的十位构成60进制,分的个位和分的十位构成60进制。时间计算器由74LS163组成,译码驱动电路将计算器数钱的8421BCD 码转换成数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。数码管通常有发光二极管数码管和液晶数码管,本设计提供的是发光俄二极管。

2.1.2方案二:基于单片机的数字秒表的设计

本方案采用AT89C52单片机,单片机的P1口杰数码管显示电路,P0口杰键控数码管的显示,P2.0口接入整点报时电路,RESET接入复位和晶振电路。该电路能否成功,关键在于诚信的编写而对元器件的要求不搞。用C语言编写的数字秒表电路,采用分支结构编写,利用跳转指令与大量的中断指令,当按键扫描没有按键按下是,程序正常计数,当检测到有按键按下是,程序运转到相应的中断程序进行响应处理,从而实现了分支程序的处理。

2.1.

3.方案三:基于FPGA的数字秒表的设计

其设计思路为:通过分频器将晶振所提供的信号分频成0.01S脉冲作为计时信号,经计数器累加计数,形成一百进制的计数器,六十进制的计数器的计数器。经译码器译码后,分位输出给八个7段LED数码管显示。

设计采用八位LED数码管显示时,分、秒,0.1s,0.01s计时方式。使用按键开关可实现开始/结束计时操作,及复位清零操作和计时长度模式选择。

一.设计要求(秒表的功能描述)

(1)要求设置复位开关。当按下复位开关时,秒表清零并做好计时准备。在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过程中也要无条件地进行清零操作。

(2)要求设置启/停开关。当按下启/停开关后,将启动秒表并开始计时,当再按一下启/停开关时,将终止秒表的计时操作。

(3)要求计时精确度大于0.01秒。要求设计的计时器能够显示时(2位),分(2位)、秒(2位)、0.1秒(1位),0.01秒的时间。

二.秒表的面板包括:

(1)显示屏:由8个7段数码管组成,用于显示当前时间

(2)QT(启/停键):用于开始/结束计时操作.

(3)CLR(复位键):用于秒表计时系统的复位操作

(4)CD4511:用于数码管译码。

2.2论证分析

课题的角度来说可以选用硬件电路,单片机和FPGA芯片作为系统的MCU,从优势上硬件电路所用的元器件便宜,不过电路较复杂,调试较难。而利用单片机作为控制系统的核心元器件,其最大的优势是电路简单,价格便宜,实验所需仪器少。而FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可在有现成的条件下,FPGA还是有其具大的优势比如它的高速性,让我们更清楚地认识到硬件的性能及硬件描述语言对硬件的驱动。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。所以本方案选用以FPGA作为核心器件来设计。

第三章软件设计与仿真

整个系统软件设计是采用自顶向下分析,自底向上设计。将数字秒表系统的整体分解为各个模块电路。本章详细介绍了数字秒表系统的各个模块的设计,并对各个模块的每一个部分进行了分析,在后半部分还对系统模型进行了访真与程序调试。各模块之间的每一个坏节都是深思熟虑而成,各自完成相应的功能并组成一个统一的整体。

3.1系统的总体设计

数字秒表的顶层电路图及时序分析采用硬件描述语言设计一个复杂电路系统,其中包括时钟分频模块、按键去抖模块、计数模块、显示模块四个主要部分,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法。在顶层设计中,要对内部各功能块的连接关系和对外的接口关系进行描述,而功能块实际的逻辑功能和具体的实现形式则由下一层模块来描述。

本系统设计采用自顶向下的设计方案,根据数字秒表的系统原理框图如图3.1.1,设计系统的顶层RTL电路图如图3.1.2所示。根据图所示的数字秒表系统顶层电路图, 按照自顶向下的设计思路, 编写各个模块的源程序, 最后再对各个模块进行组合, 编写顶层描述的源程序[5]。

图3.1.1 数字秒表原理框图

图3.1.2 数字秒表的顶层RTL电路图

3.2 FPGA内部各单元模块设计与仿真

3.2.1分频电路模块的设计

在基于EDA技术的数字电路系统设计中,分频电路应用十分广泛。常常使用分频电路来得到数字系统中各种不同频率的控制信号。所谓分频电路,就是将一个给定的频率较高的数字输入信号经过适当处理后,产生一个或数个频率较低的数字输出信号。分频电路本质上是加法计数器的变种,其计数值有分频常数N=fin/fout决定,其输出不是一般计数器的计数结果,而是根据分频常数对输出信号的高,低电平控制。

本设计需要一个计时范围为0.01秒-12小时的秒表,首先需要获得一个比较精确的计时基准信号,这里时周期为1/100s的计时脉冲,所以采用一个标准时钟信号源1KHZ经分频后获得一个精确的100HZ的脉冲。其软件设计的流程

图如图3.2.1.1所示:

图 3.2.1.1 分频电路模块流程图

分频电路模块模块的外部端口如下图3.2.1.2所示:

图3.2.1.2 分频外部端口

各端口的作用如下:

CLK :外部时钟输入端。

NEWCLK:分频后的时钟输出端。

当外部时钟1KHz 经过分频器分成100Hz ,由NEWCLK 输出新的时钟信号。其

仿真波形如图3.2.1.3所示:

图3.2.1.3 分频电路模块波形仿真图

由图,我们可以知道:当CLK 经过10个周期后,NEWCLK 产生一个有效

的正跳变,形成一个进位。

3.2.2去抖电路模块

秒表面板上有2个按键:CLR键,QT键。因为设计采用的是机械式的按键,由于存在机械触动的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会马上断开。因而在闭合及断开按键的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5-10ms 。

按键的闭合稳定时间的长短由操作人员的按键动作决定,一般为零点几秒至数秒。按键抖动会引起被误读多次。为确保FPGA对键的闭合仅作一次处理,必须去除按键抖动。

通常在按键较少时可用硬件方法消除抖动,一般采用RS触发器作为常用的消抖电路,如果按键较多时,常用软件消除抖动。在EDA的设计应用中,软件消抖的方法即可使用RS触发器进行消抖,也可通过检测按键按下的时间进行消抖。其软件设计的流程图如图3.2.2.1所示:

去抖模块的外部端口如图3.2.2.2所示:

图3.2.2.2 去抖模块外部端口图

各端口的作用如下:

CLK:时钟输入端。

DIN:按键输入端。

QOUT:去抖后按键稳定输出端。

其仿真波形如图3.2.2.3所示:

图3.2.2.3 去抖模块电路仿真波形图

由图可知:当按键持续时间大于3个时钟周期,QOUT才可能产生有效的正跳变,输出一个单脉冲。

3.2.3计数电路模块

在数字秒表系统中要用到各种计数器。计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用与分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。计数器的原理是将几个触发器按照一定的顺序连接起来,然后根据触发器的状态按照一定的规律随时钟的变化来记忆时钟的个数。常用的计数方法有:同步计数器、可逆计数器、异步计数器[6]。

在本次设计中,采用异步计数器的方法,用硬件描述语言描述一个异步计数器,将低/高位计数器的输出作为高/低位计数器的时钟信号,在本设计中要用到10进制跟6进制组合形成两个100进制计数器,两个60进制计数器。其6进制模块的流程图如图3.2.3.1所示:

相关文档