首页 > 分享 > FPGA学习篇之计数器

FPGA学习篇之计数器

最新推荐文章于 2024-09-25 13:39:32 发布

IC小白' 于 2022-04-03 19:39:27 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

FPGA学习篇之计数器

前言

  在数字电路中计数是最基本的运算,计数器就是用来实现计数的电路。计数器可以对输入脉冲的个数进行计数,可以实现测量、定时、进行数字运算等功能,同时还能够对输入脉冲进行分频,输出低于输入脉冲频率的节拍脉冲。按计数器中的触发器是否同时翻转来分类,可以将计数器分为同步式计数器和异步式计数器;按计数器中数字的增减来分类,可以分为加法、减法和可逆计数器。

一、普通计数器

  普通计数器是由加法器和寄存器,由于使用到了加法器,耗费的逻辑资源较多,普通计数器代码如下:

module counter(input clk_100m,input rst_n ); reg [3:0] cnt; always@(posedge clk_100m or negedge rst_n)if(!rst_n)cnt <= 4'd0;elsecnt <= cnt + 1'b1; endmodule 1234567891011

在这里插入图片描述

二、环形计数器

  将寄存器的输入与输出首位相接,便组成了环形计数器,如下图所示,环形计数器不能自启动,需要在复位的时候指定初始值。
在这里插入图片描述

module counter(input clk_100m,input rst_n ); //环形计数器 reg [3:0]cnt; always@(posedge clk_100m or negedge rst_n)if(!rst_n)cnt <= 4'b0001;elsecnt <= {cnt[2:0],cnt[3]}; endmodule 12345678910111213

在这里插入图片描述

三、扭环形计数器(约翰逊计数器)

  与环形计数器相比,扭环形计数器将最高位的反相输出接回了最低位的输入。扭环形计数器也不能自启动,需要在复位时指定初值。
在这里插入图片描述

module counter(input clk_100m,input rst_n ); //扭环形计数器 reg [3:0]cnt; always@(posedge clk_100m or negedge rst_n)if(!rst_n)cnt <= 4'b0000;elsecnt <= {cnt[2:0],~cnt[3]}; endmodule 123456789101112

在这里插入图片描述

总结

  普通计数器虽然可以用n个寄存器表示2^n个状态,但需要额外消耗一个加法器。环形计数器用n个寄存器可以表示n个状态,扭环形计数器可以用n个寄存器表示2n个状态,状态利用率相较于扭环形有所提高,另外扭环形计数器每次状态转换时只有一位触发器改变状态,因而在将电路状态译码时不会产生竞争-冒险现象。

相关知识

【fpga里Verilog语言的小知识点】
FPGA之蜂鸣器播放音乐《花海》
谈谈Verilog和SystemVerilog简史,FPGA设计是否需要学习SystemVerilog
实数比较指令示例
花一分钟看看这3只FPGA芯片概念龙头股!(2024/11/21)
用功能指令改变计数器C0的设定值,当X1、X0=00时设定值为10,当X1、X0
基于FPGA的花卉温室环境智能监控系统
关于组织参加2024年全国大学生嵌入式芯片与系统设计竞赛——FPGA创新设计赛道的通知
ai素材制作之插花篇
阳台养花技巧之光照篇

网址: FPGA学习篇之计数器 https://m.huajiangbk.com/newsview893364.html

所属分类:花卉
上一篇: 定时器/计数器
下一篇: 数字时钟计数器(内含模60计数器