verilog实现led闪烁

文章目录

  • verilog实现led闪烁
    • 一、介绍
    • 二、代码
    • 三、仿真代码
    • 四、仿真结果
    • 五、总结

verilog实现led闪烁

一、介绍

使用verilog实现代码,实现led闪烁,每间隔200ms进行切换led灯

二、代码

module led (input wire clk,input wire rstn,output wire[3:0] led
);
parameter TIME_200MS = 10_000_000;
reg[1:0] state;
reg[24:0] cnt;
reg[3:0] led_r;
always @(posedge clk or negedge rstn) beginif(!rstn)begincnt<=24'd0;endelse if(cnt == TIME_200MS - 1)begincnt<=24'd0;endelse begincnt<=cnt+1'b1;end
end
always @(posedge clk or negedge rstn) beginif(!rstn)beginstate<=2'b00;endelse if(cnt == TIME_200MS - 1) beginstate<=state+1'b1;endelse beginstate<=state;endend
always @(posedge clk or negedge rstn) beginif(!rstn)beginled_r<=4'b0000;endelse begincase(state)2'b00:led_r <= 4'b0001;2'b01:led_r <= 4'b0010;2'b10:led_r <= 4'b0100;2'b11:led_r <= 4'b1000;default led_r<=led_r;    endcaseend
end
assign led = led_r;
endmodule

三、仿真代码

`timescale 1ns/1ns
module led_tb ();
reg clk;
reg rstn;
wire[3:0] led;
parameter MAX_NUM = 10_000;
parameter SYS_CLK = 20;
always #(SYS_CLK/2) clk=~clk;
initial beginclk = 1'b0;rstn = 1'b0;#(SYS_CLK*20);rstn = 1'b1;#(SYS_CLK*100000);$stop;
end
led #(.TIME_200MS(MAX_NUM)) t1(.clk(clk),.rstn(rstn),.led(led)
);
endmodule

四、仿真结果

在这里插入图片描述

五、总结

控制led闪烁相对吉纳丹,使用一个计数器进行切换即可

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

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

相关文章

【Spring Boot】Spring Boot的系统配置 — 实战:实现系统多环境配置

实战&#xff1a;实现系统多环境配置 在实际项目开发的过程中&#xff0c;需要面对不同的运行环境&#xff0c;比如开发环境、测试环境、生产环境等&#xff0c;每个运行环境的数据库、Redis服务器等配置都不相同&#xff0c;每次发布测试、更新生产都需要手动修改相关系统配置…

北邮国院物联网 Microprocessor 微处理器笔记

Introduction-随便聊 嵌入式系统是什么&#xff1f;专用的计算机系统。为专门功能可能对计算机架构&#xff0c;外设等做出一些取舍。 通常的限制&#xff1a;Cost&#xff08;比如大量部署传感器节点&#xff09;&#xff0c;Size and weight limits&#xff08;特定应用场景…

第 3 章 Spark 通讯架构

3.1 Spark 通信架构概述 3.1 Spark 通信架构概述 Spark 中通信框架的发展&#xff1a; ➢ Spark 早期版本中采用 Akka 作为内部通信部件。 ➢ Spark1.3 中引入 Netty 通信框架&#xff0c;为了解决 Shuffle 的大数据传输问题使用 ➢ Spark1.6 中 Akka 和 Netty 可以配置使用。…

使用HummerRisk进行K8s安全合规检测

1.简介 HummerRisk 是开源的云原生安全平台&#xff0c;以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和云原生安全检测。 今天我们来通过 HummerRisk 云原生安全检测能力来对Kubernetes进行安全合规检测 2.检测步骤 ①首先创建一个Kubernetes账…

浅谈无线温度监控系统在低功耗开关柜中的应用

安科瑞 华楠 摘要&#xff1a;为了能够实现实时监测高压开关柜的温度状况&#xff0c;提出一种基于无线传感器网络的开关柜温度在线监测系统。设计的无线温度在线监测系统不仅解决了开关柜内高温、高压、强电磁感应等在恶劣环境下不易检测的问题&#xff0c;而且从硬件选择和软…

【Linux】生产者消费者模型 -- RingQueue

文章目录 1. 生产者消费者模型的理解1.1 生产者消费者模型的概念1.2 生产者消费者模型的特点1.3 生产者消费者模型的优点 2. 基于BlockQueue的生产者消费者模型 1. 生产者消费者模型的理解 1.1 生产者消费者模型的概念 生产者消费者模型就是通过一个容器来解决生产者和消费者的…

机器学习31:《推荐系统-IV》深度神经网络DNN

在《机器学习29&#xff1a;《推荐系统-II》协同过滤》一文中&#xff0c;笔者介绍了如何使用矩阵分解来学习嵌入。矩阵分解具有一些局限性&#xff1a; 基础矩阵分解只用了 UserID&#xff08;QueryID&#xff09; 和 ItemID 两个维度的信息&#xff0c;所有学到的知识都蕴含在…

包管理工具:npm、yarn、cnpm、npx、pnpm

yarn&#xff1a;  yarn是由Facebook(react)、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具&#xff1b;  yarn 是为了弥补早期npm 的一些缺陷而出现的&#xff1b;  早期的npm存在很多的缺陷&#xff0c;比如安装依赖速度很慢、版本依赖混乱等等一系列…

pytorch深度学习 之一 神经网络梯度下降和线性回归

张量和随机运行&#xff0c;exp函数 import torch a torch.tensor([[1,2],[3,4]]) print(a) a torch.randn(size(10,3)) print(a) b a-a[0] print(torch.exp(b)[0].numpy())输出&#xff1a; tensor([[1, 2],[3, 4]]) tensor([[-1.0165, 0.3531, -0.0852],[-0.1065, -0.5…

Go语言之流指针类型,new函数

计算机中所有的数据都必须放在内存中&#xff0c;不同类型的数据占用的字节数不一样&#xff0c;例如 int 占用 4 个字节。为了正确地访问这些数据&#xff0c;必须为每个字节都编上号码&#xff0c;就像门牌号、身份证号一样&#xff0c;每个字节的编号是唯一的&#xff0c;根…

MySQL-数据库读写分离(上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

JavaWeb 速通Servlet(上)

目录 一、Servlet快速入门 1.为什么需要Servlet&#xff1f; 2.什么是Servlet? 3.Servlet开发说明 : 4.入门案例 : 二、 Servlet生命周期 1.浏览器请求Servlet的流程分析&#xff08;重要&#xff09; : 2.生命周期 : 1 初始化阶段 2 处理请求阶段 3 终止阶段 三、Serv…