数字秒表的系统设计_第1页
数字秒表的系统设计_第2页
数字秒表的系统设计_第3页
数字秒表的系统设计_第4页
数字秒表的系统设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3 数字秒表的系统设计3.1 系统的整体设计数字秒表的设计主要是一个计数电路,首先对一个时钟进行不同的分频,然后将分频出的时钟分别送给相应的模块,毫秒计数器,秒计数器,分计数器,时计数器,然后经过译码电路送给数码管,显示出相应数字,具体的秒表设计系统框图如下所示。 图3.1 系统框图本次设计采用1.25mhz的基准输入脉冲,将其进行12500分频后得到100hz的标准脉冲,因为秒表的精确度要求为0.01s,所以需要用100hz的脉冲。分频模块的输出脉冲作为计时模块的输入,当第一个模块计数满100后向秒进位,当秒计数满60后向分进位,分记满60后向小时计数,然后将要显示的数字进行译码后送给七段数

2、码管进行显示即可。3.2 秒表的层次化设计 3.2.1 分频模块 分频电路在eda的各种设计电路中应用非常多。我们经常用分频电路来实现多种我们需要的不同频率的脉冲。分频的基本原理就是将一个频率比较高的数字脉冲经过是当的处理后,输出一个或者多个频率相对较低数字脉冲,它的实质是计数器,计数的大小即分频常数有输入和输出的比值决定,它的输出是依据分频常数对输出信号的低电平和高电平的控制。另外分频器可分为整数分频和小数分频,本次设计采用整数分频。本次设计的精确度为0.01s,首先需要一个准确的计时基准时钟,它的周期为10ms,即需要用100hz的计时时钟,本次设计提供的时钟信号源为1.25mkhz,先经

3、过12500分频后可以获得100hz的时钟,让100hz作为计时模块的输入,用vhdl语言实现如下。library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin is port ( en, clock: in std_logic ;clk1: out std_logic);end fenpin; architecture bhv of fenpin is begin process(clock)variable cout:integer:=0;begin if clockeven

4、t and clock=1 and en=1 thencout:=cout+1;if cout=6250 then clk1=0; elsif cout12500 then clk1=1;else cout:=0;end if; end if; end process;end bhv;3.2.2 计时电路模块计时电路是eda进行各种数字电路的设计时几乎是不可缺少的一部分,可用于分频,定时电路的定时,基本的计数功能,甚至还可以用来做数学运算等。本次的数字秒表的设计中用到很多计数器,比如进行时钟分频时用到两种计数器,一个十进制和一个一百进制的,计数时用到一个100进制、两个60进制和一个24进制的

5、计数器。计数器的基本工作原理是将多个触发器按照一定的顺序连接起来,按照不同的触发器的状态遵循不同的规律来记时钟的个数,有了这个计数的规律,我们就轻而易举的对计数器进行vhdl描述了。本次设计把秒表的计时范围把一般的扩展到小时了,有一个100进制的计数器,两个60进制的和一个24进制的,毫秒和秒的vhdl语言描述如下,其它的模块程序参考附录a。1、100进制的计数器,输出为0.1s和0.01slibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minsecond isport(clk1,r

6、es, pause:in std_logic; l,h:out std_logic_vector(3 downto 0); co:out std_logic);end minsecond;architecture sec of minsecond issignal hout,lout:std_logic_vector(3 downto 0); begin process(clk1,res, pause, hout, lout) begin if res=1 then hout=0000; lout=0000; elsif pause=1 then hout=hout; lout1000) th

7、en if (lout1000) then lout=0000; hout=0000; co=1; else lout=lout+1; end if; else if (lout=1001) then lout=0000; hout=hout+1; else lout=lout+1; co=0; end if; end if; end if; end process; l=lout; h=hout;end sec;2、60进制的计数器以秒为例。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ent

8、ity second isport( clk2,res,pause:in std_logic; l,h:out std_logic_vector(3 downto 0); co:out std_logic);end second;architecture sec of second issignal hout,lout:std_logic_vector(3 downto 0); begin process(clk2,res,pause, hout, lout) begin if res=1 then hout=0000; lout=0000; elsif pause=1 then hout=h

9、out; lout0100) then if (lout1000) then lout=0000; hout=0000; co=1; else lout=lout+1; end if; else if (lout=1001) then lout=0000; hout=hout+1; else lout=lout+1; co=0; end if; end if; end if;end process; l=lout; hwwwwwwwwww=1101111;-显示9end case; end process;end dis;3.3 数字秒表顶层设计的描述本次设计数字秒表采用了原理图输入的方法进行

10、了描述,具体的过程:首先将每一个模块进行编译、综合、仿真后,针对vhdl生成相应的图符文件,然后将每个模块的图符文件和各自的vhdl放在一块,最后用原理图的方法将每个模块连接在一块,结果如图3.2所示。 图3.2 顶层设计原理图 4 系统仿真4.1 quartus的简介quartus开发软件是altera公司推出的业内比较领先的fpga设计软件,具有最全面的开发环境,它较多的应用于大规模的逻辑电路的设计,提供了从设计输入到器件编程的全部功能,与第三代设计软件相比较,它具有更加完美的功能,支持度可编程逻辑器件的数量也越来越多,它设计的输入,编译和综合仿真的过程都更加的简单,同时在编译和仿真的同时

