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

【FPGA-Spirit_V2】小精灵V2开发板初使用

🎉欢迎来到FPGA专栏~小精灵V2开发板初使用


  • ☆* o(≧▽≦)o *☆~我是小夏与酒🍹
  • 博客主页:小夏与酒的博客
  • 🎈该系列文章专栏:FPGA学习之旅
  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • 📜 欢迎大家关注! ❤️
    FPGQ2

CSDN

🎉 小精灵V2开发板初使用-实例目录

  • 一、开发板介绍
    • 🥝开发板详细介绍
    • 🥝开发板展示
  • 二、基本使用
    • 🍍LED操作
    • 🍍数码管显示
    • 🍍LCD显示
    • 🍍蜂鸣器驱动

遇见未来

一、开发板介绍

该系列文章只是作为学习记录,并无其余用途。所发文章内容是经过自己本身操作和记录整理得来。
本篇文章主要记录小精灵V2(Spirit_V2)开发板初使用过程

【小月电子】大佬博客链接:Moon_3181961725
【FPGA】Altera Cyclone IV EP4CE6入门系统板购买链接:EP4CE6

🥝开发板详细介绍

小精灵V2(Spirit_V2):

Spirit_V2:Altera Cyclone IV EP4CE6

部位对应参数
管脚数144个
I/O管脚电压3.3V
内核电压1.2V
配置芯片EPCS4
时钟源50M

外围器件:
①按键模块
②发光二极管(LED)模块
③有源蜂鸣器
④六位数码管-共阴极数码管
⑤12864/1602液晶接口
其余扩展接口
kfb

🥝开发板展示

开发板+下载器+电源线:
12

注意: 需要在断电的情况下才能插拔下载器,否则容易引起芯片损坏。

二、基本使用

🍍LED操作

LED1
LED2
LED闪烁:

module led_flash(Clk50M,Rst_n,leds
);input Clk50M;input Rst_n;output reg [7:0]leds;reg [29:0]cnt;//定时器的设定always@(posedge Clk50M or negedge Rst_n)if(!Rst_n)cnt <= 30'd0;else if(cnt == 29'd49_999_999)cnt <= 30'd0;else cnt <= cnt + 1'b1;//leds的控制always@(posedge Clk50M or negedge Rst_n)if(!Rst_n)leds <= 8'b11111110;else if(cnt == 29'd49_999_999)leds <= {leds[6:0],leds[7]};else leds <= leds;endmodule

🍍数码管显示

数码管静态显示:
SMG1
数码管静态显示:

module smg_1(smg_bit,smg_seg
);output [5:0]smg_bit;output [7:0]smg_seg;assign smg_bit = 6'b111110;assign smg_seg = 8'hb0;endmodule

数码管动态扫描:
SMG2
最简单的方式实现数码管动态扫描:

module smg_D(Clk50M,Rst_n,sm_bit,sm_seg
);input Clk50M;input Rst_n;output reg [5:0]sm_bit;output reg [7:0]sm_seg;reg [24:0]cnt;always@(posedge Clk50M or negedge Rst_n)if(!Rst_n)cnt <= 25'd0;else if(cnt == 25'd250_000)cnt <= 25'd0;elsecnt <= cnt + 1'b1;//数码管动态扫描显示部分always @(posedge Clk50M)   					begincase(cnt[15:13])					//选择扫描显示数据3'd0:begin sm_bit <= 6'b111110;	//选择第1个数码管显示sm_seg <= 8'hf9;		//显示1end3'd1:begin sm_bit <= 6'b111101;	//选择第2个数码管显示sm_seg <= 8'ha4;		//显示2end 3'd2:begin sm_bit <= 6'b111011;	//选择第3个数码管显示sm_seg <= 8'hb0;		//显示3end 3'd3:begin sm_bit <= 6'b110111;	//选择第4个数码管显示sm_seg <= 8'h99;		//显示4end3'd4:begin sm_bit <= 6'b101111;	//选择第5个数码管显示sm_seg <= 8'h92;		//显示5end 3'd5:begin sm_bit <= 6'b011111;	//选择第6个数码管显示sm_seg <= 8'h82;		//显示6enddefault:sm_bit <= 6'b111111;	//不显示endcase	endendmodule

