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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

电子秒表.docx

1、电子秒表电子科技大学基于FPGA的电子秒表的设计学院:物理电子学院摘要本文主要介绍了如何利用VHDL语言在PFGA开发板上开发一个具有启动、停止、分段和复位功能的电子秒表,着重介绍了电子秒表的基本原理和实现方案以及在Xilinx公司的ISE软件开发平台上利用VHDL语言编程实现,使用ModelSim仿真软件对VHDL程序做了实时仿真,并完成了综合布局布线,最终下载到芯片上实现功能。关键词:FPGA,VHDL,ISE,自顶向下。电子科技大学 1摘要 2第一章 引言 5第二章 FPGA和VHDL简介以及开发流程 62.1 FPGA概述 62.2 FPGA开发环境简介 72.2.1 VHDL语言简介

2、 72.2.2 VHDL语言的开发流程 9第三章 数字秒表的设计 123.1 实验任务及要求 123.2 系统需求和解决方案 133.2.1 分频器设计 143.2.2 消抖电路设计 143.2.3 控制模块 153.2.4 计数器 163.2.5 模块设计之数据锁存器 163.2.6 八选一多路复用电路 173.2.7 扫描段选电路 173.2.8 数码管段选电路 18第四章 数字秒表仿真实验结果 204.1 分频器仿真 204.2 段选电路仿真 204.3 模八计数器 204.4 计数器程序仿真 214.5 锁存器程序仿真 214.6 多路复用器程序仿真 214.7 按键消抖程序仿真 22

3、参考文献 23第一章 引言秒表是体育竞赛中不可或缺的一个工具,其可以直观的衡量运动员能力,考量运动员的水平,目前,用于控制秒表的秒表控制系统主要有PLC控制器,单片机控制其和PLD控制器等多种形式。其中PLC控制器的特点为编程方便,容易扩展输入输出通路,但系统硬件成本较高了单片机控制其的特点为可塑性强,控制模式灵活多样,单系统组成除单片机外,还需要较多外围电路。而使用VHDL语言设计秒表控制系统的方法,则可将程序下载到可编程逻辑器件中组成实际电路,从而实现了数字系统硬件的软件化,不仅非常发辫,而且非常实用。第二章 FPGA和VHDL简介以及开发流程可编程逻辑器件(PLD,Programmabl

4、e Logic Devices)是大规模集成电路技术发展的产物,它使数字系统的设计从电路级深入到了芯片级,大大提高了系统的可靠性,而且结合EDA技术,只需在计算机上修改和更新程序就可以实现硬件功能重构与性能升级,不需要额外的修改硬件电路,使硬件设计成为软件设计,方便快捷,提高了实现的灵活性,产品的开发设计周期大大缩短,开发程度显著降低。其中应用最广泛的是现场编程门阵列(FPGA,Field Programmable Gate Array)和复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)。20世纪70年代发展起来的可编程逻辑器件的发展大致经历了

5、这样的过程:由70年代初期的只能完成简单数字逻辑功能的可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)、电可擦除只读存贮器(EEPROM)和PLA,然后到70年代80年代初的只用于规模较小的数字电路的较复杂可编程芯片PLA和GAL,再到80年代中期的功能齐全、能实现较大规模电路设计的可编程逻辑器件CPLD和FPGA,最后到90年代的器件编程和器件测试技术在这一发展进程中,PLD的结构配置和功能得到改善、集成度越来越高、速度和灵活性得到了很大的提高。目前,可编程器件的发展速度极快,工作频率可达数百兆赫兹,片上逻辑资源已达数百万门,可以嵌入功能强大的32位微处理器构成片上可编程逻

6、辑系统:SOPC(System On Programmable Chip)。2.1 FPGA概述FPGA是世纪年代发展起来的,其密度已超过门水平,内部门延时小于。这种期间完成某种特定的功能是完全由用户通过软件进行配置和编程来实现的,而且可以反复编写,它具有芯片逻辑资源丰富、成本低、功耗低等优势。此外,它的另一个突出特点是现场变成,在FPGA工作的现场,可以不痛过计算机把存于FPGA外的ROM中的变成数据加载给FPGA,通过简单的设备就能改变FPGA中的编程数据,从而改变FPGA执行的逻辑功能。这种方法也叫做ICR(In Circuit Reconfiguration,在电路上直接配置)编程。F

