电子秒表.docx

上传人:b****6 文档编号:7275481 上传时间:2023-01-22 格式:DOCX 页数:15 大小:333.29KB
下载 相关 举报
电子秒表.docx_第1页
第1页 / 共15页
电子秒表.docx_第2页
第2页 / 共15页
电子秒表.docx_第3页
第3页 / 共15页
电子秒表.docx_第4页
第4页 / 共15页
电子秒表.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

电子秒表.docx

《电子秒表.docx》由会员分享,可在线阅读,更多相关《电子秒表.docx(15页珍藏版)》请在冰豆网上搜索。

电子秒表.docx

电子秒表

电子科技大学

 

基于FPGA的电子秒表的设计

学院:

物理电子学院

摘要

本文主要介绍了如何利用VHDL语言在PFGA开发板上开发一个具有启动、停止、分段和复位功能的电子秒表,着重介绍了电子秒表的基本原理和实现方案以及在Xilinx公司的ISE软件开发平台上利用VHDL语言编程实现,使用ModelSim仿真软件对VHDL程序做了实时仿真,并完成了综合布局布线,最终下载到芯片上实现功能。

关键词:

FPGA,VHDL,ISE,自顶向下。

电子科技大学1

摘要2

第一章引言5

第二章FPGA和VHDL简介以及开发流程6

2.1FPGA概述6

2.2FPGA开发环境简介7

2.2.1VHDL语言简介7

2.2.2VHDL语言的开发流程9

第三章数字秒表的设计12

3.1实验任务及要求12

3.2系统需求和解决方案13

3.2.1分频器设计14

3.2.2消抖电路设计14

3.2.3控制模块15

3.2.4计数器16

3.2.5模块设计之数据锁存器16

3.2.6八选一多路复用电路17

3.2.7扫描段选电路17

3.2.8数码管段选电路18

第四章数字秒表仿真实验结果20

4.1分频器仿真20

4.2段选电路仿真20

4.3模八计数器20

4.4计数器程序仿真21

4.5锁存器程序仿真21

4.6多路复用器程序仿真21

4.7按键消抖程序仿真22

参考文献23

 

第一章引言

秒表是体育竞赛中不可或缺的一个工具,其可以直观的衡量运动员能力,考量运动员的水平,目前,用于控制秒表的秒表控制系统主要有PLC控制器,单片机控制其和PLD控制器等多种形式。

其中PLC控制器的特点为编程方便,容易扩展输入输出通路,但系统硬件成本较高了单片机控制其的特点为可塑性强,控制模式灵活多样,单系统组成除单片机外,还需要较多外围电路。

而使用VHDL语言设计秒表控制系统的方法,则可将程序下载到可编程逻辑器件中组成实际电路,从而实现了数字系统硬件的软件化,不仅非常发辫,而且非常实用。

第二章FPGA和VHDL简介以及开发流程

可编程逻辑器件(PLD,ProgrammableLogicDevices)是大规模集成电路技术发展的产物,它使数字系统的设计从电路级深入到了芯片级,大大提高了系统的可靠性,而且结合EDA技术,只需在计算机上修改和更新程序就可以实现硬件功能重构与性能升级,不需要额外的修改硬件电路,使硬件设计成为软件设计,方便快捷,提高了实现的灵活性,产品的开发设计周期大大缩短,开发程度显著降低。

其中应用最广泛的是现场编程门阵列(FPGA,FieldProgrammableGateArray)和复杂可编程逻辑器件(CPLD,ComplexProgrammableLogicDevice)。

20世纪70年代发展起来的可编程逻辑器件的发展大致经历了这样的过程:

由70年代初期的只能完成简单数字逻辑功能的可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)、电可擦除只读存贮器(EEPROM)和PLA,然后到70年代80年代初的只用于规模较小的数字电路的较复杂可编程芯片PLA和GAL,再到80年代中期的功能齐全、能实现较大规模电路设计的可编程逻辑器件CPLD和FPGA,最后到90年代的器件编程和器件测试技术"在这一发展进程中,PLD的结构配置和功能得到改善、集成度越来越高、速度和灵活性得到了很大的提高。

目前,可编程器件的发展速度极快,工作频率可达数百兆赫兹,片上逻辑资源已达数百万门,可以嵌入功能强大的32位微处理器构成片上可编程逻辑系统:

SOPC(SystemOnProgrammableChip)。

2.1FPGA概述

FPGA是20世纪90年代发展起来的,其密度已超过25×104门水平,内部门延时小于3ns。

这种期间完成某种特定的功能是完全由用户通过软件进行配置和编程来实现的,而且可以反复编写,它具有芯片逻辑资源丰富、成本低、功耗低等优势。

