verilog基础语法-计数器

概述:

计数器是FPGA开发中最常用的电路,列如通讯中记录时钟个数,跑马灯中时间记录,存储器中地址的控制等等。本节给出向上计数器,上下计数器以及双向计数器案例。

内容

  1. 向上计数器

2.向下计数器

3.向上向下计数器

1. 向上计数器

代码

复制代码
module regtest(
	input clk , // system clock 50Mhz on board
	input rst_n, // system rst, low active 
	input en_clk,
	input load_enable,
	input [3:0] load_data,
	output [3:0] y1  // output signal

    );
reg [3:0] up_cnt;
assign y1 = up_cnt;
always @(posedge clk or negedge rst_n)
  if (rst_n==0)
	 up_cnt <= 0;
  else if (en_clk)
	 if (load_enable)
		up_cnt <= load_data;
	 else
		up_cnt <= up_cnt + 1;

endmodule

RTL结构图

技术原理图,基本的计数器结构是由触发器与组合逻辑来设计的,在FPGA中触发器有fdc来实现,组合逻辑使用lut查找表来实现,

2.向下计数器

代码

复制代码
module regtest(
	input clk , // system clock 50Mhz on board
	input rst_n, // system rst, low active 
	input en_clk,
	input load_enable,
	input [3:0] load_data,
	output [3:0] y1  // output signal

    );
reg [3:0] down_cnt;
assign y1 = down_cnt;
always @(posedge clk or negedge rst_n)
  if (rst_n==0)
	 down_cnt <= 0;
  else if (en_clk)
	 if (load_enable)
		down_cnt <= load_data;
	 else
		down_cnt <=down_cnt- 1;

endmodule

RTL结构图

技术原理图

3.向上向下计数器

代码

复制代码
module regtest(
	input clk , // system clock 50Mhz on board
	input rst_n, // system rst, low active 
	input en_clk,
	input load_enable,
	input [3:0] load_data,
	input up,
	output [3:0] y1  // output signal

    );
reg [3:0] up_down_cnt;
assign y1 = up_down_cnt;
always @(posedge clk or negedge rst_n)
  if (rst_n==0)
	 up_down_cnt <= 0;
  else if (en_clk)
	 if (load_enable)
		up_down_cnt <= load_data;
	 else if (up)
		up_down_cnt <=up_down_cnt+ 1;
	 else
		up_down_cnt <=up_down_cnt- 1;

endmodule

RTL结构图

技术原理图

总结:

计数器是基础,要理解它的设计电路图。

相关推荐
绿算技术2 小时前
存储新势力:助力DeepSeek一体机
人工智能·科技·缓存·fpga开发
9527华安9 小时前
国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持
fpga开发·音视频·紫光同创·sdi·高速接口·hssthp
S&Z346310 小时前
[FPGA基础] 原语简介篇
fpga开发
Dlrbw10 小时前
FPGA——DDS信号发生器设计
笔记·fpga开发
FPGA开源工坊15 小时前
FPGA上实现YOLOv5的一般过程
yolo·fpga开发
S&Z346320 小时前
[FPGA基础] UART篇
fpga开发
szxinmai主板定制专家1 天前
国产RK3568+FPGA以 ‌“实时控制+高精度采集+灵活扩展”‌ 为核心的解决方案
大数据·运维·网络·人工智能·fpga开发·机器人
FPGA_ADDA1 天前
基于FPGA 和DSP 的高性能6U VPX 采集处理板
fpga开发·dsp·6u vpx·8通道采集
FakeOccupational1 天前
fpga系列 HDL:跨时钟域同步 脉冲展宽同步 Pulse Synchronization
fpga开发
丶七年先生1 天前
牛客 verilog入门 VIP
fpga开发