当前位置: 首页 > 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…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...