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

FPGA的基础仿真项目--七段数码管设计显示学号

一、设计实验目的

1. 了解数码管显示模块的工作原理。

2. 熟悉VHDL 硬件描述语言及自顶向下的设计思想。

3. 掌握利用FPGA设计6位数码管扫描显示驱动电路的方法。

二、实验设备

1. PC机

2.Cyclone IV FPGA开发板

三、扫描原理

下图所示为1位数码管,由a、b、c、d、e、f、g、dp共8个LED构成,通过点亮特定的LED即可显示相应的字符。

多位的数码管由多个1位数码管构成,如下图所示为4位数码管。为了简化接口电路,多位数码管的段码(a,b,c,d,e,f,g,dp)通常并联在一起,并增加另外的位选信号(如下图中DIG4,DIG3,DIG2,DIG1)来选择使能某一位数码管。位选信号以一定的频率循环使能每一位数码管,从而实现多位字符的显示。

四、设计任务

1. 编写VHDL程序,在开发板的数码管上显示自己学号的末6位数字。

2. (可选)在实现用数码管显示数字的基础上,结合实验一与实验二的内容修改程序,实现一个上升沿触发、异步清零的计数器。具体要求:

(1)在数码管上显示当前的计数值。

(2)触发计数器的时钟频率为1Hz(即计数值每1秒加1),该时钟通过分频得到。

(3)异步清零通过按钮实现。

五、设计要求

1.在Quartus中用VHDL语言编写程序,设计合适的分频器电路和6位数码管扫描驱动电路,仿真验证后,下载至开发板验证设计功能。

2.开发板上有6位共阳极数码管,即段码(a,b,c,d,e,f,g,dp)输入为0时对应的LED亮,输入为1时对应的LED灭。位选信号(上图中DIG,开发板原理图中SEL)为低有效。自行查看核心板及扩展板原理图来选择正确的引脚进行绑定。

六、解构

示例代码分享

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;entity ledtest is
port(clk : in std_logic;dig : out std_logic_vector(7 downto 0);ds : out std_logic_vector(5 downto 0));
end ledtest;architecture a of ledtest issignal cnt1 : integer range 0 to 31;signal cnt2 : std_logic_vector(9 downto 0);signal cnt1k : integer range 0 to 7;signal clk1m,clk1k : std_logic;begin--clk div by 50process(clk)beginif clk'event and clk='1' thenif cnt1<25 thencnt1 <= cnt1+1;elsecnt1 <= 0;clk1m <= not clk1m;end if;end if;end process;--clk div by 1024process(clk1m)beginif clk1m'event and clk1m='1' thencnt2 <= cnt2 + 1;end if;end process;clk1k <= cnt2(9);--ds scanprocess(clk1k)beginif clk1k'event and clk1k='1' thenif cnt1k<5 thencnt1k <= cnt1k + 1;elsecnt1k <= 0;end if;end if;end process;with cnt1k selectds<="111110" when 0,"111101" when 1,"111011" when 2,"110111" when 3,"101111" when 4,"011111" when 5,"111111" when others;with cnt1k select	dig<="10000010" when 0,"10010010" when 1,"10011001" when 2,"10110000" when 3,"10100100" when 4,"11111001" when 5,"11000000" when others;-- "dp g f e d c b a"	-- '0' --  "11000000"-- '1' --  "11111001"-- '2' --  "10100100"-- '3' --  "10011001"-- '4' --  "10011001"-- '5' --  "10010010"-- '6' --  "10000010"-- '7' --  "11111000"-- '8' --  "10000000"-- '9' --  "10010000"	end a;

按照笔者前文进行相应联合Modelsim仿真编译后,进行引脚分配

怎样仿真编译???

给你一个链接自己看:

基于Quartus Prime18.1的安装与FPGA的基础仿真(联合Modelsim)教程-CSDN博客

6.1 引脚分配

FPGA 的用户 I/O 通常很多,用户可以自行指定各个引脚的功能。但是当 FPGA 器件已焊在 PCB 板上时,需要根据这些引脚在 PCB 上与其它元器件和设备的连接来指定其用途,具体操作如下:
首先需要在任务窗口中双击 Analysis & Syntheis,完成综合。(也可以 Compile Design 编译整个工程。)
只有综合通过后,开发环境才能识别出整个设计的输入输出引脚, 如果不综合,打开下方的引脚分配窗口将看不到任何端口名(Node Name)
菜单 Assignments->Pin Planner(Ctrl+Shift+N),打开引脚分配窗口

