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

fpga_pwm呼吸灯(EP4CE6F17C8)

文章目录

  • 一、呼吸灯
  • 二、代码实现
  • 三、引脚分配


一、呼吸灯

呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,使用开发板上的四个led灯实现1s间隔的呼吸灯。

二、代码实现


```c
module pwm_led( input				clk		,input				rst_n	,output reg [3:0]    led
);								 
parameter CNT_US = 6'd49;//50x20=1000ns=1us
parameter CNT_MS = 10'd999;//1usx1000=1ms
parameter CNT_S  = 10'd999;//1msx1000=1sreg [5:0] cnt_us;
wire      add_cnt_us;
wire      end_cnt_us;reg [9:0] cnt_ms;
wire      add_cnt_ms;
wire      end_cnt_ms;reg [9:0] cnt_s;
wire      add_cnt_s;
wire      end_cnt_s;reg flag;//闪烁标志
always @(posedge clk or negedge rst_n)begin if(!rst_n)begincnt_us <= 0;end else if(add_cnt_us)begin if(end_cnt_us)begin cnt_us <= 0;endelse begin cnt_us <= cnt_us + 1;end endelse  begincnt_us <= cnt_us;end
end assign add_cnt_us = 1'd1;
assign end_cnt_us = add_cnt_us && cnt_us == CNT_US;always @(posedge clk or negedge rst_n)begin if(!rst_n)begincnt_ms <= 0;end else if(add_cnt_ms)begin if(end_cnt_ms)begin cnt_ms <= 0;endelse begin cnt_ms <= cnt_ms + 1;end endelse  begincnt_ms <= cnt_ms;end
end assign add_cnt_ms = end_cnt_us;
assign end_cnt_ms = add_cnt_ms && cnt_ms == CNT_MS;always @(posedge clk or negedge rst_n)begin if(!rst_n)begincnt_s <= 0;end else if(add_cnt_s)begin if(end_cnt_s)begin cnt_s <= 0;endelse begin cnt_s <= cnt_s + 1;end endelse  begincnt_s <= cnt_s;end
end assign add_cnt_s = end_cnt_ms;
assign end_cnt_s = add_cnt_s && cnt_s == CNT_S;always @(posedge clk or negedge rst_n)begin if(!rst_n)beginflag <= 1'b0;end else if(end_cnt_s)begin flag <= ~flag;//1s取反end else begin flag <= flag;end 
endalways @(posedge clk or negedge rst_n)begin if(!rst_n)beginled <= 4'b0;end else beginif(flag)begin//亮pwmled <= {cnt_s > cnt_ms, cnt_s > cnt_ms,cnt_s > cnt_ms,cnt_s > cnt_ms};end else begin//灭pwmled <= {cnt_s < cnt_ms, cnt_s < cnt_ms,cnt_s < cnt_ms,cnt_s < cnt_ms};endend 
end
endmodule

三、引脚分配

请添加图片描述

相关文章:

fpga_pwm呼吸灯(EP4CE6F17C8)

文章目录 一、呼吸灯二、代码实现三、引脚分配 一、呼吸灯 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化&#xff0c;使用开发板上的四个led灯实现1s间隔的呼吸灯。 二、代码实现 c module pwm_led( input clk ,input rst_n ,output reg [3:0] led ); …...

WPF实战学习笔记20-设置首页启动页

文章目录 设置首页启动页增加配置接口添加接口文件&#xff1a;实现接口 配置启动选项 设置首页启动页 增加配置接口 添加接口文件&#xff1a; Mytodo.Common/IConfigureInterface.cs using System; using System.Collections.Generic; using System.Linq; using System.T…...

uniapp实现预约时间选择弹窗组件

做了个组件&#xff0c;实现出当日预约时间组件&#xff0c;效果图如下 废话不多说&#xff0c;直接上代码&#xff0c;代码简单&#xff0c;参数自己任意改 <template><view class"inventory"><u-popup :show"show" :round"10"…...

opencv 之 外接多边形(矩形、圆、三角形、椭圆、多边形)使用详解

opencv 之 外接多边形&#xff08;矩形、圆、三角形、椭圆、多边形&#xff09;使用详解 本文主要讲述opencv中的外接多边形的使用&#xff1a; 多边形近似外接矩形、最小外接矩形最小外接圆外接三角形椭圆拟合凸包 将重点讲述最小外接矩形的使用 1. API介绍 #多边形近似 v…...

断路器分合闸速断试验

试验目的 高压断路器的分、 合闸速度是断路器的重要特性参数, 反映出断路器的操动机构 与传动机构在分、 合闸过程中的运动特征。 断路器分、 合闸速度超出或者低于规定值 均会影响断路器的运行状态和使用寿命。 断路器合闸速度不足, 将会引起触头合闸振 颤, 预击穿时间过长。…...

【Redis】如何实现一个合格的分布式锁

文章目录 参考1、概述2、Redis粗糙实现3、遗留问题3.1、误删情况3.2、原子性保证3.3、超时自动解决3.4、总结 4、Redis实现优缺5、集群问题5.1、主从集群5.2、集群脑裂 6、RedLock7、Redisson7.1、简单实现7.2、看门狗机制 参考 Redisson实现Redis分布式锁的N种姿势 (qq.com)小…...

组件化开发复习

1.vue的根组件使用 // 1.创建appconst app Vue.createApp({// data: option apidata() {return {message: "Hello Vue",counter: 0,counter2: 0,content: ""}},watch: {content(newValue) {console.log("content:", newValue)}}}) createApp 函…...

【设计模式】设计原则-里氏替换原则

里氏替换原则 定义 任何基类可以出现的地方&#xff0c;子类一定可以出现。 通俗理解&#xff1a;子类可以扩展父类的功能&#xff0c;但不能改变父类原有的功能。 换句话说&#xff0c;子类继承父类时&#xff0c;除添加新的方法完成新增功能外&#xff0c;尽量不要重写父类…...

v2ex站点base64编码解码

最近在刷v站&#xff0c;我毕竟也是入坑不久的小白&#xff0c;发现各位兄弟的联系方式都是乱码&#xff0c;我以为是经过md5处理之类的&#xff0c;最后搜了下发现是对信息进行了base64编解码处理&#xff0c;目的是为了防止社工对个人信息的爬取处理。 下面是通过python对个人…...

PostgreSQL数据库动态共享内存管理器——Dynamic shared memory areas

dsm.c提供的功能允许创建后端进程间共享的共享内存段。DSA利用多个DSM段提供共享内存heap&#xff1b;DSA可以利用已经存在的共享内存&#xff08;DSM段&#xff09;也可以创建额外的DSM段。和系统heap使用指针不同的是&#xff0c;DSA提供伪指针&#xff0c;可以转换为backend…...

Redission分布式锁详解

前言 ​ 在分布式系统中&#xff0c;当不同进程或线程一起访问共享资源时&#xff0c;会造成资源争抢&#xff0c;如果不加以控制的话&#xff0c;就会引发程序错乱。而分布式锁它采用了一种互斥机制来防止线程或进程间相互干扰&#xff0c;从而保证了数据的一致性。 常见的分…...

063、故障处理之快速恢复数据

数据丢失快速恢复的重要性 目的&#xff1a;尽快修复数据&#xff0c;恢复业务 快速恢复相关技术对比 常用备份恢复技术 数据快速恢复原理 MVCC 是TiDB数据库原生的一项功能&#xff0c;默认使用无需配置&#xff0c;它使用多个历史快照的方式来维护数据在某个时间点对并…...

从零开始学习CTF

前言 CTF简介 中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式 CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式 竞赛模式 解题模式&#xff1a; 在解题模式…...

【stable diffusion】保姆级入门课程05-Stable diffusion(SD)图生图-涂鸦重绘的用法

1.什么是涂鸦重绘 涂鸦重绘又称手涂蒙版。 简单来说&#xff0c;局部重绘手涂蒙版 就是涂鸦局部重绘的结合体&#xff0c;这个功能的出现是为了解决用户不想改变整张图片的情况下&#xff0c;对多个元素进行修改。 功能支持&#xff1a; 1.支持蒙版功能 2.笔刷决定绘制的元素…...

HBase 源码编译部署包

1. 版本 Java 版本: 1.8.0_201 HBase 版本: hbase-2.5.5 2.打包 git clone https://github.com/apache/hbase.git cd hbase git checkout branch-2.5 编译整个工程的 tar 包&#xff0c;编译一次 10 分钟左右 mvn clean package assembly:single -DskipTests ll hbase-assemb…...

备战秋招 | 笔试强训16

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、下列一段 C 代码的输出结果是&#xff08;&#xff09; #include <iostream> class Base { public:int Bar(char x){return (int)(x);}virtual int Bar(int x){return (2 * x);} }; clas…...

01 Excel常用高频快捷键汇总

目录 一、简介二、快捷键介绍2.1 常用基本快捷键1 复制&#xff1a;CtrlC2 粘贴&#xff1a;CtrlV3 剪切&#xff1a;CtrlX4 撤销&#xff1a;CtrlZ5 全选&#xff1a;CtrlA 2.2 常用高级快捷键1 单元格内强制换行&#xff1a;AltEnter2 批量输入相同的内容&#xff1a;CtrlEnt…...

PHP Laravel 路由、中间件、数据库等例子

以下是使用Laravel框架时的一些常见示例&#xff1a; 1. 路由&#xff08;Routes&#xff09;&#xff1a; // 定义基本路由 Route::get(/home, HomeControllerindex); // 带有参数的路由 Route::get(/user/{id}, UserControllershow); // 路由组 Route::middleware([auth])-&…...

Unity小游戏——使被砍中的怪物四处飞散

被武士砍中后&#xff0c;怪物将向四面八方飞散。 动作的不同将导致攻击力度的强弱表现不同&#xff0c;被攻击的各个对象的反应也有很大差异。在格斗游戏中&#xff0c;对对手一顿拳打脚踢后&#xff0c;看到其步履蹒跚的样子&#xff0c;往往可以感受到他的疼痛。相反如果对…...

hive之文件格式与压缩

hive文件格式&#xff1a; 概述&#xff1a; 为Hive表中的数据选择一个合适的文件格式&#xff0c;对提高查询性能的提高是十分有益的。Hive表数据的存储格式&#xff0c;可以选择text file、orc、parquet、sequence file等。 文本文件&#xff1a; 文本文件就是txt文件&…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...