FPAG学习(5)-三种方法实现LED流水灯
目录
1.移位实现LED流水灯
1.1创建工程及源文件代码
1.1.1源代码
1.1.2仿真代码
1.1.3仿真
1.2实验结果
1.2.1总结
2.循环移位实现LED流水灯
3.38译码器实现LED流水灯
3.1原理
3.2源程序
1.移位实现LED流水灯
1.1创建工程及源文件代码
1.1.1源代码
利用计数器计数到500ms,让LED的8位每次左移一位。当复位后/移动至最左边时,让LED灯归位。犯的错误:1.counter<=counter+1'd1,写成了等号,导致仿真波形偶数的led灯无高电平,就是一个瞬间的脉冲,还有其他几处。
module run_led(clk,reset,led);input clk;input reset;output reg [7:0]led;reg [24:0]counter;always@(posedge clk or negedge reset)if(!reset)counter<=0;else if(counter == 25_000_000-1)counter<=0;elsecounter<=counter+1'd1;always@(posedge clk or negedge reset)if(!reset)led<=8'b0000_0001;else if(counter == 25_000_000-1)beginif(led==8'b1000_0000 | led==8'b0000_0000)led<=8'b0000_0001;elseled<=led<<1;endelseled<=led;endmodule
1.1.2仿真代码
时钟也是每10ns翻转一次,复位信号刚开始为低电平,延时201ns后变高,再延时4s,包装8个led灯的翻转。
`timescale 1ns / 1nsmodule run_led_tb();
reg clk;
reg reset;
wire [7:0]led;
run_led run_led(.clk(clk),.reset(reset),.led(led)
);initial clk=0;
always #10 clk=~clk;initial begin
reset=0;
#201;
reset=1;
#2000_000_000;
#2000_000_000;
$stop;
end;endmodule
1.1.3仿真
与预期一致,然后选择好引脚,烧录程序到开发板。

1.2实验结果
8个LED灯循环闪烁,与仿真波形一致。

1.2.1总结
修改源代码后,保存后还要重新生成bit文件才行,不然烧录的还是之前的程序。
2.循环移位实现LED流水灯
即将LED的前6位与第7位拼接起来,即可每次循环转一次。实验现象与之前一致。
beginled<={led[6:0],led[7]};end
3.38译码器实现LED流水灯
3.1原理
将之前写的38译码器模块直接调用,使用一个计数器循环计数0~7,将对应的值直接对应到输出。

3.2源程序
添加新的源文件,将1部分的代码复制,调用之前的38模块,添加现有源文件,需要勾选第二个copy框,意思是复制38译码器到这个工程来,否则就是在原来的工程上进行修改。

1.3位的计数器计满后不用管,自动溢出清0。
2.关于LED的驱动问题,led是由下一层38译码器驱动,run_led2作为上层,led只是起到一根导线的作用,从下层穿透到上层,最终作为端口引出。任何一个模块,在被例化的时候,连接到其输出端口的信号,都应该是wire型。

module run_led2(clk,reset,led);input clk;input reset;output wire [7:0]led;reg [24:0]counter;always@(posedge clk or negedge reset)if(!reset)counter<=0;else if(counter == 25_000_000-1)counter<=0;elsecounter<=counter+1'd1;reg [2:0]counter2;always@(posedge clk or negedge reset)if(!reset)counter2<=0;else if(counter == 25_000_000-1)counter2<=counter2+1'd1; decoder_3_8 decoder_3_8(.A2(counter2[2]),.A1(counter2[1]),.A0(counter2[0]),.Y0(led[0]),.Y1(led[1]),.Y2(led[2]),.Y3(led[3]),.Y4(led[4]),.Y5(led[5]),.Y6(led[6]),.Y7(led[7])
); endmodule
实验现象与之前一样。
相关文章:
FPAG学习(5)-三种方法实现LED流水灯
目录 1.移位实现LED流水灯 1.1创建工程及源文件代码 1.1.1源代码 1.1.2仿真代码 1.1.3仿真 1.2实验结果 1.2.1总结 2.循环移位实现LED流水灯 3.38译码器实现LED流水灯 3.1原理 3.2源程序 1.移位实现LED流水灯 1.1创建工程及源文件代码 1.1.1源代码 利用计数器计数到…...
科迅网络阅卷系统存在存储型XSS漏洞
漏洞描述 科迅网络阅卷系统存在存储型XSS漏洞,在项目列表添加项目的地方没有过滤用户的输入 漏洞复现 FOFA "科迅网络阅卷系统" POC <script>alert(/xss/)</script> <h1>1</h1>...
【AAOS】Android Automotive 11模拟器源码下载及编译
源码下载 repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r48 repo sync -c --no-tags --no-clone-bundle 源码编译 source build/envsetup.sh lunch car_x86_64-userdebug make -j12 运行效果 emualtor Home Map All apps Setting…...
鹏哥C语言74---第12次作业:OJ题练习
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> //---------------------------------------------------------------------------- 编程题 1:小乐乐走台阶 小乐乐上课需要走n阶台阶,因为她腿比较长࿰…...
Light灯光组件+组件的相关操作+游戏资源的加载
Light灯光组件 Type: Directional:平行光,模仿的是太阳光 Spot:聚光灯 Area:区域光 Color: 颜色值 Mode: RealTime:实时 Mix:混合 Baked:烘焙 Intersity: 光照强度 Indirect Multiplier:光照强度乘数 Shadow Type:影子设置:…...
离岗睡岗预警系统 值班室离岗识别系统Python 结合 OpenCV 库
在众多工作场景中,存在着一些特殊岗位,这些岗位对于人员的专注度和警觉性有着极高的要求。然而,离岗睡岗现象却时有发生,给工作的正常开展和安全保障带来了严重的威胁。本文将深入探讨特殊岗位离岗睡岗的危害,以及如何…...
在Centos中安装、配置与使用atop监控工具
目录 前言1. atop工具的安装1.1 atop简介1.2 atop的安装步骤 2. 安装并配置netatop模块2.1 安装内核开发包2.2 安装所需依赖2.3 下载netatop2.4 解压并安装netatop2.5 启动netatop 3. atop的配置与使用3.1 配置监控周期与日志保留时间3.2 设置定时任务生成日志3.3 启动与查看at…...
前端框架对比与选择:详尽分析
1. 引言 随着互联网技术的飞速发展,前端开发技术也得到了迅猛提升。无论是大型企业还是中小型开发团队,使用前端框架来简化开发过程、提升开发效率已成为一种普遍现象。如今,市场上有众多的前端框架可供选择,如React、Vue.js、Angular等,如何在这些框架中进行选择成为了开…...
FLINK SQL时区问题
SQL时区问题 在Flink SQL中,时区问题是一个需要特别关注的点,因为时区的不一致可能会导致数据的不一致性。以下是对Flink SQL时区问题的详细解释和解决方案: 一、时区问题背景 时间类型与时区: 在Flink SQL中,时间类…...
LibreOffice SDK是LibreOffice软件的开发工具包
LibreOffice SDK是LibreOffice软件的开发工具包,它提供了一系列工具和库,使得开发者可以基于LibreOffice进行扩展或开发新的应用程序。以下是对LibreOffice SDK的详细介绍: 一、下载与安装 下载地址: 可以在LibreOffice的官方网站…...
第十五届蓝桥杯C/C++学B组(解)
1.握手问题 解题思路一 数学方法 50个人互相握手 (491)*49/2 ,减去7个人没有互相握手(61)*6/2 答案:1024 解题思路二 package 十五届;public class Min {public static void main(String[] args) {i…...
在docker的容器内如何查看Ubuntu系统版本
文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境: docker 一、问题描述 由于 lsb_release -a 只能查看自己电脑(宿主机)的系统版本,如果在docker的容器内又应该如何查看Ubuntu系统版本呢ÿ…...
Google Play服务端获取订单和核销订单
官方文档地址:https://developers.google.cn/android-publisher/api-ref/rest/v3/purchases.products?hlzh-cn java依赖 <!-- google play --><dependency><groupId>com.google.apis</groupId><artifactId>google-api-services-and…...
Spring Security 与 OAuth 2.0 登录实现指南
文章目录 一、项目概述二、环境准备三、创建GitHub OAuth应用四、项目依赖配置五、配置OAuth 2.0六、创建控制器七、创建视图八、运行应用九、用户界面展示十、总结 在现代的Web应用中,安全性是一个不可忽视的因素。OAuth 2.0作为一种流行的授权框架,提供…...
02 django管理系统 - base.html模板的搭建
下面,我们正式开始XX市第X医院员工信息管理系统的开发 首先,我们项目的目录结构如下: 然后,先把模板【base.html】界面的框架搭起来 {% load static %}<!DOCTYPE html> <html lang"en"><head><m…...
ES6语法有哪些
ES6语法包括let和const声明、箭头函数、模板字符串、解构赋值、扩展运算符、类和模块化等。以下是这些特性的具体介绍: let和const声明 let声明:let允许程序员在块级作用域内声明变量,这意味着变量只在其定义的代码块(由大括号包围…...
每天一个数据分析题(五百零四)- 抽取样本
下列哪种方法,会重复抽取训练数据集中的数据,且每笔被抽中的概率始终保持一样? A. 袋装法(Bagging) B. 提升法(Boosting) C. 支持向量机(SVM) D. 以上皆是 数据分析…...
SAP动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试
SAP动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试 概念及计算逻辑: 动态安全库存(Dynamic Safety stock): 它根据平均的日需求(Average daily requirements)数量&am…...
什么是TDZ?在JavaScript当中怎么避免?
简介 TDZ 是 Temporal Dead Zone(暂时性死区)的缩写,是 JavaScript 中 let 和 const 变量的一个概念。在 ES6 中,let 和 const 引入了块级作用域(block scope),而它们声明的变量在声明之前的作…...
电阻分压电路:【图文讲解】
在电子电路中,电阻同样发挥着重要作用,同时也是一个最基本的元器件,电阻在电路中可以起到限流、分流、分压、发热的作用。 本节,我们重点来聊聊电阻的分压电路。如下图,是一个经典的电阻分压电路。 1:电路…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