注意:原先的引脚项是白色无设置的,如:

需要进行相应引脚的接入,本次实验共阳极,所以引脚如下:(在对应clk一行后Location双击选择对应的Pin引脚)

上方是对应的引脚图,编辑后变色

6.2 下载

PC 连接 USB 下载线,安装好驱动。(手动选择驱动文件位置,文件路径为 Quartus 安装路径下的 drivers 文件夹

(看好上方路径,双击打开quartus-->drivers)下载编译驱动程序DPInst.exe

 点击下一步,会出现部分无法安装,不用担心,可以正常往下做,点击完成

开发板插好下载线(开发板上有 2 个下载接口,插到 JTAG 上)
插好电源,按下电源开关,开发板上电。(先插好下载线再上电,否则容易烧坏芯片)
双击 Tasks 栏里的 Program Device,一般会自动打开编译生成的 led.sof 文件(如果没有,则删除列表里的其它下载文件,打开 led.sof)勾选 Program/Configure,其它都不打勾
点击左上 Hardware Setup,选择 USB-Blaster[USB-0],OK
确认下方显示将下载的器件为 EP4CE15F17,如果不是,点击 Auto Detect
确认全部都设置好以后,点击 Start。右上方进度条开始前进,直到提示程序下载完成 100%(Successful),即可在开发板上通过按钮测试程序的效果

七、测试结果

 (更改数字即从下方代码逆序更改顺序显示)

任务完成

相关文章:

FPGA的基础仿真项目--七段数码管设计显示学号

一、设计实验目的 1&#xff0e; 了解数码管显示模块的工作原理。 2&#xff0e; 熟悉VHDL 硬件描述语言及自顶向下的设计思想。 3&#xff0e; 掌握利用FPGA设计6位数码管扫描显示驱动电路的方法。 二、实验设备 1. PC机 2.Cyclone IV FPGA开发板 三、扫描原理 下图所…...

Jmeter接口请求之 :multipart/form-data 参数请求

参考教程 Jmeter压测之&#xff1a;multipart/form-data_jmeter form-data-CSDN博客 1、通过fiddler对接口进行抓取&#xff0c;接口信息如下图所示 2、获取到接口后 在fiddler右侧点击Inspectors-Raw中可以看到如下图所示信息&#xff0c;上半部分为默认请求头信息内容&#…...

Type-C诱骗芯片LDR6500

随着科技的飞速发展&#xff0c;电子设备的智能化和便携化已成为趋势。在这个过程中&#xff0c;Type-C接口因其高速传输、正反可插以及强大的扩展能力&#xff0c;逐渐成为主流接口标准。然而&#xff0c;Type-C接口的广泛应用也带来了一系列挑战&#xff0c;其中之一便是如何…...

统一异常处理

问题 当系统出现异常时&#xff0c;除了要在控制台、日志等后台进行输出之外&#xff0c;还需要在前端提示用户。 为了提示给用户&#xff0c;错误信息需要做一些约定&#xff1a; 错误信息统一用json格式返回给前端以HTTP状态码判断是否出现异常&#xff0c;非200即为异常 …...

Nginx网络服务

1 Nginx服务基础 Nginx&#xff08; 发音为&#xff3b;engine x] ) 专为性能优化而开发&#xff0c;其最知名的优点是它的稳定性和低系 统资源消耗&#xff0c; 以及对HTTP 并发连接的高处理能力&#xff08;单台物理服务器可支持30000~50000 个并发请求&#xff09; 。正因为…...

ifconfig eth0 hw ether

ifconfig hw ether 是一个用于在 Linux 系统中设置或更改网络接口的硬件地址&#xff08;即 MAC 地址&#xff09;的命令。具体操作步骤如下&#xff1a; 首先&#xff0c;您需要确定要更改 MAC 地址的网络接口名称&#xff0c;通常是 eth0, eth1 等&#xff0c;取决于您的系统…...

微信小程序录音机源代码

<!-- <button bind:tap"startTab">开始录音</button> <button bind:tap"stopTab">结束录音</button> <button bind:tap"playTab">播放录音</button> <view style"margin: 0 auto;">{{ti…...

基于c语言的简单的数据库

​‌​⁠​​​​​⁠​‬​‬‌​‍​​​‌​‌‬​‌​⁠​​&#xfeff;‬‍‬​​⁠​‬‍&#xfeff;​​‬​​​‬简单的数据库 - 飞书云文档 (feishu.cn) mydatabase: 实现一个简单的数据库&#xff0c;基于B树 (gitee.com)...

Docker 容器内运行的 Neo4j 实例 安装apoc插件

插件 本页描述了如何将插件安装到在 Docker 容器内运行的 Neo4j 实例中。有关插件的一般说明&#xff0c;请参见配置 → 插件。 安装插件 安装插件&#xff0c;包括用户定义的程序&#xff0c;将包含插件 JAR 的文件夹或卷挂载到 /plugins &#xff0c;例如&#xff1a; docker…...

PostgreSQL源码分析——审计插件pgaudit

PostgreSQL审计插件pgaudit 在PostgreSQL中&#xff0c;提供了开源的审计插件pgaudit&#xff0c;但是其功能并不完善&#xff0c;只提供了基本的审计功能&#xff0c;对此&#xff0c;很多基于PG开发的商业数据库大多提供了丰富的审计功能。比如人大金仓&#xff0c;openGaus…...

ijkplayer编译 android版本

ijkplayer源码下载地址如下&#xff1a;https://github.com/bilibili/ijkplayer 下载代码&#xff0c;直接执行如下命令即可&#xff1a; $cd /data/project/ijkplayer/ $git clone https://github.com/bilibili/ijkplayer.git $git checkout -B latest k0.8.8 1 环境安装 …...

面向对象的进阶---static

1.static 静态变量 package com.itheima.a01staticdemo01;public class Student {private String name;private int age;public static String teacherName;public Student() {}public Student(String name, int age) {this.name name;this.age age;}/*** 获取* return n…...

React useContext

useContext 允许父组件向其下层无论多深的任何组件提供信息&#xff0c;而无需通过 props 显式传递。 // 1. LevelContext.js 创建 context&#xff0c;将其从文件中导出 import { createContext } from react; export const LevelContext createContext(1);// 2. Section.j…...

【尚庭公寓SpringBoot + Vue 项目实战】用户管理(十五)

【尚庭公寓SpringBoot Vue 项目实战】用户管理&#xff08;十五&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】用户管理&#xff08;十五&#xff09;1、业务介绍2、接口实现2.1、根据条件分页查询用户列表2.2、根据ID更新用户状态 1、业务介绍 用户管理共包含两…...

laravel中如何向字段标签添加工具提示

首先&#xff0c;您可以使用 轻松自定义字段标签->label()。我相信您知道这一点。但您知道吗……标签输出未转义&#xff1f;这意味着您也可以在标签中包含 HTML。 为了尽快实现上述目标&#xff0c;我只是采取了一个快速而粗糙的解决方案&#xff1a; CRUD::field(nickna…...

高考志愿填报,选专业应该考虑哪些因素?

这是一个复杂的社会&#xff0c;各种影响就业的因素层出不穷&#xff0c;也从未断绝。对于高考生而言&#xff0c;高考刚结束&#xff0c;短暂的放松后&#xff0c;就必须考虑自身以后应该就读什么专业&#xff0c;如果不对就读专业进行评估&#xff0c;仔细挑选&#xff0c;毕…...

图书管理系统代码(Java)

1、运行演示 QQ2024528-205028-HD 详细讲解在这篇博客&#xff1a;JavaSE&#xff1a;图书管理系统-CSDN博客 2、所建的包 3、Java代码 3.1 book包 3.1.1 Book类代码 package book;/*** Created with IntelliJ IDEA.* Description:* User: dings* Date: 2024-05-13* Time:…...

Nginx反向代理Kingbase数据库

本文适用于开发人员学习运维领域知识&#xff0c;主要内容为在个人理解的基础上对企业级开发中所使用的Nginx和数据库kingbase相关使用&#xff0c;并附上Nginx反向代理kingbase数据库的相关配置的操作方式&#xff0c;感谢阅读 为什么是nginx代理kingbase数据库服务端 生产环…...

没有字幕的高清爆款视频素材去哪里找?无字幕无水印素材网站分享

在寻找无水印高清视频素材的道路上感到困惑&#xff1f;欢迎来到今天的分享&#xff0c;我将为您介绍一些海外优质的素材网站&#xff0c;以及国内极具特色的“蛙学府”。不论您是短视频制作的新手还是老手&#xff0c;这些网站都将为您的创意注入新活力。 蛙学府网 蛙学府网不…...

Java23种设计模式(一)

前言 这2个月来&#xff0c;重新出发&#xff0c;从java开发需要的数据库、查询日志工具、开发工具等的安装、环境配置&#xff0c;再到后面的基础学习、数据库学习、扩展学习&#xff08;maven、mq、设计模式、spring 系列等等&#xff09;&#xff0c;边学边记录&#xff0c…...

KISTLER 1631C3 连接电缆

KISTLER 1631C3&#xff08;奇石乐&#xff09;是压电式传感器专用高绝缘单芯同轴连接电缆&#xff0c;3 米&#xff0c;绿色 PFA 材质&#xff0c;KIAG 10-32 公转 BNC 公。一、型号含义1631C&#xff1a;系列&#xff08;高绝缘、低噪声、单芯同轴&#xff09;3&#xff1a;长…...

iText7中文渲染完全指南:从乱码到完美显示的技术突破

iText7中文渲染完全指南&#xff1a;从乱码到完美显示的技术突破 【免费下载链接】itext7-chinese-font 项目地址: https://gitcode.com/gh_mirrors/it/itext7-chinese-font 在数字化文档处理领域&#xff0c;PDF格式以其跨平台一致性成为信息传递的首选。然而&#xf…...

别再手动填Token了!用Knife4j的OAuth2配置,一键搞定接口文档自动化认证

告别手动Token时代&#xff1a;Knife4j与OAuth2的自动化认证实战 每次调试API都要复制粘贴Token的日子该结束了。作为后端开发者&#xff0c;我们花了大量时间在接口文档和认证流程之间来回切换——这不仅是效率问题&#xff0c;更是一种思维中断。想象一下&#xff0c;当你的微…...

中国跨境电商大会代理授权机制与决策影响分析

对于众多寻求通过“中国跨境电商大会”精准撬动海外市场的企业而言&#xff0c;面对琳琅满目的代理商选择&#xff0c;决策过程本身就是一次关于市场洞察、风险评估与资源匹配的深度考验。一个优质的代理商&#xff0c;不仅是展位的“售票员”&#xff0c;更是企业出海战略的“…...

3分钟打造macOS级桌面体验:开源光标主题全攻略

3分钟打造macOS级桌面体验&#xff1a;开源光标主题全攻略 【免费下载链接】apple_cursor Free & Open source macOS Cursors. 项目地址: https://gitcode.com/gh_mirrors/ap/apple_cursor 你知道吗&#xff1f;每天在电脑前工作8小时&#xff0c;你的鼠标指针会出现…...

OpenRocket:从设计到飞行的全链路火箭仿真实战指南

OpenRocket&#xff1a;从设计到飞行的全链路火箭仿真实战指南 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket 火箭爱好者与工程师的终极工具&#xff1a;…...

Pixel Mind Decoder 多模型协作:与Ollama本地模型联合作业

Pixel Mind Decoder 多模型协作&#xff1a;与Ollama本地模型联合作业 1. 引言&#xff1a;当AI模型开始团队合作 想象一下这样的场景&#xff1a;你手头有一份长达50页的市场调研报告&#xff0c;需要快速提炼核心观点并分析其中的情绪倾向。传统做法可能需要先人工阅读总结…...

如何快速下载Google Drive受保护PDF:终极免费解决方案指南

如何快速下载Google Drive受保护PDF&#xff1a;终极免费解决方案指南 【免费下载链接】Google-Drive-PDF-Downloader 项目地址: https://gitcode.com/gh_mirrors/go/Google-Drive-PDF-Downloader 你是否经常遇到Google Drive中那些"仅查看"权限的PDF文件&am…...

Llama-3.2V-11B-cot在智能教育中的应用:数学题配图逻辑漏洞识别实战

Llama-3.2V-11B-cot在智能教育中的应用&#xff1a;数学题配图逻辑漏洞识别实战 1. 引言&#xff1a;当AI遇见数学教育 数学教材和习题集中的配图错误是一个长期困扰教育行业的难题。据统计&#xff0c;约15%的数学教材配图存在不同程度的逻辑漏洞或表达偏差&#xff0c;这些…...

从Siwave导入模型到Q3D仿真,如何避免‘幽灵’solder导致的网络报错?

从Siwave到Q3D的模型迁移&#xff1a;彻底解决"幽灵焊料"引发的网络冲突 当你在Ansys电子设计自动化工具链中切换工作环境时&#xff0c;是否遇到过这样的困扰&#xff1a;从Siwave精心准备的模型导入Q3D后&#xff0c;突然冒出各种莫名其妙的网络重叠报错&#xff…...