数码管的动态显示(一)

1.原理

把每一个数码管闪烁的时间设置为1ms,肉眼观察不到就会认为6个数码管在同时闪烁。

实验目标:

使用6位8段数码管实现数码管的动态显示,显示的内容就是0-999_999。当计数到最大值,让他归零,然后循环显示。每0.1秒加1。也就是说第一个0.1秒显示的是0,第2个0。1秒显示的是1。

高电平定义小数点位有效。符号位也是高电平有效。因为没有用到小数点位和符号位,所以一直让其保持低电平。使能信号控制数码管的显示,当为高电平,数码管可以正常显示。

2.代码

2.1data_gen.v

module data_gen#(parameter CNT_MAX=23'd4999_999,parameter DATA_MAX=20'd999_999
)
(input 		wire 		sys_clk		,input 		wire 		sys_rst_n	,output 		reg[19:0]	data		,output		wire[5:0]	point		,output		wire 		sign		,output		reg 		seg_en
);reg[22:0] cnt_100ms;
reg cnt_flag;assign sign=1'b0;
assign point=6'b000_000;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)cnt_100ms<=23'd0;else if(cnt_100ms==CNT_MAX)cnt_100ms<=23'd0;elsecnt_100ms<=cnt_100ms+1'b1;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)cnt_flag<=1'b0;else if(cnt_100ms==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)data<=20'd0;else if(data==DATA_MAX)data<=20'd0;else if(cnt_flag==1'b1)data<=data+1'b1;elsedata<=data;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)seg_en<=1'b0;elseseg_en<=1'b1;endmodule

2.2 tb_data_gen.v

