碧波液压网 欢迎你,游客。 登录 注册

计数器的VHDL设计与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  目前,随着电子技术的飞速发展,数字系统规模越来越大,传统的电路设计已难以适应复杂电子系统的设计要求。从而使得电子设计自动化(EDA)技术迅速发展,成为硬件电子电路设计领域中的主要设计手段。而VHDL语言则是EDA的关键技术之一,他采用了自顶向下的设计方法,即在整个设计流程中各设计环节逐步求精的过程。通俗地讲,就是将设计系统自上向下地分解成各个模块,对设计的每个独立模块可以指派不同的工作小组来做,之后将做好的各个模块作为底层文件来构成顶层文件,从而完成系统硬件的整体设计。本文用FPGA芯片和VHDL语言设计了一位带使能和清零作用十六进制计数器,说明了利用VHDL语言实现数字系统的过程。

  1 系统的组成和工作原理

  一位十六进制计数器的原理结构如图1所示。系统的核心电路由FPGA完成,本设计选用了Altera公司的EPF10K20RC208-4芯片,用VHDL语言对他们进行设计。本设计由3大模块构成:分频器、计数器及数码译码器。工作原理为:

  分频器 将时钟CLOCK经过分频后,作为计数器的时钟信号;

  计数器 如果计数器的清零端CLR为低电平,计数器输出0,否则,当时钟的上升沿到来时,如果使能端为高电平,则计数器计数,否则计数器保持原来的数字;

  七段译码器 将计数器记录的数值译为七段数码驱动值,使得数码显示管亮起来。

  

  2 FPGA功能模块的设计

  本设计所用的3个模块都是用VHDL语言实现的。

  2.1 分频器模块设计

  本模块用VHDL编程如下所示:

  2.2 具有使能和清零功能的一位十六进制计数器模块设计

  本模块的VHDL语言编程如下所示:

  2.3 七段数码译码器模块设计

  本模块是针对共阳极的七段数码显示管用VHDL语言编写的,其中,led7s[6..0]对应七段数码显示管的Yg,Yf,Ye,Yd,Yc,Yb,Ya。程序如下所示:

  2.4 顶层模块的设计

  用VHDL语言编写程序如下所示:

  说明:在顶层文件中用到了元件的例化语句,他包括两部分,前一部分是元件定义语句,是对现成的设计实体的定义为一个元件,第二部分是元件例化语句,此元件与当前实体中的连线说明。他们的完整格式如下:

  3 仿真结果及分析

  整个系统的仿真结果如图2所示。

  图2中的参数含义说明:

  (1) clock是分频器的输入时钟信号;

  (2) cp是分频器分频后的信号(也是计数器的输入时钟信号);

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论