基于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。
- 上一篇文章:一种自动生成状态机RTL代码的方法
- 下一篇文章:基于FPGA的数字基带通信方案
