[Actel FPGA] 呵呵,一篇不错的**

[复制链接]
2818|5
 楼主| usber 发表于 2009-5-14 14:07 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了系统的开发时间,提高了工作效率。本文介绍一种以FPGA为核心,以VHDL为开发工具的数字秒表,并给出源程序和仿真结果。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;系统设计方案<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1&nbsp;系统总体框图<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数字秒表主要有分频器、计数模块、功能控制模块、势能控制模块和显示输出模块组成。系统框图如图1所示。<br /><br />&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本次的设计仿真选用以EP1C6Q240芯片为核心的FPGA开发板,该开发板提供了较完善的外围周边电路和信号接口,并提供了一块4位7段数码管的扩展板,为本次设计提供了硬件条件。在设计中,功能控制模块根据控制选择不同的功能状态的时间输出,通过势能控制模块和显示输出模块驱动7段数码管显示相应的时间。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.2&nbsp;系统功能要求<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)具有时钟秒表系统功能要求显示功能,用4个数码管分别显示秒和百分秒;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)具有3种功能状态:系统时间运行状态,系统时间至零状态,时钟正常显示状态,通过输入控制信号可以使系统在这3个状态之间切换,使数码管显示相应状态的时间;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3)开启时间设定、关闭时间设定可通过控制信号中的时间调节来设置,在秒设置方面每按一下,秒就会自动加1,采用60进制计数,当计数到59时又会恢复为00;百分秒设置方面每按一下,百分秒会自动加1,采用100进制计数,当计数到99时,向上进位并恢复00。系统时间可以同单独的至零信号,将数码管显示时间直接恢复到00.00状态。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;模块功能设计及仿真<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1&nbsp;分频模块<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;开发板提供的系统时钟为50&nbsp;MHz,通过分频模块3次分频,将系统的时钟信号分为100&nbsp;Hz和1&nbsp;000&nbsp;Hz分别提供给计数模块和势能控制模块作为时钟控制信号。该模块部分VHDL源程序如下:&nbsp;<br /><br />&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2&nbsp;计数模块<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;计数模块中,时钟信号是100&nbsp;Hz作为秒表的百分秒输入,百分秒为100进制计数器,其进位输出作为秒的计数时钟,秒为60进制计数器。控制信号输入端的begin-stop和reset信号控制计数器的开始、停止和至零。该模块部分VHDL源程序如下,方针结果如图2所示:<br /><br />&nbsp;<br />&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.3&nbsp;势能控制模块<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本次设计选用的开发板数码管扩展板的数码显示采用的是4个数码管动态扫描输出,一般只要每个扫描频率超过人的眼睛视觉暂留频率24&nbsp;Hz以上就可以达到点亮单个显示而不闪烁,扫描频率采用1&nbsp;kHz信号。通过势能控制,每个数码管的显示频率为250&nbsp;Hz,满足显示要求。该模块部分VHDL源程序如下:<br /><br />&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.4&nbsp;显示控制模块<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本次设计选用的开发板在4位数码管输入方面只提供1个数据接口,用来动态显示4位数据,在数据输入信号方面要做到和势能控制信号同频率输出,才能保证数码显示不会出错或显示移位。该模块部分VHDL源程序如下:<br /><br />&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;同时通过控制信号示系统处在不同的功能状态:系统时间运行状态,系统时间至零状态,时钟正常显示状态。利用功能转换信号实现3个功能状态之间的转换,并产生相应的控制信号去控制显示输出模块不同状态的正确显示。其部分源程序如下:<br /><br />&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;系统部分功能仿真<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;各部分模块完成后,用QuartusⅡ对程序编译、仿真、得到的仿真波形如图3所示。<br /><br />&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本系统采用的FPGA芯片为Altera公司的EP1C6Q240,用VHDL和QuartusⅡ软件工具开发,设计输入完成后,进行整体的编译和逻辑仿真,然后进行转换、延时仿真生成配置文件,最后下载至FPGA器件,完成结果功能配置,实现其硬件功能。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;结&nbsp;语<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;该系统运用先进的EDA软件和VHDL,采用模块法自顶向下的设计原则,并借助FPGA实现数字秒表的设计,充分体现了现代数字电路设计系统芯片化,芯片化设计的思想突破了传统电子系统的设计模式,使系统开发速度快、成本低、系统性能大幅度地提升。<br />
jumpoo 发表于 2009-5-15 09:53 | 显示全部楼层

对初学者很有帮助

  
lpczcy 发表于 2009-6-1 20:42 | 显示全部楼层

不错的**

  
wabcic 发表于 2009-7-3 11:27 | 显示全部楼层

好**

对我们初学者&nbsp;真好用<br />
寻乐的狼 发表于 2009-7-19 09:15 | 显示全部楼层

代码怎么看不到啊

代码怎么看不到啊
孤独行者 发表于 2009-7-25 17:50 | 显示全部楼层

呵呵,一篇不错的**

如果能配上代码和电路图就更好啦!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

86

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部