7、PGA的这个特点为工程技术人员维修、改进、更新电路逻辑功能提供了方便。大部分FPGA采用基于SRAM的查找表(LUT,Look-Up-Table)结构。查找表本质上就是一个RAM。若逻辑函数具有n个输入项的的话,就需要由输入个数为n、容易为2n个位的RAM单元存放函数值,RAM的地址线器输入线的作用,地址即输入线的作用,地址即输入变量,RAM输出为逻辑函数值。每输入一个信号进行逻辑运算就等于输入一个地址进行查表,地址所对应的内容就是输出。2.2 FPGA开发环境简介2.2.1 VHDL语言简介本次设计中的变成采用的是VHDL语言。VHDL语言是一种硬件描述语言(HardwareDeseript

8、ionLanguage,HDL),主要用在可编程逻辑器件(CPLD/FPGA)和专用集成电路(ASIC)两个领域。写好的VHDL程序既可以下载到可编程逻辑器件中实现电路功能,又可以提交到工厂用于ASIC芯片的流片。VHDL主要用于描述数字系统的结构、行为、能和接口。VHDL程序结构的特点是将一项工程设计或设计实体(可以是元件、路模块或系统)分成外部和内部两部分,外部即可视部分,对设计实体和端口引脚进行声明;内部即不可视部分,描述模块的功能和算法。VHDL从实体与外部的接口以及实体内部的功能与结构这两个方面来描述实体,其对实体描述的示意图图片 1所示,常用的VHDL程序结构图片 2。设计实体定义

9、成功后就可生成共享功能模块。在顶层综合或其他设计中就可以直接调用这个实体模块。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。图片 1对实体描述的示意图图片 2常用VHDL结构示意图应用VHDL语言进行工程设计有很多优点。1 具有更强的行为描述能力VHDL的硬件描述能力很强,可以用于从门级、电路级直至系统级的描述、仿真、综合和调试,从逻辑功能和行为上描述和设计大规模系统,避开了具体期间内部结构。2 支持层次化和模块化设计这是运用ISE工具进行了电路和系统设计区别于传统设计方法的重要方面,简化了系统设计,优化了系统结构,提高了系统可靠性。3 可仿真和可综合仿真是指代码模拟硬件的行为,

10、综合是指将代码转化成客物理实现的电路结构。所有的VHDL语句都能用于仿真,但有一部分VHDL语句不能进行综合、翻译成与之对应的硬件电路,并在逻辑器件上实现。VHDL强大的仿真及按摩功能是设计者能在系统设计的各个阶段都能十分方便地对数字系统进行仿真验证。4 系统设计与硬件结构无关VHDL语言对设计的描述具有相对独立性,设计者可以进行独立的设计,可以不懂硬件的结构,也不比了解最终设计实现的目标期间是什么。5 具有很强的移植能力VHDL语言描述的设计通用性好,可以被支持VHDL标准的不同工具所支持,具有很强的移植能力。6 VHDL本身的生命周期长VHDL的硬件描述与工艺无关,不会因工艺变化而过时,而

11、且与工艺技术有关的参数可以用VHDL提供的属性加以描述,当生产工艺改变时,只需修改程序中相应属性参数即可。VHDL语言具有很强大的语言功能、硬件描述能力和抑制能力及设计与器件支持无关的特性,并且VHDL语言程序易于共享和复用,因此得到了十分广泛的应用。2.2.2 VHDL语言的开发流程采用VHDL语言对硬件电路进行描述的过程中应该遵循一定的流程。通常情况下,其流程图片 3所示图片 3采用VHDL语言进行硬件电路设计的流程图从图片 3的流程图可以看出,采用VHDL语言进行硬件电路设计的开发步骤主要包括以下几步:1 接受电路设计任务在进行硬件电路系统设计之前,首先作出总体设计方案,然后给出相应的硬