11、会生成相应的报告。quartus软件的设计方法很多,支持图形编辑输入法,文本输入法,以及图形和文本混用输入法等多种编辑输入法。同时器内部有自带的综合器以及仿真器,可以完成从设计输入到硬件配置的整个设计流程。4.1.1 quartus的特点1、最容易使用的可编程逻辑器件的设计软件altera的 quartus ii软件支持max ii器件和其他的max cpld系列,因为它提供最全面的开发环境,并且也是最易使用的,可以完成从设计输入到硬件配置结束的整个设计项目流程。2、quartus ii给max+plus ii用户带来了很大的方便quartus ii提供了一个内置的max+plus ii外观选

12、项,两者是兼容的,max+plus ii的使用者不需要学习一个新的界面,就能获得quartus ii软件的所有的功能,它比max+plus ii的性能更好,它比max+plus ii的性能平均快百分之十五左右,对于固定的设计其平均的器件资源减少了百分之五。3、器件的兼容quartus ii的核心器件不仅支持max 3000a系列、max7000系列、max9000系列、flex6000系列、flex10k系列之外,还支持max ii cpld系列,cyclone系列等等最新的fpga系列的器件。4、系统设计技术altera的 quartus ii软件是第一个支持基于ip系统设计的软件,它包含了

13、完整的自动的系统定义和实施,不需要最低层的硬件描述语言和原理图。设计的人员可以在很短的时间内实现自己先要的系统。5、时序逼近的方法quartus ii采用了以内最先进的时序逼近的方法,使设计的人员能够迅速的获得自己设计的时序仿真的要求。这种时序逼近的方法是直接集成在它的工具包中,不需要单独对其进行操作。6、验证方法quartus ii不仅集成了第三方的eda的验证工具和方案,还提供有高级多时钟时序分析的能力,它可以让使用者决定设计中的速率关键和性能受限路径,以此来优化关键的时序路径。还包含了芯片编辑器,它可以在几分钟内实现系统内部的渐进式设计更改。altera 公司的quartus ii 作为

14、一种可编程逻辑的设计环境, 因为它的设计能力的强大和接口的简单易用,越来越受到更多数字系统设计者的青睐。4.2 各个模块的仿真在本次设计中,我采用了altera 公司的quartus ii做为仿真软件,对各个模块的源程序进行了编译、综合、仿真,并让每个模块的源程序生成相应的图符元件,用于顶层电路的设计描述。每个模块经仿真后被验证是正确的,具体的仿真波形如下。1、分频仿真波形 分频输入clock为1.25mhz的输入脉冲,en为使能端,当en为高电平时,分频器开始工作,分频输出信号clk为100hz的脉冲。 图5.1 分频模块的仿真波形从仿真波形中可以看出,当en为高电平时,分频器开始工作,这时

15、输出脉冲clk为正确输出,从时间轴可以看出,clk的周期为10ms,频率为周期的倒数,因此输出为100hz。2、毫秒的仿真波形 输入的信号为clk2,暂停键用pause键控制,清零键用res控制,h和l为十分秒和百分秒的输出,co为进位信号。图5.2 毫秒的仿真波形从图5.2可以看出,当时钟的上升沿过来后,暂停键无效时,低位计数开始,计数计满10后向高位进位,当高位记满10后,即整体计数满100后,进位信号co显示高电平,如图5.2中co所示,当暂停键pause为高电平时,低位计数器停止计数,图中显示低位暂停在3,高位暂停在1处;当复位键res出现高电平时,低位和高位都显示为零,仿真结果正确,

16、符合要求。3、秒的仿真波形秒的输入脉冲是由前一个模块的进位输出作为时钟信号clk2的,暂停键用pause控制,清零用res控制,l为秒的个位显示,h为秒的十位显示,co为进位信号。图5.3 秒的仿真波形 从图5.3可以得出,暂停键为高电平时,停止计数;复位键为高电平时,全部清零;计数满60后有输出,仿真结果正确。分钟、小时、和译码显示模块的仿真结果参考附录。4、顶层设计的仿真波形clk作为分频的输入,en作为总的控制时钟的开始,暂停键用pause控制,清零用res控制,w1-w8分别为秒表的低位到高位的8个数码管显示,高四位通过译码模块连接,共7位,低四位硬件自带的译码器,输出为四位。图5.3

17、顶层设计的仿真波形由图5.3可得,秒表可以正常工作,当毫秒记满100后秒开始计数,秒计满60后向分钟有进位,与设计的预期成果一致。1、分钟的vhdl语言描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport( clk2,res,pause:in std_logic; l,h:out std_logic_vector(3 downto 0); co:out std_logic);end minute;architecture min of minute issi

18、gnal hout,lout:std_logic_vector(3 downto 0); begin process(clk2,res,pause, hout, lout) begin if res=1 then hout=0000; lout=0000; elsif pause=1 then hout=hout; lout0100) then if (lout1000) then lout=0000; hout=0000; co=1; else lout=lout+1; end if; else if (lout=1001) then lout=0000; hout=hout+1; else lout=lout+1; co=0; end if; end if; end if;end process; l=lout; h=hout;end min; 2、小时的vhdl语言描述library ieee;use

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论