此外,它的另一个突出特点是现场变成,在FPGA工作的现场,可以不痛过计算机把存于FPGA外的ROM中的变成数据加载给FPGA,通过简单的设备就能改变FPGA中的编程数据,从而改变FPGA执行的逻辑功能。

这种方法也叫做ICR(InCircuitReconfiguration,在电路上直接配置)编程。

FPGA的这个特点为工程技术人员维修、改进、更新电路逻辑功能提供了方便。

大部分FPGA采用基于SRAM的查找表(LUT,Look-Up-Table)结构。

查找表本质上就是一个RAM。

若逻辑函数具有n个输入项的的话,就需要由输入个数为n、容易为2n个位的RAM单元存放函数值,RAM的地址线器输入线的作用,地址即输入线的作用,地址即输入变量,RAM输出为逻辑函数值。

每输入一个信号进行逻辑运算就等于输入一个地址进行查表,地址所对应的内容就是输出。

2.2FPGA开发环境简介

2.2.1VHDL语言简介

本次设计中的变成采用的是VHDL语言。

VHDL语言是一种硬件描述语言(HardwareDeseriptionLanguage,HDL),主要用在可编程逻辑器件(CPLD/FPGA)和专用集成电路(ASIC)两个领域。

写好的VHDL程序既可以下载到可编程逻辑器件中实现电路功能,又可以提交到工厂用于ASIC芯片的流片。

VHDL主要用于描述数字系统的结构、行为、能和接口。

VHDL程序结构的特点是将一项工程设计或设计实体(可以是元件、路模块或系统)分成外部和内部两部分,外部即可视部分,对设计实体和端口引脚进行声明;内部即不可视部分,描述模块的功能和算法。

VHDL从实体与外部的接口以及实体内部的功能与结构这两个方面来描述实体,其对实体描述的示意图图片1所示,常用的VHDL程序结构图片2。

设计实体定义成功后就可生成共享功能模块。

在顶层综合或其他设计中就可以直接调用这个实体模块。

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

图片1对实体描述的示意图

图片2常用VHDL结构示意图

应用VHDL语言进行工程设计有很多优点。

1具有更强的行为描述能力

VHDL的硬件描述能力很强,可以用于从门级、电路级直至系统级的描述、仿真、综合和调试,从逻辑功能和行为上描述和设计大规模系统,避开了具体期间内部结构。

2支持层次化和模块化设计

这是运用ISE工具进行了电路和系统设计区别于传统设计方法的重要方面,简化了系统设计,优化了系统结构,提高了系统可靠性。

3可仿真和可综合

仿真是指代码模拟硬件的行为,综合是指将代码转化成客物理实现的电路结构。

所有的VHDL语句都能用于仿真,但有一部分VHDL语句不能进行综合、翻译成与之对应的硬件电路,并在逻辑器件上实现。

VHDL强大的仿真及按摩功能是设计者能在系统设计的各个阶段都能十分方便地对数字系统进行仿真验证。

4系统设计与硬件结构无关

VHDL语言对设计的描述具有相对独立性,设计者可以进行独立的设计,可以不懂硬件的结构,也不比了解最终设计实现的目标期间是什么。

5具有很强的移植能力

VHDL语言描述的设计通用性好,可以被支持VHDL标准的不同工具所支持,具有很强的移植能力。

6VHDL本身的生命周期长

VHDL的硬件描述与工艺无关,不会因工艺变化而过时,而且与工艺技术有关的参数可以用VHDL提供的属性加以描述,当生产工艺改变时,只需修改程序中相应属性参数即可。

VHDL语言具有很强大的语言功能、硬件描述能力和抑制能力及设计与器件支持无关的特性,并且VHDL语言程序易于共享和复用,因此得到了十分广泛的应用。

2.2.2VHDL语言的开发流程

采用VHDL语言对硬件电路进行描述的过程中应该遵循一定的流程。

通常情况下,其流程图片3所示

图片3采用VHDL语言进行硬件电路设计的流程图

从图片3的流程图可以看出,采用VHDL语言进行硬件电路设计的开发步骤主要包括以下几步:

1接受电路设计任务

在进行硬件电路系统设计之前,首先作出总体设计方案,然后给出相应的硬件电路系统设计徽标,最后将总体方案中各部分电路设计任务和要求下达给相应的设计部门。

2确定电路具体功能

设计人员要具体分析电路的设计要求,确定其要实现的具体功能。

3划分模块、编写程序

利用VHDL语言设计硬件电路通常采用自顶向下的设计方法,从电路设计的总体要求出发,先确定顶层模块的设计,然后将顶层模块划分为不同的完成一定逻辑功能的子功能模块,最后再详细设计子功能模块。

