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

Verilog 学习第八节(数码管段码显示)

共阴极数码管:低电平端接的都是0,高电平端哪里设置为1 ,哪里就亮~
共阳极数码管与之相反~
视觉暂留:
对于三位的共阴极数码管
第0.01s:让数码管0的a段亮,其他数码管全灭
Sel0为高电平,sel1和sel2为低电平
A段为低电平

第0.02s:让数码管1的b、c段亮,其他数码管全灭
Sel1为高电平,sel0和sel2为低电平
B和C段为低电平

第0.03s:让数码管2的e段亮,其他数码管全灭
Sel2为高电平,sel0和sel1为低电平
E段为低电平
数码管动态扫描
所以,通过这种方式,可以节约引脚~
在这里插入图片描述
抽象原理图:
在这里插入图片描述
在fpga设计中尽量使用使能时钟去驱动寄存器,而不是门控时钟,因为门控时钟的质量非常差
在这里插入图片描述
使用门控时钟,将门控时钟直接作为DFF的工作时钟,没有ENA的情况下忽略ENA
在这里插入图片描述

使用使能时钟的情况,DFF的工作时钟继续全局高质量时钟,而将使能时钟作为DFF的使能信号使用

在能使用时序逻辑的情况下,尽量使用时序逻辑
顶层模块:


module hex8_test(input Clk,input Reset,output [7:0]SEL,output [7:0]SEG);wire [31:0]Disp_Data;hex8_2 hex8_2(Clk,Reset,Disp_Data,SEL,SEG);assign Disp_Data=32'h12359bdf;endmodule

主模块

