点亮流水灯

目录

1.water_led

2.tb_water_led


50MHZ一个周期是20ns,0.5秒就是20ns=0.02um=0.00002ms=0.000_00002s。0.5/0.000_00002s=25_000_000个时钟周期,表示要从0计数到24_999_999

LED灯是低电平点亮,前0.5秒点亮第一个LED灯,当检测到脉冲信号点亮第二个灯,然后依次点亮。以上的波形图是采用左移的方式来led_out的赋值的,但是实际会发生错误,因为左移右移都是在空位补零并不会出现如上图的led_out的输出情况,因此考虑增添一个信号。

通过对led_out_reg取反就可以得到需要的输出。

1.water_led

module water_led
#(parameter CNT_MAX=25'd24_999_999
)
(input		wire 		sys_clk		,input 		wire 		sys_rst_n	,output		wire  [3:0]	led_out	
);reg [24:0] cnt	;
reg  cnt_flag	;
reg [3:0] led_out_reg;assign led_out=~led_out_reg;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)cnt<=25'd0;else if(cnt==CNT_MAX)cnt<=25'd0;elsecnt<=cnt+25'd1;always@(posedge sys_clk or negedge sys_rst_n)if (sys_rst_n==1'b0)cnt_flag<=1'b0;else if (cnt==CNT_MAX-1'b1)cnt_flag<=1'b1;elsecnt_flag<=1'b0;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)led_out_reg<=4'b0001;else if((led_out_reg==4'b1000)&&(cnt_flag==1'b1))led_out_reg<=4'b0001;else if (cnt_flag==1'b1)led_out_reg<=led_out_reg<<1;//左移,右移这两种移位运算都用0来填补移出的空位elseled_out_reg<=led_out_reg;endmodule

2.tb_water_led

`timescale 1ns/1nsmodule tb_water_led();reg sys_clk;
reg sys_rst_n;wire [3:0] led_out;initial beginsys_clk=1'b1;sys_rst_n<=1'b0;#20sys_rst_n=1'b1;endalways#10 sys_clk=~sys_clk;water_led
#(.CNT_MAX(25'd24)
)
water_led_inst
(.sys_clk		(sys_clk),.sys_rst_n	    (sys_rst_n),.led_out	    (led_out)
);endmodule

Verilog中的逻辑移位和算术移位仿真_verilog 有符号数 左移-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640995.shtml

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

相关文章

关于缓存 db redis local 取舍之道

文章目录 前言一、影响因素二、db or redis or local1.db2.redis3. local 三、redisson 和 CaffeineCache 封装3.1 redisson3.1.1 maven3.1.2 封装3.1.3 使用 3.2 CaffeineCache3.1.1 maven3.1.2 封装3.1.3 使用 总结 前言 让我们来聊一下数据缓存&#xff0c;它是如何为我们带…

【C/C++】C/C++编程——为什么学习 C++?

当提到C的时候&#xff0c;很多人会觉得语法复杂、学习曲线陡峭&#xff0c;并且好像与C语言还有点"纠缠不清"。尽管如此&#xff0c;C仍然是当今世界上最受欢迎和最有影响力的编程语言之一。特别是在当今快速发展的人工智能&#xff08;AI&#xff09;领域&#xff…

【Java 设计模式】行为型之命令模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;用于将请求封装为对象&#xff0c;使得可以参数化客户端对象&#xff0c;并且能够排队、记录请求&#xff0c;以及支持撤销操作。在本文中&#…

R基础语法

1.变量 命名规则&#xff1a; R语言中变量可以由字母&#xff0c;数字以及点号.或下划线_组成。以字母或点开头。不能以数字开头。一些特殊的符号不能在名称中出现&#xff0c;如%&#xff0c;$等。区分大小写&#xff0c;如name和Name是两个变量。 可用名称不可用名称a1tri…

vue3前端开发,如何引入element-plus前端框架及配置参数

vue3前端开发,如何引入element-plus前端框架及配置参数&#xff01;这是一个简单的教程&#xff0c;帮助大家快速在自己的项目中引入element-plus框架。 主要是介绍的引入流程和参数的配置情况。 如图&#xff0c;这个就是elment-plus前端框架里面的一个主按钮展示。表示我们配…

NodeJs 第二十章 代理

在计算机网络中&#xff0c;代理是一种中间服务&#xff0c;能够代理用户与网络资源之间的通信。代理服务器可以缓存网页内容、过滤网络流量或隐藏用户的真实IP地址等功能。 在日常开发中&#xff0c;我们接触最多的是客户端发送ajax到服务端。但是服务端并不是 node &#xf…

pod 报错Failed to connect to github.com port 443

pod 报错Failed to connect to github.com port 443 1、排查代理问题1.1、查找网络代理1.2、修改 Git 的代理 2、排查DNS解析问题2.1、查找 ip地址2.2、修改 host 文件 1、排查代理问题 1.1、查找网络代理 打开 设置 --> 网络与Internet --> 查找代理 1.2、修改 Git …

k8s中服务器容器tcp连接数量优化

netty的http1服务器在运行一段时间后会无法提供服务&#xff0c;返回客户端socket hang up 使用apipost测试抓包显示三次握手后被reset 修改net/core/somaxconn 登录容器&#xff0c;cat /proc/sys/net/core/somaxconn显示128&#xff0c;对于一个服务器来说&#xff0c;这个…

第26章 内积继续深入讲解,一点叉乘

只要思想敢滑坡&#xff0c;办法总比想法多。 之前讲了内积的来源&#xff0c;现在继续讲在矩阵中为什么会有&#xff0c;对应坐标相乘的内积表现方式&#xff0c;还是需要复数的存在&#xff0c;现在就现在一个矩阵中讲&#xff0c;在一维的矩阵&#xff0c;这个矩阵就先全部…

Git提交大文件报错“remote: Please remove the file from history and try again. ”

如在使用Git过程中不小心将较大的二进制文件加入仓库&#xff0c;那么仓库大小很快就会超过规定的配额&#xff0c;在Push的时候会报下面的错误&#xff1a; remote: Powered by GITEE.COM [GNK-6.4] remote: error: File: c91e5de4f55bedd0669db01036fc131ea8e516ce 130.66 MB…

PLAN方法:解决 GAN 生成医学图像 Latent 空间中的隐私保护方法

PLAN方法&#xff1a;解决 GAN 生成医学图像 Latent 空间中的隐私保护方法 PLAN 原理StyleGAN 生成视网膜图k-SALSA 生成视网膜图PLAN方法 生成视网膜图 总结 PLAN 原理 论文&#xff1a;https://arxiv.org/abs/2307.02984 代码&#xff1a;https://github.com/perceivelab/P…

kingbase常用SQL总结之统计大小

概述 数据库运维中&#xff0c;我们需要总结一些常用的SQL语句&#xff0c;无论是日常巡检、故障排查或是死锁分析&#xff0c;都可以随时拿来用&#xff0c;提升工作效率&#xff0c;下面是一些常见的经典SQL或者是笔者自己工作过程中用到的常用的SQL,整理记录以备不时之需。…

SpringBoot 统计更多Api接口日志信息

第1步&#xff1a;基本配置了解 Further Reading &#xff1a; SpringBoot 统计API接口用时该使用过滤器还是拦截器? 第2步&#xff1a;丰富LogInterceptor&#xff08;主体流程&#xff09; 日志打印放afterCompletion是为了兼容异常场景也可以记录日志 import com.zhang…

【LeetCode27】 移除元素

27. 移除元素 快慢型双指针 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不…

vulhub之redis篇

CVE-2022-0543 | redis的远程代码执行漏洞 简介 CVE-2022-0543 该 Redis 沙盒逃逸漏洞影响 Debian 系的 Linux 发行版本,并非 Redis 本身漏洞, 漏洞形成原因在于系统补丁加载了一些redis源码注释了的代码 原理分析 redis一直有一个攻击面,就是在用户连接redis后,可以通过ev…

企业微信开发:本地运行一个页面应用

问题 在开发环境本地运行一个页面应用&#xff0c;将网页URL配置到企业微信的应用主页网址中&#xff0c;此时应用在企业微信中能够正常打开网页吗&#xff1f; 结论是&#xff1a;能够正常访问页面。 能够访问的前提 能够访问的前提条件&#xff0c;企业微信客户端所在的网…

界面控件DevExpress ASP.NET Data Grid组件 - 可快速处理各类型数据!(一)

由DevExpress开发的快速且功能完整的ASP.NET Web Forms的Data Grid组件&#xff0c;从全面的数据塑造和数据过滤选项到十多个集成数据编辑器&#xff0c;该套件提供了帮助用户构建极佳数据所需的一些&#xff0c;没有限制&#xff01; P.S&#xff1a;DevExpress ASP.NET Web …

k8s--helm

什么是helm&#xff1f;在没有这个helm之前&#xff0c;deployment service ingress helm的作用 通过打包的方式&#xff0c;把deployment service ingress等打包在一块&#xff0c;一键式的部署服务&#xff0c;类似yum安装 官方提供的一个类似与安装仓库额功能&#xff0c;…

Linux C语言开发(十)vim基本操作

目录 一.什么是vim 二.vim的进入与退出 三.vim的基本模式 四.vim的命令行模式操作

SPA vs MPA vs PWA

1、单页面应用程序&#xff08;SPA&#xff09; ① 什么是 SPA SPA 全称为 Single-Page Application&#xff0c;表示单页面应用程序。 也就是说只有一个 HTML 文件的 Web 应用&#xff0c;我们通过 Vue 开发的项目其实就是典型的 SPA应用 在单页面应用程序中&#xff0c;我…