模块划分的好坏将会直接影响到最终的电路设计,设计人员在这一步应该花费一定的时间,保证模块划分的最优化。

4VHDL语言程序模拟

VHDL语言程序模拟即功能仿真,是利用仿真软件对设计的逻辑功能进行综合、优化和布局布线验证,可以在设计的早起发现电路设计上的缺陷和错误,节省设计时间、缩短开发周期。

5综合、优化和布局布线

综合的作用简单的说就将电路设计的较高级抽象层次的VHDL语言描述转化成底层电路表示。

优化的作用是将电路设计的时延缩到最小和有效利用资源。

布局布线的作用是将通过综合和优化所得到的逻辑规划到一个逻辑器件的逻辑结构,然后讲个逻辑单元放置到相应优化的位置,最后再进行逻辑单元之间、逻辑单元和I/O之间的布线,以消除布线延迟。

6布局布线后的程序模拟

布局布线后的程序模拟又称后仿真,既实验设计的逻辑功能,又验证时序。

如果时序不能满足要求,就需要回到前面的步骤重新进行操作。

7生成器件编程文件和进行器件编程

顾名思义,器件编程是针对可编程逻辑器件进行的操作,具体过程是:

将设计描述经过、编译、综合、优化和布局布线的结果,经过一定的映射转化成一个器件编程所用的数据文件格式,然后通过烧片器或者下载电缆将数据文件下载到指定的可编程逻辑器件中去的过程。

第三章数字秒表的设计

3.1实验任务及要求

秒表的计时范围为00’00”00~59’59”99。

有两个按钮开关Start/Stop和Split/Reset,控制秒表的启动、停止、分段和复位:

在秒表已经被复位的情况下,按下“Start/Stop”键,秒表开始计时。

在秒表正常运行的情况下,如果按下“Start/Stop”键,则秒表暂停计时;再次按下该键,秒表继续计时。

在秒表正常运行的情况下,如果按下“Split/Reset”键,显示停止在按键时的时间,但秒表仍然在计时;再次按下该键,秒表恢复正常显示。

在秒表暂停计时的情况下,按下“Split/Reset”键,秒表复位归零。

秒表实物图如图片4。

图片4秒表实物图

秒表电路设计总框图如图片5。

图片5秒表设计总框图

3.2系统需求和解决方案

首先根据设计的要求明确设计的目的,并根据设计需求制定相应的设计方法,设计出不同的设计模块,如图二示,在设计一个秒表电路时,根据ISE的使用说明,需要先设计各个不同的子模块,然后进行模块的综合。

根据我们的习惯我们可以按照从左到右的顺序依次建立模块并进行组合。

设计电路时遵循从上到下的设计原则,首先从系统设计入手,在顶层进行功能划分和结构设计,顶层的每个子模块均可完成一个独立的功能,子模块在调试成功后可生成一个默认的符号,工上一层使用。

分模块的设计可设计为分频器电路,按键消抖电路,控制电路,计数电路,锁存电路,扫描和显示电路。

1、分频器

对产生的时钟信号的48MHz晶体振荡器进行分频,先产生1KHz产生时间基准信号,用以控制8个数码管以扫描方式显示计时结果。

再对1KHz的分频信号再进行10分频,从而产生100Hz的基准信号,用于秒表最后一位的显示。

2、按键消抖电路

在按键按下时,FPGA的输入为低电平;松开按键时,FPGA的输入为高电平,但是在按下按键和松开按键的瞬间会出现抖动现象,影响秒表的运行,因此需要按键消抖电路,用以消除按键输入信号抖动的影响,输出单脉冲。

3、控制器

控制计数器的开始、暂停以及复位。

4、计数器

对时间基准脉冲进行计数,完成10进制,6进制的计数功能,并在最后把他们进行综合,组成两个60进制,一个100进制的计数器。

5、数据锁存器

锁存数据使显示并保持暂停。

6、的

包括扫描计数器、数据选择器和7段译码器,控制8个数码管以扫描方式显示计时结果。

3.2.1分频器设计

始终分频模块

始终分频模块的功能是将输入的外部信号时钟进行分频,从而产生用来消除都懂得1kHZ信号和用于秒表内部定时技术的100Hz的时钟信号以及用来显示数码管电路的1kHZ时钟信号。

该模块的外部输入信号源是实验板晶振产生的48MHz的时钟信号。

在该模块中须将48MHz信号经过模48000的计数器分频,可以提到1kHz信号,可将该信号送到计数模块部分经过模十计数器分频,然后可得到计数精度为0.01秒的。

如图片6

图片6分频器引脚示意图

将48MHz晶振信号分频至1kHz。