`timescale 1ns/1ns
module tb_data_gen();reg sys_clk;
reg sys_rst_n;
wire seg_en ;
wire sign;
wire point;initial beginsys_clk=1'b1;sys_rst_n<=1'b0;#20sys_rst_n<=1'b1;endalways #10 sys_clk=~sys_clk;data_gen#(.CNT_MAX(6'd49),.DATA_MAX(4'd9)
)   
data_gen_inst(.sys_clk	(sys_clk)	,.sys_rst_n	(sys_rst_n),.data		(data),.point		(point),.sign		(sign),.seg_en     (seg_en )
);endmodule 

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

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

相关文章

Doris2.0 部署流程、遇到的问题及1.0升级至2.0流程整理

背景 Doris 1.0 版本总是出现副本损坏问题&#xff0c;机器资源充足&#xff0c;FE 和 BE 数据足够&#xff0c;每日的数据量一般&#xff0c;但是总是隔三差五出现入库时副本损坏问题。Doris 已经发布了2.0 版本&#xff0c;本周又发布了新版本 2.0.5。升级 Doris 能否解决副…

Jenkins 安装

目录 1、部署 Jenkins 安装配置 Jenkins 解锁 Jenkins 安装 Jenkins 插件 创建管理员账号 手动安装插件 2、Jenkins 从 GitLat 拉取代码 安装 Jenkins 插件 在 node-16 上生成密钥对 把公钥配置到 gitlab 上 把 root 用户私钥配置到 jenkins 上 Jenkins 创建一个任务…

命名空间(namespace)

定义 在C中&#xff0c;命名空间&#xff08;Namespace&#xff09;是一个特性&#xff0c;用于封装代码并避免名称冲突。命名空间可以看作是一个容器&#xff0c;其中可以包含类、函数、变量、常量、其他命名空间等。通过使用命名空间&#xff0c;我们可以更好地组织代码&…

C#进阶高级语法之LINQ :Lambda 表达式

C# 中的 LINQ (Language Integrated Query) 提供了一种声明性的数据查询和操作方法&#xff0c;它允许开发人员对集合、数据库等数据源进行查询和操作&#xff0c;而不需要编写复杂的循环和手动编码。Lambda 表达式与 LINQ 紧密相关&#xff0c;它提供了一种简洁的方式来定义匿…

职场中“祖传代码”的处理建议

程序员是如何看待“祖传代码”的&#xff1f; 祖传代码的由来 在实际的程序员工作中&#xff0c;祖传代码是常见的。因为真正的互联网职场生活中&#xff0c;业务变动调整频繁&#xff0c;每到一个新的业务线&#xff0c;第一件事就是熟悉现有工程代码&#xff0c;看旧文档等…

面试经典150题 -- 回溯 (总结)

总的链接 : 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 17 . 电话号码的字母组合 1 . 先创建一个下标 与 对应字符串映射的数组&#xff0c;这里使用hash表进行映射也是可以的 &#xff1b; 2 . 对于回溯 &#xff0c;…

论人类饮食多样性的偏好:为何人们倾向于每一餐都吃得不同

人类的饮食行为深深植根于生物进化、文化传承和社会心理等多个维度。细心观察日常生活&#xff0c;我们会发现大部分人在饮食选择上有着显著的多样化倾向&#xff0c;即使不是餐餐大鱼大肉&#xff0c;也会尽可能让每一顿饭的内容有所不同。本文旨在深入探讨这种饮食多样化偏好…

下班前几分钟,我彻底弄懂了YAML

目录 1. YAML语法1.1 Scalars1.2 Array1.3 Object1.4 复杂结构1.5 高级用法1.5.1 浮点数特殊值1.5.2 锚点与别名1.5.3 合并键 2. PyYAML的使用2.1 解析YAML2.2 生成YAML 3. YAML和JSON的区别Ref 1. YAML语法 YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种用…

JavaScript编写幻灯片

问题&#xff1a;创建一段带有幻灯片效果的JavaScript代码&#xff0c;要包含一个有4幅图片&#xff0c;设置定时器&#xff0c;每隔5秒切换一次图片&#xff0c;如果用户单击开始按钮&#xff0c;定时器启动&#xff0c;并开始进行图片切换&#xff0c;如果用户单击停止按钮&a…

Java实战:Spring Boot接口重试机制实现

本文将详细介绍如何在Spring Boot应用程序中实现接口重试机制。我们将探讨重试机制的基本概念&#xff0c;以及如何使用Spring Boot和第三方库来实现接口的重试功能。此外&#xff0c;我们将通过具体的示例来展示如何在Spring Boot应用程序中配置和使用接口重试机制&#xff0c…

python数据类型及转换

一、数据类型 数据类型分为数值型、布尔型、字符串型等 1.1数值类型 数值类型可以分为整数类型、浮点数类型、复数类型 1.1.1整数类型 (1)概念&#xff1a;整数类型指数值是没有小数部分的&#xff0c;包含正整数、负整数和0 (2)进制种类&#xff1a;十进制--->234、5…

Effective C++ 学习笔记 条款08 别让异常逃离析构函数

C并不禁止析构函数吐出异常&#xff0c;但它不鼓励你这样做。这是有理由的&#xff0c;考虑以下代码&#xff1a; class Widget { public:// ...~Widget() { /* ... */ } // 假设这个可能吐出一个异常 };void doSomething() {std::vector<Widget> v;// ... } // v…

【网站项目】139选课排课系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Redis 群集

简介 在现在的互联网大潮中&#xff0c;NoSQL可谓家喻户晓&#xff0c;Redis作为NoSOL大军中极其重要的一员&#xff0c;是我们走向架构道路的一条必经之路。 Redis介绍 Redis 数据库是一个非关系型数据库&#xff0c;在正式学习Redis之前&#xff0c;我们先来了解关系型数据库…

算法沉淀——动态规划之完全背包问题(leetcode真题剖析)

算法沉淀——动态规划之完全背包问题 01.【模板】完全背包02.零钱兑换03.零钱兑换 II04.完全平方数 完全背包问题是背包问题的一种变体&#xff0c;与01背包问题不同&#xff0c;它允许你对每种物品进行多次选择。具体来说&#xff0c;给定一个固定容量的背包&#xff0c;一组物…

TCPDump 使用教程

每次服务器网络不通的时候&#xff0c;总会听到一个声音&#xff0c;你去抓包啊&#xff0c;那这里就来介绍下TCPDump&#xff0c;一款强大的网络分析工具&#xff0c;可以捕获网络上的数据包&#xff0c;并进行分析。这款工具在网络管理员和安全专家中非常受欢迎。 一、安装 …

防火墙:网络防御的第一道防线

目录 引言 一、安全技术与防火墙 &#xff08;一&#xff09;安全技术 &#xff08;二&#xff09;防火墙的主要功能与分类 1.防火墙的主要功能 2.防火墙的分类 二、Linux防火墙的基本认识 &#xff08;一&#xff09;Netfilter &#xff08;二&#xff09;防火墙工具…

单调队列(347. 前 K 个高频元素239. 滑动窗口最大值)

单调队列和单调栈其实差不多,就是维护一个区间单调的队列或者是栈,单调队列就是我们所说的大顶堆小顶堆, //升序队列 小顶堆 great 小到大 priority_queue <int,vector<int>,greater<int> > pri_que; //降序队列 大顶堆 less 大到小 默认 priority_qu…

【AI视野·今日NLP 自然语言处理论文速览 第八十一期】Mon, 4 Mar 2024

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 4 Mar 2024 Totally 48 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Mitigating Reversal Curse via Semantic-aware Permutation Training Authors Qingyan Guo, Rui Wang, Junlia…

Fisher矩阵与自然梯度法

文章目录 Fisher矩阵及自然梯度法Fisher矩阵自然梯度法总结参考链接 Fisher矩阵及自然梯度法 自然梯度法相比传统的梯度下降法具有以下优势&#xff1a; 更好的适应性&#xff1a;自然梯度法通过引入黎曼流形上的梯度概念&#xff0c;能够更好地适应参数空间的几何结构。这使…