一种基于fpga的数字秒表设计方法

一种基于fpga的数字秒表设计方法

ID:9224739

大小:537.84 KB

页数:4页

时间:2018-04-23

一种基于fpga的数字秒表设计方法_第1页
一种基于fpga的数字秒表设计方法_第2页
一种基于fpga的数字秒表设计方法_第3页
一种基于fpga的数字秒表设计方法_第4页
资源描述:

《一种基于fpga的数字秒表设计方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、研究与设计doi:10.3969/j.issn.1563-4795.2012.01.004一种基于FPGA的数字秒表设计方法王永维(电子科技大学,四川成都610054)摘要:文中介绍了一种基于FPGA的数字秒表设计方法。采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。该设计具有外围电路少、集成度高、可靠性强等优点。最后经实验验证,该数字秒表计时准确,输入信号能准确控制秒表运行。系统所采用的自上而下的模块化设计方法,对于其他复杂的系统设计也有很强的借鉴意义。关键词:FPGA;数字秒表;模块化设计;VHDL数字集成电路作为当今信息时

2、代的基石,不显示译码模块,左边是输入控制信号,右边是显仅在信息处理、工业控制等生产领域得到普及应示计时结果的数码显示管,用六位BCD七段数码管用,并且在人们的日常生活中也是随处可见,极显示读数,显示格式如图2,计时范围为:1小时,大的改变了人们的生活方式。面对如此巨大的市精度为0.01s。场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。对于某些小批量应用的场

3、合,甚至可以直接利用FPGA实现,无需再去订制图1电子秒表原理结构图专门的数字芯片。文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿图2数值秒表显示格式真验证,并给出了完整的源程序和仿真结果。输入时钟信号由32MHz的石英晶振提供,考虑1总体功能结构设计到设计指标要求秒表精度为0.01秒,计数脉冲的时钟输入就应该是频率为100Hz的脉冲,所以先要设一个完整的数字秒表应具有计时、相应的控计一个320000分频器,分频器的输出可作计数器制以及计时结果显示功

4、能,总体的功能结构如图1的输入;其次计数模块设计应综合考虑秒表的计所示。黑色线框内是计数模块、使能转化模块和时范围(1小时)和显示输出(6位输出),6位输出中有两位是六进制输出,其余四位是十进制输出,收稿日期:2011-07-2110研究与设计所以可通过设计4个模10计数器和2个模6计数器来计数器和一个模10计数器,然后将他们级联,其实现,其中较低位的进位输出就是高位的计数输中调用4次模10计数器、2次模6计数器,这样可以入端。比直接设计模100的计数器和模60的计数器节省资控制模块应包括开始计时/停止计时、复位两源。级联时低位的计数进位输出接

5、高位的计数输个按钮,即电路设计经常用到的使能端和清零端,入端,如图3所示。再考虑到控制模块的要求,每这两个控制端口直接接到计数器的清零和史能端个计数器有三个输入端:时钟、使能和清零,两即可实现复位、开始计时/停止计时;但是外围使个输出端:计数输出和进位输出,采用同步使能能输入需要经过使能转换电路后,才可变为计数异步清零的设计方法,每个计数器的使能和清零器可用的使能控制信号。因此在输入使能信号和端都与外围的使能和清零端相联。计数器使能输入之间需设计一个信号转换模块。显示计数结果的模块实现较为简单,只需将六位计数结果通过七段译码电路接到输出即可点亮

6、数码管,无需时序控制,直接用组合逻辑电路就可以实现。数码管显示可以采用扫描显示,用一个频率1KHz的信号扫描一个多路选择器,实现对六位已经锁存的计数结果的扫描输出。2各功能模块设计图3模6/模10计数器级联结构图2.1分频器模块该模块的源程序以及ModelSim仿真输出结果如下:分频器的功能是提供标准时钟控制信号以精确控制计数器的开闭,提供的标准信号是32MHz,根据设计精度0.01s的要求,输出信号是100Hz,所以该分频器实现的功能是320000分频,具体的图4模6计数模块仿真结果VHDL源程序:模6计数器的VHDL源程序如下:proces

7、s(clk)process(clear,clk)beginbeginif(clk'eventandclk='1')thenif(clear='1')thenif(q=159999)thentmp<="0000";q<=0;carryout<='0';count_temp<=notcount_temp;elsif(clk'eventandclk='1')thenelseif(rst='0')thenq<=q+1;if(tmp="0101")thenendif;carryout<='1';endif;tmp<="0000";endprocess;e

8、lse2.2计数模块tmp<=tmp+1;该计数器要实现最大计数值为59分59秒99的carryout<='0';计数,而且为了数码管显示方便,该模块

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。