🍍LCD显示

LCD
LCD显示模块例程:

///
//QQ:3181961725
//TEL:13540738439
//作者:Mr Wang
//模块介绍:LCD1602显示驱动
///
module LCD ( input 					clk		,//系统时钟输入50Minput						rst_n	,//复位,低电平有效output 	reg	[7:0] dat		,//LCD的8位数据口output  	reg			rs		,//数据命令选择信号,高电平表示数据,低电平表示命令output					rw		,//读写标志,高电平表示读,低电平表示写,该程序我们只对液晶屏进行写操作output					en		//LCD的控制脚);reg	[15:0]	counter	; reg 	[ 5:0] 	current	; reg 				clkr	; reg				e		;//定义了LCD状态机需要的状态。parameter  set0 =6'd0; parameter  set1 =6'd1; parameter  set2 =6'd2; parameter  set3 =6'd3; parameter  set4 =6'd4;   parameter  dat0 =6'd5; parameter  dat1 =6'd6; parameter  dat2 =6'd7; parameter  dat3 =6'd8; parameter  dat4 =6'd9; parameter  dat5 =6'd10;parameter  dat6 =6'd11; parameter  dat7 =6'd12; parameter  dat8 =6'd13; parameter  dat9 =6'd14;parameter  dat10=6'd15; parameter  dat11=6'd16;parameter	dat12=6'd17;  parameter	dat13=6'd18; parameter	dat14=6'd19; parameter	dat15=6'd20; parameter  fini=6'hF1; always @(posedge clk or negedge rst_n)         //da de data_w1 zhong pinlv begin if(!rst_n)begincounter<=0;clkr<=0;endelsebegincounter<=counter+1; if(counter==16'h000f)  clkr=~clkr; else;endend always @(posedge clkr or negedge rst_n) begin if(!rst_n)begincurrent<=set0;dat<=0;rs<=0;e<=1;endelsebegincase(current) set0:   begin  e<=0;rs<=0; dat<=8'h38; 	current<=set1; 		end //*设置8位格式,2行,5*7*set1:   begin  e<=0;rs<=0; dat<=8'h0C; 	current<=set2; 		end //*整体显示,关光标,不闪烁*/  set2:   begin  e<=0;rs<=0; dat<=8'h06; 	current<=set3; 		end //*设定输入方式,增量不移位*/  set3:   begin  e<=0;rs<=0; dat<=8'h01; 	current<=set4; 		end //*清除显示*/   set4:   begin  e<=0;rs<=0; dat<=8'h00; 	current<=dat0; 		end //设置显示第一行dat0:   begin  e<=0;rs<=1; dat<="H"; 	current<=dat1; 		end    dat1:   begin  e<=0;rs<=1; dat<="E"; 	current<=dat2; 		end dat2:   begin  e<=0;rs<=1; dat<="L"; 	current<=dat3; 		end dat3:   begin  e<=0;rs<=1; dat<="L";	current<=dat4; 		end dat4:   begin  e<=0;rs<=1; dat<="O"; 	current<=dat5; 		end dat5:   begin  e<=0;rs<=1; dat<=" "; 	current<=dat6; 		end dat6:   begin  e<=0;rs<=1; dat<="F"; 	current<=dat7; 		end dat7:   begin  e<=0;rs<=1; dat<="P";	current<=dat8; 		end dat8:   begin  e<=0;rs<=1; dat<="G"; 	current<=dat9; 		end dat9:   begin  e<=0;rs<=1; dat<="A";	current<=dat10 ; 	end dat10:  begin  e<=0;rs<=1; dat<="!"; 	current<=dat11; 	end dat11:  begin  e<=0;rs<=1; dat<="1"; 	current<=dat12; 	end dat12:  begin  e<=0;rs<=1; dat<="2"; 	current<=dat13; 	end dat13:  begin  e<=0;rs<=1; dat<="3"; 	current<=dat14; 	end dat14:  begin  e<=0;rs<=1; dat<="4"; 	current<=dat15; 	end dat15:  begin  e<=0;rs<=1; dat<="5"; 	current<=fini; 		end fini:   begin  e<=1;rs<=0; dat<=8'h00;       				enddefault:   current<=set0; endcase endend assign en=clkr|e; assign rw=0; endmodule  

🍍蜂鸣器驱动

【FPGA】Spirit_V2驱动有源蜂鸣器

最简单的方式驱动板载有源蜂鸣器:

module beep ( key,beep);input key;output beep;assign beep = key?1'b1:1'b0;endmodule  

csdn

🧸结尾


  • ❤️ 感谢您的支持和鼓励! 😊🙏
  • 📜您可能感兴趣的内容:
  • 【FPGA零基础学习之旅#1】 AC620V2开发板测试
  • 【Go黑帽子】使用Golang编写一个TCP扫描器(基础篇)
  • 【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯
  • Labview机器视觉-USB摄像头识别一维码(条形码)- 学习记录
    遇见未来

相关文章:

【FPGA-Spirit_V2】小精灵V2开发板初使用

&#x1f389;欢迎来到FPGA专栏~小精灵V2开发板初使用 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家…...

STL与其空间配置器

目录什么是STLSTL的六大组件STL的缺陷什么是空间配置器为什么需要空间配置器GI-STL空间配置器实现原理一级空间配置器二级空间配置器内存池SGI-STL中二级空间配置器设计SGI-STL二级空间配置器之空间申请前期的准备申请空间填充内存块向内存池中索要空间SGI-STL二级空间配置器之…...

leetcode刷题之回文链表

目录 做题思路 代码实现 1.找到链表的中间节点 2.反转中间节点之后的链表 3.判断倒置的后半部分的链表是否等于前半部分的链表 整体代码展示 总结&#xff1a; 这里是题目链接。 这道题目的意思是&#xff1a;判断该链表中后半部分倒置是否跟前半部分相同&#xff0c;如…...

复制带随机指针的链表最长连续递增序列数组的度写字符串需要的行数最短补全词

复制带随机指针的链表来源&#xff1a;杭哥138. 复制带随机指针的链表 - 力扣&#xff08;LeetCode&#xff09;typedef struct Node Node; Node* BuyNode(int x) {Node* newnode (Node*)malloc(sizeof(Node));newnode->valx;newnode->nextNULL;newnode->randomNULL;…...

「ML 实践篇」回归系统:房价中位数预测

文章目录1. 项目分析1. 框架问题2. 性能指标2. 获取数据1. 准备工作区2. 下载数据3. 查看数据4. 创建测试集3. 数据探索1. 地理位置可视化2. 寻找相关性3. 组合属性4. 数据准备1. 数据清理2. Scikit-Learn 的设计3. 处理文本、分类属性4. 自定义转换器5. 特征缩放6. 流水线5. 选…...

深度学习 Day27——利用Pytorch实现运动鞋识别

深度学习 Day27——利用Pytorch实现运动鞋识别 文章目录深度学习 Day27——利用Pytorch实现运动鞋识别一、查看colab机器配置二、前期准备1、导入依赖项并设置GPU2、导入数据三、构建CNN网络四、训练模型1、编写训练函数2、编写测试函数3、设置动态学习率4、正式训练五、结果可…...

Springboot 整合dom4j 解析xml 字符串 转JSONObject

前言 本文只介绍使用 dom4j 以及fastjson的 方式&#xff0c; 因为平日使用比较多。老的那个json也能转&#xff0c;而且还封装好了XML&#xff0c;但是本文不做介绍。 正文 ①加入 pom 依赖 <dependency><groupId>dom4j</groupId><artifactId>dom4j…...

网络安全实验——安全通信软件safechat的设计

网络安全实验——安全通信软件safechat的设计 仅供参考&#xff0c;请勿直接抄袭&#xff0c;抄袭者后果自负。 仓库地址&#xff1a; 后端地址&#xff1a;https://github.com/yijunquan-afk/safechat-server 前端地址&#xff1a; https://github.com/yijunquan-afk/safec…...

【MySQL】MySQL的事务

目录 概念 什么是事务? 理解事务 事务操作 事务的特性 事务的隔离级别 事务的隔离级别-操作 概念 数据库存储引擎是数据库底层软件组织&#xff0c;数据库管理系统&#xff08;DBMS&#xff09;使用数据引擎进行创建、查 询、更新和删除数据。 不同的存储引擎提供…...

Java分布式事务(七)

文章目录&#x1f525;Seata提供XA模式实现分布式事务_业务说明&#x1f525;Seata提供XA模式实现分布式事务_下载启动Seata服务&#x1f525;Seata提供XA模式实现分布式事务_转账功能实现上&#x1f525;Seata提供XA模式实现分布式事务_转账功能实现下&#x1f525;Seata提供X…...

二十八、实战演练之定义用户类模型、迁移用户模型类

1. Django默认用户模型类 &#xff08;1&#xff09;Django认证系统中提供了用户模型类User保存用户的数据。 User对象是认证系统的核心。 &#xff08;2&#xff09;Django认证系统用户模型类位置 django.contrib.auth.models.User&#xff08;3&#xff09;父类AbstractUs…...

Java Virtual Machine的结构 3

1 Run-Time Data Areas 1.1 The pc Register 1.2 Java Virtual Machine Stacks 1.3 Heap 1.4 Method Area JVM方法区是在JVM所有线程中共享的内存区域&#xff0c;在编程语言中方法区是用于存储编译的代码、在操作系统进程中方法区是用于存储文本段&#xff0c;在JVM中方法…...

linux ubuntu22 安装neo4j

环境&#xff1a;neo4j 5 ubuntu22 openjdk-17 neo4j 5 对 jre 版本要求是 17 及以上&#xff0c;且最好是 openjdk&#xff0c;使用比较新的 ubuntu 系统安装比较好&#xff0c; centos7 因为没有维护&#xff0c;yum 找不到 openjdk-17了。 官方的 debian 系列安装教程&a…...

模型实战(7)之YOLOv8推理+训练自己的数据集详解

YOLOv8推理+训练自己的数据集详解 最近刚出的yolov8模型确实很赞啊,亲测同样的数据集用v5和v8两个模型训练+预测,结果显示v8在检测精度和准确度上明显强于v5。下边给出yolov8的效果对比图: 关于v8的结构原理在此不做赘述,随便搜一下到处都是。1.环境搭建 进入github进行git…...

火车进出栈问题 题解

来源 卡特兰数 个人评价&#xff08;一句话描述对这个题的情感&#xff09; …~%?..,# *☆&℃$︿★? 1 题面 一列火车n节车厢&#xff0c;依次编号为1,2,3,…,n。每节车厢有两种运动方式&#xff0c;进栈与出栈&#xff0c;问n节车厢出栈的可能排列方式有多少种。 输入…...

Unity学习日记12(导航走路相关、动作完成度返回参数)

目录 动作的曲线与函数 创建遮罩 导航走路 设置导航网格权重 动作的曲线与函数 执行动作&#xff0c;根据动作完成度返回参数。 函数&#xff0c;在代码内执行同名函数即可调用。在执行关键帧时调用。 创建遮罩 绿色为可效用位置 将其运用到Animator上的遮罩&#xff0c;可…...

基于bearpi的智能小车--Qt上位机设计

基于bearpi的智能小车--Qt上位机设计 前言一、界面原型1.主界面2.网络配置子窗口模块二、设计步骤1.界面原型设计2.控件添加信号槽3.源码解析3.1.网络链接核心代码3.2.网络设置子界面3.3.小车控制核心代码总结前言 最近入手了两块小熊派开发板,借智能小车案例,进行鸿蒙设备学…...

汇编语言与微机原理(1)基础知识

前言&#xff08;1&#xff09;本人使用的是王爽老师的汇编语言第四版和学校发的微机原理教材配合学习。&#xff08;2&#xff09;推荐视频教程通俗易懂的汇编语言&#xff08;王爽老师的书&#xff09;&#xff1b;贺老师C站账号网址&#xff1b;&#xff08;3&#xff09;文…...

ASEMI代理瑞萨TW8825-LA1-CR汽车芯片

编辑-Z TW8825-LA1-CR在单个封装中集成了创建多用途车载LCD显示系统所需的许多功能。它集成了高质量的2D梳状NTSC/PAL/SECAM视频解码器、三重高速RGB ADC、高质量缩放器、多功能OSD和高性能MCU。TW8825-LA1-CR其图像视频处理能力包括任意缩放、全景缩放、图像镜像、图像调整和…...

什么是 .com 域名?含义和用途又是什么?

随着网络的发展&#xff0c;网络上出现了各种不同后缀的域名&#xff0c;这些域名的后缀各有不同的含义&#xff0c;也有不同的用途。今天&#xff0c;我们就一起来探讨一下 .com 后缀的域名知识。 .com 域名是一种最常见的顶级域名&#xff0c;它是由美国国家网络信息中心&…...

VueX快速入门(适合后端,无脑入门!!!)

文章目录前言State和Mutations基础简化gettersMutationsActions&#xff08;异步&#xff09;Module总结前言 作为一个没啥前端基础&#xff08;就是那种跳过js直接学vue的那种。。。&#xff09;的后端选手。按照自己的思路总结了一下对VueX的理解。大佬勿喷qAq。 首先我们需要…...

前列腺癌论文笔记

名词解释 MRF: 磁共振指纹打印技术( MR Fingerprinting)是近几年发展起来的最新磁共振技术&#xff0c;以一种全新的方法对数据进行采集、后处理和实现可视化。 MRF使用一种伪随机采集方法&#xff0c;取代了过去为获得个体感兴趣的参数特征而使用重复系列数据的采集方法&…...

Python+Yolov5道路障碍物识别

PythonYolov5道路障碍物识别如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<PythonYolov5道路障碍物识别>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与…...

全新升级,EasyV 3D高德地图组件全新上线

当我们打开任意一个可视化搭建工具或者搜索数据可视化等关键词&#xff0c;我们会发现「地图」是可视化领域中非常重要的一种形式&#xff0c;对于许多可视化应用场景都具有非常重要的意义&#xff0c;那对于EasyV&#xff0c;地图又意味着什么呢&#xff1f;EasyV作为数字孪生…...

从管理到变革,优秀管理者的进阶之路

作为一位管理者&#xff0c;了解自身需求、企业需求和用户需求是非常重要的。然而&#xff0c;仅仅满足这些需求是不够的。我们还需要进行系统化的思考&#xff0c;以了解我们可以为他人提供什么价值&#xff0c;以及在企业中扮演什么样的角色。只有清晰的自我定位&#xff0c;…...

安装Anaconda3

安装Anaconda3 下载安装文件 可以去官网下载 https://repo.anaconda.com/archive/根据自己的操作系统选择合适的Anaconda版本 我选择的是Anaconda3-2021.05-Linux-x86_64.sh的版本 方法一&#xff1a;可以下载到本地然后在上传到虚拟机 方法二&#xff1a;在终端输入以下…...

HTTPS,SSL(对称加密和非对称加密详解)

上一篇博客&#xff08;HTTP详解_徐憨憨&#xff01;的博客-CSDN博客&#xff09;详细讲解了关于HTTP的知识&#xff0c;了解到HTTP协议下的数据传输是一种明文传输&#xff0c;既然是明文传输&#xff0c;可能导致在传输过程中出现一些被篡改的情况&#xff0c;此时就需要对所…...

【数据结构】还不懂算法复杂度?一文带你速解

前言:前面我们已经系统的学完C语言的相关知识&#xff0c;现在我们已经较为熟练的掌握了C语言中的各中代码语法和结构使用&#xff0c;能够使用代码来解决一些简单问题。但是对于一个程序员来说&#xff0c;仅仅会语法是远远不够的&#xff0c;从今天开始&#xff0c;我们将进入…...

案例描述:update中,MySQL inner join 和 left join的区别,小结果集驱动大结果集

场景描述 以一个场景为例&#xff1a; 单据A&#xff1a;下游子表 &#xff08;数据量级小&#xff09; 单据B&#xff1a;下游主表&#xff08;数据量级小&#xff09; 单据C&#xff1a;中游子表&#xff08;数据量级小&#xff09; 单据D&#xff1a;中游主表&#xff08;…...

CF1784D Wooden Spoon

CF1784D Wooden Spoon 题目大意 有2n2^n2n个人&#xff0c;进行nnn轮比赛。比赛的图是一棵完全二叉树。编号小的人一定能赢编号大的人&#xff0c;如果一个人满足&#xff1a; 第一次比赛被打败打败这个人的人在第二次比赛中被打败打败上一个人的人在第三次比赛中被打败…\d…...

中国建设监理官方网站/分析网站推广和优化的原因

12月05日&#xff0c;钛博士机器人侦测到 15 起发生在科技和互联网行业的投融资或并购事件&#xff0c;其中 12 起发生在中国境内&#xff0c;3 起发生在海外&#xff0c;总计交易额超过8.23亿人民币。 中国境内今天科技行业投融资总额约6.47亿人民币&#xff0c;单笔最大交易事…...

崇州市微信端网站建/怎样下载优化大师

excel如何读取B列的数据类型和b列里的数据sum(b:b,"工具",a:a)EXCEL如何将表格的数据类型分类提取出来(提取筛选的数据类型)把C列的数据复制&#xff0c;到右边找一列空的列&#xff0c;粘贴进去。然后选中右边粘贴过来的这列、点顶部的&#xff1a;数据---删除重复项…...

吉林省建设工程造价网站/推广方案如何写

前驱节点&#xff08;predecessor&#xff09; 前驱节点&#xff1a;中序遍历时的前一个节点。如果是二叉搜索树&#xff0c;前驱节点就是前一个比它小的节点。 node.left ! null 举例&#xff1a;6、13、8predecessor node.left.right.right.right...&#xff0c;终止条件&a…...

ai怎么做网站用海报/服装网络营销策划书

题目描述 在一个33的网格中&#xff0c;1~8这8个数字和一个“X”恰好不重不漏地分布在这33的网格中。 在游戏过程中&#xff0c;可以把“X”与其上、下、左、右四个方向之一的数字交换&#xff08;如果存在&#xff09;。 我们的目的是通过交换&#xff0c;使得网格变…...

网页制作的方法/整站优化seo平台

可以通过下面的指令查询&#xff1a; deno info...

企业网站托管服务常用指南/百度关键词点击排名

您好,我是独立顾问(Independent Advisor)Dexter,请让我来帮助您.WSL和Windows主系统之间的文件系统是可以互相访问的。如果在WSL中访问Windows系统的文件&#xff0c;可在根目录下/mnt/看到对应Windows盘符字母的文件夹&#xff0c;通过这些文件夹即可访问Windows的文件系统。如…...