0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Verilog的经典数字电路设计—计数器

冬至子 来源:新芯设计 作者:新芯设计 2023-10-09 17:48 次阅读

在数字系统中,使用得最多的时序电路差不多就是计数器了。计数器不仅能够用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲、产生脉冲序列以及进行数字运算等等。

其实,计数也是一种最简单最基本的运算,就像我们心里默念的计数一样。不过不同的是,计数器是有一定频率的计数,具有一定的时间间隔,而我们心里默念的计数的时间间隔不一样罢了(也就是不够准确的啦),而计数器就是实现这种运算的逻辑电路,主要是通过对时钟(上升)脉冲的个数进行计数的。

计数器在我们身边也很普遍,比如手机中自带的跑步的计时器、电脑定时关机等等;所以,熟悉掌握计数器,不仅对于学习 Verilog 非常有用,而且,还能锻炼我们的逻辑能力和更深刻地理解数字电路的工作原理,从而对科技更加感兴趣!

一、计数器的 Verilog 代码实现和 RTL 电路实现

下面是计数器的 Verilog 代码实现:

module Counters(
    input Clk,
    input Up, // 可增可减(可逆)计数器
    output reg [7:0] Cout = 8'b0000_0000 // 8 位计数器
    );

   always @(posedge Clk)
      if (Up)
         Cout <= Cout + 1'b1;
      else
         Cout <= Cout - 1'b1;

endmodule

下面是计数器的 RTL 电路实现:

图片

计数器的 RTL 电路图

时钟信号:Clk(时钟信号,就是电路的“心脏”,不可或缺);

复位信号:rst_n(复位信号,也是一个合格的电路不应该缺少的一个输入信号,当复位信号为低电平时,输出全部置零,这就是所谓的低电平有效)当复位信号为高电平时,开始计数,每一个时钟信号的上升沿到来就计一次数,每计数满 256 个时钟周期为一个输出循环,输出置零,然后重新计数;当然,这里为了更好地读懂代码,并没有加入复位信号啊哈哈哈嗝。

计数值信号:Cout(显示计数值,根据自己设计的需要,可以对位数进行设置,比如最大计数值为 6,那么位数就可以设置为 3 bits)

其实,这个既是计数器,又能当分频器,而且还能当计时器哟(再者还可以当闹钟功能)这三者其实都是息息相关的,但是博主并没有把分频器和定时器的功能加上去,其实只需要增加一两个信号即可,小伙伴们能否想到怎么添加,从而使得这个程序既有计数器的功能,也有分频器的功能和定时器的功能呢?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计数器
    +关注

    关注

    32

    文章

    2249

    浏览量

    94228
  • 时序电路
    +关注

    关注

    1

    文章

    114

    浏览量

    21672
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59646
  • 计时器
    +关注

    关注

    1

    文章

    416

    浏览量

    32591
  • Verilog设计
    +关注

    关注

    0

    文章

    20

    浏览量

    6503
收藏 人收藏

    评论

    相关推荐

    招聘:数字电路设计

    [猎头职位]国家重要芯片研发中心职位:数字电路设计工程师【岗位职责】负责USB、MIPI等高速接口IP或AD/DA的数字电路设计【任职资格】1.电子工程、微电子等相关专业硕士以上学历,两年以上
    发表于 02-27 10:52

    数字电路设计Verilog HDL

    数字电路设计Verilog HDL
    发表于 07-16 16:21

    数字电路--百位计数器电路设计

    数字电路--百位计数器电路设计
    发表于 11-25 15:16

    数字电路设计的基本方法有哪些

    化简→画逻辑电路图。时序电路设计:列原始状态转移图和表→状态优化→状态分配→触发选型→求解方程式→画逻辑电路图。在实际应用中,数字电路设计
    发表于 02-27 11:55

    格雷码计数器Verilog描述

    格雷码计数器Verilog描述
    发表于 08-03 09:39 45次下载
    格雷码<b class='flag-5'>计数器</b>的<b class='flag-5'>Verilog</b>描述

    数字电路设计

    数字电路设计 关于高速数字电路的电气特性,设计重点大略可分为三项: 正时(Timing) :由于数字电路
    发表于 08-26 19:08 2794次阅读

    计数器的定义和分类

    计数器的定义和分类 计数器定义在数字电路中,计数器属于时序电路,它主要由具有记忆功能的触发
    发表于 03-08 17:37 1.4w次阅读

    基于计数器数字电子钟的设计

    本设计就是研究用数字电路实现的数字电子钟,整体的电路设计就是由振荡、分频计数器、译码
    发表于 09-14 10:50 1w次阅读
    基于<b class='flag-5'>计数器</b>的<b class='flag-5'>数字</b>电子钟的设计

    数字电路组成的计数器原理电路

    如图所示的 数字电路 组成的计数器是采用红外线作检测信号,对活动目标扫描计数的小装置,很适用于生产线,对传送带上移动的物品进行快速而准确的计数。也可用于其他目的,例
    发表于 09-18 11:41 7889次阅读
    <b class='flag-5'>数字电路</b>组成的<b class='flag-5'>计数器</b>原理<b class='flag-5'>电路</b>

    数字电路中的FPGA和verilog教程

    数字电路中的FPGA和verilog教程,好东西,喜欢的朋友可以下载来学习。
    发表于 01-18 17:44 42次下载

    Verilog数字系统设计——复杂数字电路设计2(FIFO控制设计)

    Verilog数字系统设计十二复杂数字电路设计2文章目录Verilog数字系统设计十二前言一、什么是FIFO控制
    发表于 12-05 15:51 9次下载
    <b class='flag-5'>Verilog</b><b class='flag-5'>数字</b>系统设计——复杂<b class='flag-5'>数字电路设计</b>2(FIFO控制<b class='flag-5'>器</b>设计)

    数字电路设计的基本流程

    数字电路设计数字电路最为关键及重要的一步,今天我们将从各个流程为大家介绍完整的数字电路设计!
    的头像 发表于 07-10 17:14 7552次阅读

    数字电路中的计数器详解

    数字电路中一个非常重要的器件就是计数器,即统计脉冲个数。
    的头像 发表于 10-17 12:46 4197次阅读
    <b class='flag-5'>数字电路</b>中的<b class='flag-5'>计数器</b>详解

    二进制串行计数器工作原理是什么?

    数字电路设计中,计数器是一种非常关键的组件,用于测量时间、计数事件或跟踪状态变化等。其中,二进制串行计数器作为一种常用的计数器类型,在多种
    的头像 发表于 05-28 15:52 650次阅读

    计数器同步和异步怎么判断

    计数器同步和异步是数字电路设计中的一个重要概念,它们在很多应用场景中都扮演着关键角色。 一、计数器概述 计数器是一种常见的数字电路,它可以对
    的头像 发表于 07-23 11:14 489次阅读