12、件电路系统设计徽标,最后将总体方案中各部分电路设计任务和要求下达给相应的设计部门。2 确定电路具体功能设计人员要具体分析电路的设计要求,确定其要实现的具体功能。3 划分模块、编写程序利用VHDL语言设计硬件电路通常采用自顶向下的设计方法,从电路设计的总体要求出发,先确定顶层模块的设计,然后将顶层模块划分为不同的完成一定逻辑功能的子功能模块,最后再详细设计子功能模块。模块划分的好坏将会直接影响到最终的电路设计,设计人员在这一步应该花费一定的时间,保证模块划分的最优化。4 VHDL语言程序模拟VHDL语言程序模拟即功能仿真,是利用仿真软件对设计的逻辑功能进行综合、优化和布局布线验证,可以在设计的早

13、起发现电路设计上的缺陷和错误,节省设计时间、缩短开发周期。5 综合、优化和布局布线综合的作用简单的说就将电路设计的较高级抽象层次的VHDL语言描述转化成底层电路表示。优化的作用是将电路设计的时延缩到最小和有效利用资源。布局布线的作用是将通过综合和优化所得到的逻辑规划到一个逻辑器件的逻辑结构,然后讲个逻辑单元放置到相应优化的位置,最后再进行逻辑单元之间、逻辑单元和I/O之间的布线,以消除布线延迟。6 布局布线后的程序模拟布局布线后的程序模拟又称后仿真,既实验设计的逻辑功能,又验证时序。如果时序不能满足要求,就需要回到前面的步骤重新进行操作。7 生成器件编程文件和进行器件编程顾名思义,器件编程是针

14、对可编程逻辑器件进行的操作,具体过程是:将设计描述经过、编译、综合、优化和布局布线的结果,经过一定的映射转化成一个器件编程所用的数据文件格式,然后通过烧片器或者下载电缆将数据文件下载到指定的可编程逻辑器件中去的过程。第三章 数字秒表的设计3.1 实验任务及要求秒表的计时范围为0000”00 5959”99。有两个按钮开关Start/Stop和Split/Reset,控制秒表的启动、停止、分段和复位:在秒表已经被复位的情况下,按下“Start/Stop”键,秒表开始计时。在秒表正常运行的情况下,如果按下“Start/Stop”键,则秒表暂停计时;再次按下该键,秒表继续计时。在秒表正常运行的情况下

15、,如果按下“Split/Reset”键,显示停止在按键时的时间,但秒表仍然在计时;再次按下该键,秒表恢复正常显示。在秒表暂停计时的情况下,按下“Split/Reset”键,秒表复位归零。秒表实物图如图片 4。图片 4 秒表实物图秒表电路设计总框图如图片 5。图片 5秒表设计总框图3.2 系统需求和解决方案首先根据设计的要求明确设计的目的,并根据设计需求制定相应的设计方法,设计出不同的设计模块,如图二示,在设计一个秒表电路时,根据ISE的使用说明,需要先设计各个不同的子模块,然后进行模块的综合。根据我们的习惯我们可以按照从左到右的顺序依次建立模块并进行组合。设计电路时遵循从上到下的设计原则,首先

16、从系统设计入手,在顶层进行功能划分和结构设计,顶层的每个子模块均可完成一个独立的功能,子模块在调试成功后可生成一个默认的符号,工上一层使用。分模块的设计可设计为分频器电路,按键消抖电路,控制电路,计数电路,锁存电路,扫描和显示电路。1、 分频器对产生的时钟信号的48MHz晶体振荡器进行分频,先产生1KHz产生时间基准信号,用以控制8个数码管以扫描方式显示计时结果。再对1KHz的分频信号再进行10分频,从而产生100Hz的基准信号,用于秒表最后一位的显示。2、 按键消抖电路在按键按下时,FPGA的输入为低电平;松开按键时,FPGA的输入为高电平,但是在按下按键和松开按键的瞬间会出现抖动现象,影响

17、秒表的运行,因此需要按键消抖电路,用以消除按键输入信号抖动的影响,输出单脉冲。3、 控制器控制计数器的开始、暂停以及复位。4、 计数器对时间基准脉冲进行计数,完成10进制,6进制的计数功能,并在最后把他们进行综合,组成两个60进制,一个100进制的计数器。5、 数据锁存器锁存数据使显示并保持暂停。6、 的包括扫描计数器、数据选择器和7段译码器,控制8个数码管以扫描方式显示计时结果。3.2.1 分频器设计始终分频模块始终分频模块的功能是将输入的外部信号时钟进行分频,从而产生用来消除都懂得1kHZ信号和用于秒表内部定时技术的100Hz的时钟信号以及用来显示数码管电路的1kHZ时钟信号。该模块的外部