3.2.2消抖电路设计

由于秒表采用按键的输入方式,按键产生的时间和持续的时间的长短是随机的,存在各种原因引起的电平抖动现象,因此需要在每个开关后面加一个按键输入模块。

按键输入模块的作用是保证系统能捕捉到输入脉冲,并保证每按一键,只形成一个宽度为模块时钟周期的脉冲,按键消抖电路如图片7

图片7消抖电路引脚示意图

3.2.3控制模块

该模块主要用来完成数字时钟的适中设定功能,可用两个按钮开关完成秒表的启/停和复位。

如图片8

图片8控制电路引脚示意图

控制电路的设计参照下图片9

图片9控制电路的设计图

根据秒表电路总框架图可知,该模块一共三个输入三个输出,三个输出对应四个状态,四个状态可分别对应“00”、“01”、“10”、“11”。

每个状态对应决定三个输出状态值,从而控制电路。

3.2.4计数器

秒表技术模块主要是用于实现秒表的定时计数功能。

由于秒表的输入时钟信号为1kHz时钟源,首先对1kHz进行十分频得到100Hz时钟源,即最小精度为0.01秒。

该电路除了1kHz的时钟源输入还有用于控制清零复位信号reset和使能的enable。

秒表的计数模块的输出信号就是秒表的即时信息,包括百分秒的个位信号、百分秒的十位信号、秒个位、秒十位、分个位、分十位,并将输出信号与锁存器相连,做为锁存器的输入信号。

将6个计数器并联实现这个功能。

利用分频器得到0.01s的方波信号,以此作为每一个计数器的clk,计数器计算上升沿,得到输出与进位,此计数器的进位作为下一个计数器的使能控制端enable,依次类推。

一共有7个计数器,第1、2、4、7个计数器是十进制,第5、8个计数器是6进制。

其中reset为复位清零信号,enable为计数使能信号,计数器有模10和模6计数器,其引脚电路图如

图片10计数器引脚示意图

3.2.5模块设计之数据锁存器

数据锁存器,在使能en=1时,将计数器传送来的数据正常传输至输出口从而正常显示,en=0时,不能将计数器传出来的数据正常送至输出,而是将之前输入送至输出,一直显示因此不能正常显示,但此时仍能正常计数,当en再次等于1时,显示将回归原来的状态。

锁存器的输入为计数器的输出,锁存器引脚示意图如

图片11数据锁存器引脚示意图

3.2.6八选一多路复用电路

将从模八计数器送来的输入做为地址端,锁存器送来的信号做为选择端,即该电路有九个输入一个输出。

其引脚示意图如图片12

图片12八选一引脚示意图

3.2.7扫描段选电路

将八选一多路复用电路的输出做为该模块的输入,本次试验选用的FPGA实验板对应的数码管显示电路为共阳极数码管,故段选电路为低电平显示有效,将输入的二进制数翻译为数码管显示效果即该电路的功能,其电路原理图如

图片13扫描段选引脚示意图

3.2.8数码管段选电路

本次试验使用的FPGA电路板中的数码管为低电平有效使能,则直接赋值ncs=‘1’,改功能实现在top模块中,要实现的数码管显示效果如图片14

图片14数码管显示效果图

八个数码管则需要一个模为八的计数器循环扫描赋值使每个数码管都可以显示,由于人眼有“视觉暂留”效应,1kHz给人的效果就是持续显示。

该模块输出会送至两个模块,一个模块为八选一多路复用器,另一个是位选电路。

2.2.9模块间综合

从宏观角度观看,看一看出秒表电路只有48Mhz晶振,按键开关key_s_s,key_s_r,三个输入和ncs,sel,seg三位片选七段码输出,需要用程序在内部把各个模块联系起来,总架构图如

图片15秒表总结构图

第四章数字秒表仿真实验结果

编写各个模块的testbench文件,进行仿真,得到仿真波形。

4.1分频器仿真

仿真结果如图片16和图片17。

图片16分频器仿真图形一

图片17分频器仿真图形二

4.2段选电路仿真

仿真图形如图片18。

图片18段选截图仿真

4.3模八计数器

仿真图形如图片19

图片19模八计时器仿真图形

4.4计数器程序仿真

仿真图形如图片20和图片21

图片20计数器仿真图形一

图片21计数器仿真图形二

4.5锁存器程序仿真

仿真图形如图片22

图片22锁存器仿真截图

4.6多路复用器程序仿真

仿真图形如图片23

图片23多路复用器仿真图形

4.7按键消抖程序仿真

仿真图形如图片24

图片24按键消抖电路仿真图形

4.8控制程序仿真

仿真图形如图片25

图片25控制电路仿真图形

参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

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

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