当前位置: 首页 > news >正文

verilog基础语法-计数器

概述:

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

内容

1. 向上计数器

2.向下计数器

3.向上向下计数器

1. 向上计数器

代码

module regtest(input clk , // system clock 50Mhz on boardinput 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;elseup_cnt <= up_cnt + 1;endmodule

RTL结构图

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

2.向下计数器

代码


module regtest(input clk , // system clock 50Mhz on boardinput 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;elsedown_cnt <=down_cnt- 1;endmodule

RTL结构图

技术原理图

3.向上向下计数器

代码


module regtest(input clk , // system clock 50Mhz on boardinput 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;elseup_down_cnt <=up_down_cnt- 1;endmodule

RTL结构图

技术原理图

总结:

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

http://www.lryc.cn/news/262663.html

相关文章:

  • 有SCL,SDA,TRIG,I2C的元器件是什么?在哪找?proteus
  • 再谈低代码开发——值得所有程序设计和开发者重视的建议!
  • Docker部署MinIO对象存储服务器结合内网穿透实现远程访问
  • USB2.0 Spec
  • prbs测试
  • 计算机网络:数据链路层(VLAN)
  • C# WPF上位机开发(动态添加控件)
  • MySQL进阶|MySQL中的事务(一)
  • 设计模式策略模式讲解和代码示例
  • Qt容器QStackedWidget小部件堆栈
  • 设计模式 简单工厂 工厂方法模式 抽象工厂模式 Spring 工厂 BeanFactory 解析
  • 【Hive_03】单行函数、聚合函数、窗口函数、自定义函数、炸裂函数
  • RabbitMQ手动应答与持久化
  • java使用枚举类型解决if-else大量堆积
  • 【数据结构】八大排序之直接插入排序算法
  • 网络编程『socket套接字 ‖ 简易UDP网络程序』
  • FreeSWITCH rtp endpoint recvonly
  • Hadoop和Spark的区别
  • 英文论文降重修改技巧 papergpt
  • DevOps搭建(十)-安装Harbor镜像仓库详细步骤
  • DDA 算法
  • 天猫数据平台-淘宝天猫数据-天猫销售数据分析:11月天猫平台滑雪运动装备行业销量翻倍!
  • 使用OpenCV和PIL库读取图片的区别
  • Amazon CodeWhisperer:AI 编程助手
  • Linux 使用 Anaconda+Uwsgi 部署 Django项目和前端项目
  • 分析若依的文件上传处理逻辑
  • Note3---初阶二叉树~~
  • ElasticSearch学习篇8_Lucene之数据存储(Stored Field、DocValue、BKD Tree)
  • ROS机器人入门
  • 30. 深度学习进阶 - 池化