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.mzph.cn/news/230079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitee的学习

1.git下载 下载地址&#xff1a;https://git-scm.com/ 2.建立远程仓库 访问&#xff1a;gitee.com 在此网站上创建 3.本地操作 在本地找一个任意文件&#xff0c;克隆git 执行命令&#xff1a;git clone https://gitee.com/beijing-jiaxin-times_0/test_zsx_cang_ku.git …

【算法刷题】Day19

文章目录 1. 山脉数组的峰顶索引题干&#xff1a;算法原理&#xff1a;代码&#xff1a; 2. 寻找峰值题干&#xff1a;算法原理&#xff1a;1. 暴力解法2. 二分查找 代码&#xff1a; 3. 下降路径最小和题干&#xff1a;算法原理&#xff1a;1. 状态表示2.状态转移方程3. 初始化…

vue写了这么久了您是否知道:为什么data属性是一个函数而不是一个对象?

一、实例和组件定义data的区别 vue实例的时候定义data属性既可以是一个对象&#xff0c;也可以是一个函数 const app new Vue({el:"#app",// 对象格式data:{foo:"foo"},// 函数格式data(){return {foo:"foo"}} })组件中定义data属性&#xff…

BM61 矩阵最长递增路径

题目 矩阵最长递增路径 给定一个 n 行 m 列矩阵 matrix &#xff0c;矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径&#xff0c;使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件&#xff1a; 1. 对于每个单元格&#xff0c;你…

风速预测(六)基于Pytorch的EMD-CNN-GRU并行模型

目录 前言 1 风速数据EMD分解与可视化 1.1 导入数据 1.2 EMD分解 2 数据集制作与预处理 2.1 先划分数据集&#xff0c;按照8&#xff1a;2划分训练集和测试集 2.2 设置滑动窗口大小为96&#xff0c;制作数据集 3 基于Pytorch的EMD-CNN-GRU并行模型预测 3.1 数据加载&a…

初识Dubbo学习,一文掌握Dubbo基础知识文集(3)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

Ubuntu-报错

Hadoop-Eclipse-java&#xff1a;耽误进度的几个报错 错误1&#xff1a;桥接模式与NAT模式相互切换后导致两种模式都不能访问互联网&#xff08;1&#xff09;具体错误&#xff1a;&#xff08;2&#xff09;错误原因&#xff1a;&#xff08;3&#xff09;解决方案&#xff1a…

Redis设计与实现之订阅与发布

目录 一、 订阅与发布 1、 频道的订阅与信息发送 2、订阅频道 3、发送信息到频道 4、 退订频道 5、模式的订阅与信息发送 ​编辑 6、 订阅模式 7、 发送信息到模式 8、 退订模式 三、订阅消息断连 1、如果订阅者断开连接了&#xff0c;再次连接会不会丢失之前发布的消…

股票价格预测 | Python实现基于Stacked-LSTM的股票预测模型,可预测未来(keras)

文章目录 效果一览文章概述模型描述源码设计效果一览 文章概述 以股票价格预测为例,基于Stacked-LSTM的股票预测模型(keras),可预测未来。 模型描述 LSTM 用于处理序列数据,如时间序列、文本和音频。相对于传统的RNN,LSTM更擅长捕获长期依赖关系,

tomcat错误

Error running Tomcat8: Address localhost:1099 is already in use window环境&#xff0c;打开cmd netstat -ano | findstr :1099发现对应PID为24732 结束PID taskkill /PID 24732 /F

MATLAB图像处理技巧

MATLAB图片处理------动态绘图 1. 动态绘图2. XXXXX 1. 动态绘图 主要用到四个函数&#xff0c;分别为getframe、frame2im、rgb2ind以及imwrite&#xff1a; 1.getframe&#xff1a;获取当前绘图窗口的图片作为影片帧&#xff1b; 2.frame2im&#xff1a;从单个影片帧 F 返回索…

Redis Set类型

集合类型也是保存多个字符串类型的元素的&#xff0c;但和列表类型不同的是&#xff0c;集合中 1&#xff09;元素之间是无序的 2&#xff09;元素不允许重复 一个集合中最多可以存储2的32次方个元素。Redis 除了支持集合内的增删查改操作&#xff0c;同时还支持多个集合取交…

Axure元件的介绍使用以及登录界面

一、Axure元件介绍 简介&#xff1a; Axure元件是一种功能强大的设计工具&#xff0c;专门用于用户体验设计和交互设计。它可以帮助设计师创建可交互的原型&#xff0c;并实现各种界面元素的设计和布局。 Axure元件的基本特点包括&#xff1a; 多样性&#xff1a;Axure元件包括…

自动驾驶学习笔记(二十)——Planning算法

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 参考线平滑 双层状态机 EM Planner …

找到一些看似冷门但流量惊人的一些网站!- 独立产品灵感周刊 DecoHack #057

本周刊记录有趣好玩的独立产品设计开发相关内容&#xff0c;每周发布&#xff0c;往期内容同样精彩&#xff0c;感兴趣的伙伴可以 点击订阅我的周刊。为保证每期都能收到&#xff0c;建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。 &#x1f4bb; 产品推荐 1. Drawing Pics…

【Filament】绘制三角形

1 前言 Filament环境搭建中介绍了 Filament 的 Windows 和 Android 环境搭&#xff0c;本文将使用 Filament 绘制纯色和彩色三角形。 1.1 Filament 类图 1.2 图元 Filament 中图形的绘制都是基于三角形实现&#xff0c;三角形是构成复杂图形的最小基本单元。Filament 中输入模…

springMVC-模型数据的处理

一、数据放入到request域当中 1、把获取的数据放入request域中&#xff0c; 方便在跳转页面去显示 <a>添加主人信息</a> <form action"vote/vote04" method"post" >主人id&#xff1a;<input type"text" name"id&q…

JS中的模板字符串(ES6中的模板字面量语法),什么是模板字符串、怎么使用,附代码演示

模板字符串 1、JavaScript 在 ES6 新增了模板字符串语法。模板字符串可以作为普通字符串使用&#xff0c;其作用是可以在字符串中换行&#xff08;也就是支持多行字符串&#xff09;以及将变量和表达式插入字符串。 2、整个语法&#xff1a;使用反引号 &#xff0c;而不是单引…

MindOpt工具是如何做到配套使用的?请看此篇

Mindopt 介绍 MindOpt是阿里巴巴达摩院决策职能实验室研发的专注于优化领域&#xff0c;提供智能优化解决方案的品牌。主要的目标是帮助客户通过先进的优化算法和技术&#xff0c;实现业务流程的最佳化&#xff0c;提升效率&#xff0c;降低成本&#xff0c;并最大化业务价值。…

【强化学习-读书笔记】表格型问题的 Model-Free 方法

参考 Reinforcement Learning, Second Edition An Introduction By Richard S. Sutton and Andrew G. Barto无模型方法 在前面的文章中&#xff0c;我们介绍的是有模型方法&#xff08;Model-Based&#xff09;。在强化学习中&#xff0c;"Model"可以理解为算法…