您所在的位置:e-works首页 > 产品创新数字化(PLM) > EDA

基于VHDL的数字计时器的设计

发表时间:2008-9-26 夏晓玲 来源:万方数据
文章论述了数字计时器的设计原理、设计步骤以及用VHDL语言设计数字计时器的方法。数字计时器的设计主体是计数部分和译码部分,仿真结果表明,设计的计时器精度高。

    1设计原理分析

    数字钟的设计主体主要分为两部分:计数部分和译码部分。计数部分是数字钟的核心,它的主要功能是实现对时钟脉冲的累加产生秒、分、时信号。因此,计数部分又分为以下三个部分:

    (1)秒计数器。它是一个六十进制计数器,而且需要采用两位BCD码形式进行设计。计数范围:00-59秒。

    (2)分计数器。分计数的实现与秒计数的实现原理基本相同.唯一的区别就是在这部分增加了校时功能。

    (3)时计数器。这部分的设计采用的是24小时制,所以它是一个二十四进制计数器,其计数范围:00-23小时。同样,这部分也增加了校时功能。译码部分的主要功能是将秒、分、时计数器的BCD码进行译码、转换。通过数码管将数据结果显示出来。

    2 VHDL语言的实现

    通过原理分析可知,在具体编程过程中,利用VHDL语言强大的功能.将计数器和译码器有机地结合在一起,使得程序设计简化,同时,增加了程序的可读性闭。

    2.1秒计数器

    秒计数器是六十进制计数器,除了正常计数以外,要求每60秒产生一个计数脉冲传递给分计数器。因此,在秒计数器中,计数部分要设计出时钟输入端clk、个位数据输出端mg(3 downto 0)、十位数据输出端ms(2 downto 0)和进位输出端mso,其相应的VHDL语言描述的原理图如图1所示。

    图1秒计数器原理图

    对秒计数器进行设计。采用了两位BCD码的方式。个位向十位的进位采用异步串行进位方式。在秒的个位计数器的描述中,首先要在名为mjyl的实体中定义其端口。其中。clk是秒的时钟信号输入端,mgo是秒个位向十位的进位输出端,mg是秒的个位输出端:

    接下来是在结构体中定义了一个std_logic_vector类型的局部信号mgn和一个std_logic类型的局部信号C,以便使后面的进程描述更加灵活:

    图2秒的个位仿真波形图

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:赵蔓
2
;