18、输入信号源是实验板晶振产生的48MHz的时钟信号。在该模块中须将48MHz信号经过模48000的计数器分频,可以提到1kHz信号,可将该信号送到计数模块部分经过模十计数器分频,然后可得到计数精度为0.01秒的。如图片 6图片 6分频器引脚示意图将48MHz晶振信号分频至1kHz。3.2.2 消抖电路设计由于秒表采用按键的输入方式,按键产生的时间和持续的时间的长短是随机的,存在各种原因引起的电平抖动现象,因此需要在每个开关后面加一个按键输入模块。按键输入模块的作用是保证系统能捕捉到输入脉冲,并保证每按一键,只形成一个宽度为模块时钟周期的脉冲,按键消抖电路如图片 7图片 7消抖电路引脚示意图3.2

19、.3 控制模块该模块主要用来完成数字时钟的适中设定功能,可用两个按钮开关完成秒表的启/停和复位。如图片 8图片 8控制电路引脚示意图控制电路的设计参照下图片 9图片 9控制电路的设计图根据秒表电路总框架图可知,该模块一共三个输入三个输出,三个输出对应四个状态,四个状态可分别对应“00”、“01”、“10”、“11”。每个状态对应决定三个输出状态值,从而控制电路。3.2.4 计数器秒表技术模块主要是用于实现秒表的定时计数功能。由于秒表的输入时钟信号为1kHz时钟源,首先对1kHz进行十分频得到100Hz时钟源,即最小精度为0.01秒。该电路除了1kHz的时钟源输入还有用于控制清零复位信号rese

20、t和使能的 enable。秒表的计数模块的输出信号就是秒表的即时信息,包括百分秒的个位信号、百分秒的十位信号、秒个位、秒十位、分个位、分十位,并将输出信号与锁存器相连,做为锁存器的输入信号。将6个计数器并联实现这个功能。利用分频器得到0.01s的方波信号,以此作为每一个计数器的clk,计数器计算上升沿,得到输出与进位,此计数器的进位作为下一个计数器的使能控制端enable,依次类推。一共有7个计数器,第1、2、4、7个计数器是十进制,第5、8个计数器是6进制。其中reset为复位清零信号,enable为计数使能信号,计数器有模10和模6计数器,其引脚电路图如图片 10计数器引脚示意图3.2.5

21、 模块设计之数据锁存器数据锁存器,在使能en=1时,将计数器传送来的数据正常传输至输出口从而正常显示,en=0时,不能将计数器传出来的数据正常送至输出,而是将之前输入送至输出,一直显示因此不能正常显示,但此时仍能正常计数,当en再次等于1时,显示将回归原来的状态。锁存器的输入为计数器的输出,锁存器引脚示意图如图片 11数据锁存器引脚示意图3.2.6 八选一多路复用电路将从模八计数器送来的输入做为地址端,锁存器送来的信号做为选择端,即该电路有九个输入一个输出。其引脚示意图如图片 12图片 12八选一引脚示意图3.2.7 扫描段选电路将八选一多路复用电路的输出做为该模块的输入,本次试验选用的FPG

22、A实验板对应的数码管显示电路为共阳极数码管,故段选电路为低电平显示有效,将输入的二进制数翻译为数码管显示效果即该电路的功能,其电路原理图如图片 13扫描段选引脚示意图3.2.8 数码管段选电路本次试验使用的FPGA电路板中的数码管为低电平有效使能,则直接赋值ncs=1,改功能实现在top模块中,要实现的数码管显示效果如图片 14图片 14数码管显示效果图八个数码管则需要一个模为八的计数器循环扫描赋值使每个数码管都可以显示,由于人眼有“视觉暂留”效应,1kHz给人的效果就是持续显示。该模块输出会送至两个模块,一个模块为八选一多路复用器,另一个是位选电路。2.2.9 模块间综合从宏观角度观看,看一

23、看出秒表电路只有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