module hex8(input Clk,input Reset,input [31:0]Disp_Data,output reg [7:0]SEL,output reg [7:0]SEG//seg[0]对应a,seg[1]对应b~~~~seg[7]对应h);reg clk_1k;reg [14:0]div_cnt;always@(posedge Clk or negedge Reset)beginif(!Reset)div_cnt<=0;else if(div_cnt>=25000-1)div_cnt<=0;elsediv_cnt<=div_cnt+1;endalways@(posedge Clk or negedge Reset)beginif(!Reset)clk_1k<=0;else if(div_cnt>=25000-1)clk_1k<=~clk_1k;endreg[2:0]reg_num;always@(posedge clk_1k or negedge Reset)beginif(!Reset)reg_num<=0;else if(reg_num>=7)reg_num<=0;elsereg_num<=reg_num+1;endalways@(*)begincase(reg_num)0:SEL=8'b0000_0001;1:SEL=8'b0000_0010;2:SEL=8'b0000_0100;3:SEL=8'b0000_1000;4:SEL=8'b0001_0000;5:SEL=8'b0010_0000;6:SEL=8'b0100_0000;7:SEL=8'b1000_0000;endcaseendreg[3:0] disp_temp;always@(*)begincase(reg_num)7:disp_temp=Disp_Data[31:28];6:disp_temp=Disp_Data[27:24];5:disp_temp=Disp_Data[23:20];4:disp_temp=Disp_Data[19:16];3:disp_temp=Disp_Data[15:12];2:disp_temp=Disp_Data[11:8];1:disp_temp=Disp_Data[7:4];0:disp_temp=Disp_Data[3:0];endcaseendalways@(*)begincase(disp_temp)0:SEG=8'hc0;1:SEG=8'hf9;2:SEG=8'ha4;3:SEG=8'hb0;4:SEG=8'h99;5:SEG=8'h92;6:SEG=8'h82;7:SEG=8'hf8;8:SEG=8'h80;9:SEG=8'h90;4'ha:SEG=8'h88;4'hb:SEG=8'h83;4'hc:SEG=8'hc6;4'hd:SEG=8'ha1;4'he:SEG=8'h86;4'hf:SEG=8'h8e;endcaseend 
endmodule

改进后的主模块


module hex8_2(input Clk,input Reset,input [31:0]Disp_Data,output reg [7:0]SEL,output reg [7:0]SEG//seg[0]对应a,seg[1]对应b~~~~seg[7]对应h);reg clk_1k;reg [15:0]div_cnt;always@(posedge Clk or negedge Reset)beginif(!Reset)div_cnt<=0;else if(div_cnt>=50000-1)div_cnt<=0;elsediv_cnt<=div_cnt+1;endalways@(posedge Clk or negedge Reset)beginif(!Reset)clk_1k<=0;else if(div_cnt>=50000-1)clk_1k<=1;elseclk_1k<=0;endreg[2:0]reg_num;always@(posedge Clk or negedge Reset)beginif(!Reset)reg_num<=0;else if(clk_1k)reg_num<=reg_num+1;elsereg_num<=reg_num;endalways@(posedge Clk)begincase(reg_num)7:SEL=8'b0000_0001;6:SEL=8'b0000_0010;5:SEL=8'b0000_0100;4:SEL=8'b0000_1000;3:SEL=8'b0001_0000;2:SEL=8'b0010_0000;1:SEL=8'b0100_0000;0:SEL=8'b1000_0000;endcaseendreg[3:0] disp_temp;always@(posedge Clk)begincase(reg_num)0:disp_temp=Disp_Data[31:28];1:disp_temp=Disp_Data[27:24];2:disp_temp=Disp_Data[23:20];3:disp_temp=Disp_Data[19:16];4:disp_temp=Disp_Data[15:12];5:disp_temp=Disp_Data[11:8];6:disp_temp=Disp_Data[7:4];7:disp_temp=Disp_Data[3:0];endcaseendalways@(posedge Clk)begincase(disp_temp)0:SEG=8'hc0;1:SEG=8'hf9;2:SEG=8'ha4;3:SEG=8'hb0;4:SEG=8'h99;5:SEG=8'h92;6:SEG=8'h82;7:SEG=8'hf8;8:SEG=8'h80;9:SEG=8'h90;4'ha:SEG=8'h88;4'hb:SEG=8'h83;4'hc:SEG=8'hc6;4'hd:SEG=8'ha1;4'he:SEG=8'h86;4'hf:SEG=8'h8e;endcaseend 
endmodule

测试模块

`timescale 1ns / 1psmodule hex8_tb();reg Clk;reg Reset;reg [31:0]Disp_Data;wire [7:0]SEL;wire [7:0]SEG;hex8 hex8(Clk,Reset,Disp_Data,SEL,SEG//seg[0]对应a,seg[1]对应b~~~~seg[7]对应h);initial Clk=0;always#10 Clk=!Clk;initial beginReset=0;Disp_Data=32'h0000_0000;#201Reset=1;#2000Disp_Data=32'h1234_5678;#10000000Disp_Data=32'h9abc_def0;#10000000$stop;end
endmodule

时钟质量在FPGA设计中重要的原因

1:时钟延迟不确定,而且比较大
2:使得时钟的波形变差
3:驱动能力
在这里插入图片描述

相关文章:

Verilog 学习第八节(数码管段码显示)

共阴极数码管&#xff1a;低电平端接的都是0&#xff0c;高电平端哪里设置为1 &#xff0c;哪里就亮~ 共阳极数码管与之相反~ 视觉暂留&#xff1a; 对于三位的共阴极数码管 第0.01s&#xff1a;让数码管0的a段亮&#xff0c;其他数码管全灭 Sel0为高电平&#xff0c;sel1和sel…...

方案开发|快递吊钩电子秤方案

物流的发展为我们提供了生活的便利&#xff0c;足不出户仍可以感受天南地北的美食的特产&#xff0c;在现在这个时代已经是现实并发展成为常态的事情了。在物流发展的每一个环节中&#xff0c;吊钩电子秤也是它必不可缺的一环。人们在寄出物品前需要通过吊钩电子秤称量过重量&a…...

Spring-IOC容器初始化过程

Spring IOC容器的初始化过程:Resource定位,BeanDefinition载入,向IOC容器注册BeanDefinition。整个过程由refresh()方法触发,三个过程由不同的模块完成,使用户更加灵活的对这三个过程剪裁和扩展。 BeanDefinition 就是POJO对象在IOC容器中的抽象。通过BeanDefinition 这个…...

AspCms标签手册

网站通用标签{aspcms:sitepath} 网站终极目录(可放在二级目录,其它语言则在三级目录){aspcms:languagepath} 语言目录{aspcms:siteurl} 网站地址{aspcms:sitelogo} LOGO地址{aspcms:sitetitle} 网站标题{aspcms:additiontitle} 网站附加标题{aspcms:sitekeywords} 网站关键词{a…...

什么是Netty

一&#xff0e;Netty介绍 1.什么是netty Netty 是由 JBOSS 提供的一个 Java 开源框架。Netty 提供异步的、基于事件驱动的网络应用程序框架&#xff0c;用以快速开发高性能、高可靠性的网络 IO 程序,是目前最流行的 NIO 框架&#xff0c;Netty 在互联网领域、大数据分布式计算…...

SpringCloud:统一网关Gateway

目录 1、网关介绍 2、搭建网关服务 3、路由断言工厂 4、路由过滤器 5、全局过滤器GlobalFilter 6、过滤器执行顺序 7、跨域问题处理 1、网关介绍 网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连&#xff0c;是复杂的网络互 连设备&#xff0…...

【独家】华为OD机试 - 最差产品奖(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

​力扣解法汇总1599. 经营摩天轮的最大利润

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱…...

MySQL-常见的五种索引

什么是索引&#xff1f; 百度百科&#xff1a;在关系数据库中&#xff0c;索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构&#xff0c;它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于…...

Linux学习第二十三节-压缩和解压缩和tar打包工具

1.压缩与解压缩&#xff08;不常用&#xff09;①Linux独有压缩格式及命令工具: gzip---> .gz bzip2---> .bz2 xz---> .xz②压缩命令格式&#xff1a; 压缩命令&#xff1a;gzip [选项] 文件名 常用选项&#xff1a;-d 解压缩 压缩命令&#xff1a;bzip2 [选项] 文件名…...

没有钱怎么创业?一分钱没有如何能创业成功?

限制人创业成功的从来都不是资金&#xff0c;而是能力&#xff0c;这个道理很多人都可能不懂&#xff0c;多数人习惯了庸庸碌碌、日复一日地打工行为&#xff0c;却不知如何创业&#xff0c;那么&#xff0c;没有钱怎么创业&#xff1f;一分钱没有如何能创业成功呢&#xff1f;…...

【操作系统原理实验】银行家算法模拟实现

选择一种高级语言如C/C等&#xff0c;编写一个银行家算法的模拟实现程序。1) 设计相关数据结构&#xff1b;2) 实现系统资源状态查看、资源请求的输入等模块&#xff1b;3) 实现资源的预分配及确认或回滚程序&#xff1b;4) 实现系统状态安全检查程序&#xff1b;5) 组装各模块…...

java医院云HIS系统:融合B/S版电子病历系统 能与公卫、PACS等各类外部系统融合

医院HIS系统源码 云HIS系统源码&#xff1a;SaaS运维平台完整文档 有源码&#xff0c;有演示 java基层医院云his系统 融合B/S版电子病历系统&#xff0c;支持电子病历4级 拥有自主知识产权。 看演示及源码可私信我哦&#xff01; 一、系统概述 一款满足二甲医院、基层医疗机构…...

单线激光雷达(SICK)驱动安装及时空标定

一、引言 1、AGV需要同时具备定位、避障与导航的功能&#xff0c;其中避障对于雷达本身的分辨率、精度要求并不是很高&#xff0c;只需要能够根据预设定的雷达扫描范围准确避开障碍物即可&#xff0c;故本文以TIM240&#xff08;SICK激光类雷达&#xff09;为例介绍实现多雷达…...

Java IO流

Java IO流 文章目录Java IO流什么是IO流InputStreamFlieInputStream示例OutputStream示例字符的读取与写入READER方法WRITER方法利用Scanner和PrintWriter简化字符的读写ScannerPrintWriter什么是IO流 前面我们介绍了Java中对文件的操作以及file类的了解&#xff0c;但是file类…...

LeetCode - 1653 使字符串平衡的最少删除次数

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 1653. 使字符串平衡的最少删除次数 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个字符串 s &#xff0c;它仅包含字符 a 和 b​​​​ 。 你可以删除 s 中任意数目的字符&#xff0c;使得 …...

【微信小程序】-- 页面事件 - 上拉触底 - 案例(二十七)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

《超导电子技术及其应用》学习日志(二)

约瑟夫森效应 约瑟夫森理论 约瑟夫森方程 &#xff08;1&#xff09;每一个库柏对都可视为质量为2m、电量为2e的复合载流子&#xff0c;定向运动速度v就是库柏相对质心的速度。处于超导态的库柏对凝聚于同一量子态&#xff0c;运载电流时具有完全相同的动量P。用微观波函数来…...

微信小程序this指向问题

前言 最近在开发微信小程序时不时会遇到一个很奇怪的问题&#xff0c;有些情况下用 this.setData 可以改变视图显示&#xff0c;有些情况下使用 this.setData 无效&#xff0c;这又是为什么呢&#xff1f; 问题描述 在解释这个问题前&#xff0c;我们先来看两段代码&#xff1…...

【报错】paddle相关报错和处理方法

1 报错 😱😱😱 ModuleNotFoundError: No module named paddle 2 解决方法 💉💉💉 pip --default-timeout=100 install paddlepaddle -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 🎉🎉🎉🎉🎉🎉 1 报错 😱😱😱 from paddl…...

StarWind V2V Image Converter实战:轻松将IMG镜像转换为VMware VMDK格式

1. 为什么需要IMG转VMDK&#xff1f; 虚拟机镜像格式转换是IT运维中的常见需求。我遇到过不少这样的情况&#xff1a;手头有一个现成的IMG格式镜像文件&#xff0c;但当前虚拟化环境用的是VMware。这时候就需要把IMG转换成VMware原生支持的VMDK格式。 IMG是一种通用的磁盘镜像格…...

知识向量化实战指南:从模型选型到混合检索优化

1. 知识向量化的核心价值与应用场景 第一次接触知识向量化这个概念时&#xff0c;我也是一头雾水。直到在医疗知识库项目中亲眼看到"糖尿病治疗"和"血糖控制方案"这两个看似不同的查询&#xff0c;通过向量化后获得了0.92的相似度评分&#xff0c;才真正理…...

OpenClaw负载测试:GLM-4.7-Flash并发处理能力评估

OpenClaw负载测试&#xff1a;GLM-4.7-Flash并发处理能力评估 1. 测试背景与目标 上周在尝试用OpenClaw自动化处理一批市场调研报告时&#xff0c;遇到了一个典型问题&#xff1a;当我同时提交20份PDF文件让AI助手提取关键数据时&#xff0c;系统开始出现响应延迟和部分任务超…...

Genus水平共现网络分析:高效替代OTU的实战指南

1. 为什么需要Genus水平共现网络分析&#xff1f; 做微生物群落研究的朋友们应该都深有体会&#xff0c;OTU/ASV水平的共现网络分析简直就是个时间黑洞。我去年处理一个土壤微生物项目时&#xff0c;2000多个OTU的共现网络跑了整整8个小时&#xff0c;等结果的时候都能看完两集…...

从防火墙到AI:企业级网络异常检测方案选型指南(2024最新版)

从防火墙到AI&#xff1a;企业级网络异常检测方案选型指南&#xff08;2024最新版&#xff09; 当某跨国零售企业遭遇持续3天的DDoS攻击导致线上业务瘫痪时&#xff0c;技术团队发现传统防火墙规则库已48小时未更新&#xff1b;而当某金融机构因AI模型误判正常促销流量为异常导…...

vLLM实战:手把手教你用LLMEngine构建高效推理服务(附代码解析)

vLLM实战&#xff1a;从零构建高性能大模型推理服务的工程指南 当大语言模型从实验室走向生产环境时&#xff0c;如何实现高吞吐、低延迟的推理服务成为工程化落地的关键挑战。vLLM作为当前最受关注的开源推理框架之一&#xff0c;其核心组件LLMEngine的设计理念值得每一位AI工…...

二分查找/二分答案

0.前言二分算法&#xff08;Binary Search&#xff09;&#xff0c;也叫折半查找&#xff0c;是一种在有序数据集合中高效查找目标值的算法。它通过不断将查找范围缩小一半&#xff0c;快速定位目标&#xff0c;时间复杂度为 O(logn)&#xff0c;远优于线性查找的 O(n)。1.原理…...

OpenClaw对比测试:Qwen3.5-9B与其他模型在自动化任务中的表现

OpenClaw对比测试&#xff1a;Qwen3.5-9B与其他模型在自动化任务中的表现 1. 测试背景与实验设计 最近在搭建个人自动化工作流时&#xff0c;我遇到了一个关键问题&#xff1a;OpenClaw框架下究竟该选择哪个大模型作为决策核心&#xff1f;为了找到答案&#xff0c;我花了三天…...

告别盲调:用eBPF uprobe给Go/Python应用函数调用画张“热力图”(附libbpfgo实战代码)

深度剖析eBPF uprobe技术&#xff1a;为Go/Python应用构建动态函数热力图 在云原生与微服务架构盛行的今天&#xff0c;后端服务的性能调优一直是开发者面临的挑战。传统性能分析工具往往需要重启服务或修改代码&#xff0c;这在生产环境中几乎不可行。而eBPF技术的出现&#x…...

后端架构师转型AI智能体架构师:3个月实战路径,收藏这份落地指南

如果你本身就是后端/全栈/架构师出身&#xff0c;这意味着你已经有了一套非常扎实的“确定性系统”的构建能力——分布式、高并发、数据库事务、系统稳定性&#xff0c;这些都是你的底牌。 而AI智能体恰恰是“不确定性系统”&#xff08;大模型&#xff09;与“确定性系统”&am…...