【小月电子】XILINX FPGA开发板(XLOGIC_V1)系统学习教程-LESSON1点亮LED灯
点亮LED灯例程讲解
若要观看该博客配套的视频教程,可点击此链接
开发板实物图
图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤。比如非常简单的项目,我们可以省去虚线框里面的步骤,但是我们的入门级课程,即使再简单,也按照这12个步骤来进行讲解。
1.需求解读
1.1 需求
实现点亮一个LED灯(D2)。
1.2 知识背景
LED灯简介
LED,又名发光二极管。 LED灯工作电流很小(有的仅零点几毫安即可发光) , 抗 冲击和抗震性能好,可靠性高,寿命长。由于这些优点, LED灯被广泛用在仪器仪表 中作指示灯、 液晶屏背光源等诸多领域。不同材料的发光二极管可以发出红、 橙、 黄、 绿、 青、蓝、 紫、白这八种颜色的光。 如下图所示:
图2.插件LED灯 这种二极管长的一端是阳极,短的那端是阴极。 开发板上板载的是贴片LED灯,实物 如下图所示:
图3.贴片LED灯 贴片发光二极管的正面一般都有颜色标记,有标记的那端就是阴极。发光二极管与普通二极管一样具有单向导电性。 给它加上阳极正向电压后,通过 5mA左右的电流就可以使二极管发光。 通过二极管的电流越大, 发出的光亮度越强。 不过我们一般将电流限定在3~20mA之间,否则电流过大就会烧坏二极管。
1.3 硬件设计
图4.LED灯原理图及PCB 发光二极管的原理图如上图所示, LED1到LED8这8个发光二极管的阳 极都连到3.3V上, 阴极分别与FPGA相应的管脚相连。原理图中LED与地 之间的电阻起到限流作用。通过原理图我们可以看出,LED1与FPGA的管脚 L12相连。在PCB图或实物上我们都标注出了管脚号,所以在绑管脚的时候 可以不用看原理图,直接看板上的丝印就可以,如上图PCB图所示。我们只 点亮一个LED灯(LED1),那我们只用关心LED1的管脚号(L12)。当管脚L12 输出低电平时,LED灯便有电流流过,驱动LED灯发光,如果L12输出高电 平,LED灯没有电流流过,LED不发光。
1.4 接口说明
信号名 | 方向 | FPGA管脚号 | 说明 |
---|---|---|---|
LED0 | 输出 | L12 | 与LED灯相连,低电平LED灯亮 |
总结:通过上述说明,可以将需求解读成,只要将FPGA的L12管脚置为低 电平,即可以点亮D2这个LED灯。
2. 绘制理论波形图
图5. 逻辑框图
图6 理论波形
3.新建ISE工程
为了让工程看起来整洁,同时方便工程移植。我们新建4个文件夹,分别是Project,Source,Sim,Doc。
Project — 工程文件夹,里面放的ISE工程
Source — 源代码文件夹,里面放的工程源码(.v文件或.vhd文件)
Sim — 仿真文件夹,里面放的仿真相关的文件
Doc — 存放相关资料,比如数据手册,需求文档等
4.编写代码
///
//QQ:3181961725
//TEL:13540738439
//作者:Mr Wang
//模块介绍:点亮LED灯
///
module led_on(output led );assign led=1'b0;
endmodule
5.编写仿真测试激励文件
`timescale 1ns/1ps
module led_on_tb;wire led;//例化被仿真模块led_on Uled_on(.led (led));
endmodule
图7. 仿真逻辑框图
6.Modelsim仿真
这个例程非常简单,只用了一条语句,所以不需要仿真验证。但是为了给大家演示一个完整的开发流程,这个实验我们也新建一个仿真工程,从最简单的一个代码开始教大家如何编写仿真激励文件以及如何使用Modelsim软件进行仿真。将第三步编写的源码和第四步编写的仿真测试激励文件一起加入到Modelsim仿真工程中,即可进行仿真观察波形。
Modelsim仿真一般有两种方法:
图形化界面仿真,即所有的操作都是在Modelsim软件界面上来完成,该方式的优点是,简单易学,适用于简单的项目,缺点是操作步骤繁琐。
批处理仿真,这种方式在仿真前需要编写相应的脚本文件,该方式的优点是,一键即可完成仿真,省时省力,缺点是前期需要编写脚本文件。为了让大家所学的能够很快的应用到工程实践,仅仅第一个实验和第二个实验,采用图形化界面仿真,后面的实验均采用批处理方式仿真。
图形化界面仿真步骤:
1.新建工程,file–>new–>Project
2.填写工程名以及指定仿真工程存放路径
3.添加文件,源文件和仿真激励文件
4.编译
5.开始仿真
6.添加观测信号
7.中断仿真
8.输入运行命令,run+仿真时间
到此,我们就可以在波形窗口观察到仿真信号的电平状态。
当我们改变了源码,又需要从第4步开始操作一次。
仿真出的波形如下图所示:
7.对比波形图
将第二步绘制的理论波形图与第六步Modelsim仿真出来的波形图进行对比,结果一致,说明我们的逻辑设计是正确的。如果发现比对结果不一致,就需要找到不一致的原因,最终要保证对比结果一致。
通过对比,理论波形与仿真波形一致,说明功能符合设计要求。
8.绑定管脚(编写UCF文件)
NET "led" LOC = L12 | IOSTANDARD = LVCMOS33;
9.添加.v和.ucf文件
10.编译综合,同时将未使用管脚设置为悬空状态
1.设置未使用管脚为悬空状态
2.编译综合
11.下载BIT文件
编译综合成功后便可以将生成的BIT文件下载到开发板(记得插上下载器,同时开发板上电)
1.打开IMPACT
2.搜索器件
3.选择bit文件
下载成功后,便可以观察到开发板上的实验现象,如果实验现象与设计需求相符,那说明我们的设计是没有问题的,即可进行下一步生成MCS文件
12.生成MCS文件,同时固化到配置芯片中
FPGA有一个特性,就是掉电后配置信息会丢失,所以我们需要将配置信息存储在配置芯片(FLASH)中,待开发板上电后,FPGA便会读取配置芯片中的配置信息,这样开发板掉电再上电后同样可正常工作。要将程序固化到配置芯片,需要先生成MCS文件。
BIT文件转换成MCS文件步骤:
固化MCS文件
固化成功后,开发板断电再重新上电,可以观察到开发板仍然可以执行刚刚的功能。
实验现象
与FPGA管脚L12相连的LED灯被点亮,符合设计要求,设计完成!
【小月电子】XILINX FPGA开发板(XLOGIC_V1)系统学习教程-LESSON1点亮LED灯相关推荐
- 【小月电子】安路国产FPGA开发板系统学习教程-LESSON1点亮LED灯
点亮LED灯例程讲解 若要观看该博客配套的视频教程,可点击此链接 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤.比如非常简单的项目,我们 ...
- Xilinx FPGA开发板 Digilent Spartan-3E 学习资料整理
很多人抱怨Xilinx FPGA的资料很难找,Digilent的板卡资料网上怎么就没有呢!针对这些问题写了如下的BLog,希望对大家有帮助. 最近几日在整理关于Xilinx FPGA和Digilent ...
- Xilinx FPGA开发板 Digilent Spartan-3E 学习资料
一.FPGA相关资料贴 EDK实验 base in spartan-3e 适合mircoblaze初学者 MicroBlaze嵌入式软核是一个被Xilinx公司优化过的可以嵌入在FPGA中的RISC ...
- VHDL编写多功能数字钟,spartan3 FPGA开发板硬件实现-学习笔记
VHDL编写多功能数字钟,spartan3 FPGA开发板硬件实现-学习笔记 多功能数字钟硬件测试视频: https://www.bilibili.com/video/av62501230 1.数字钟 ...
- 【小月电子】XILINX FPGA开发板(XLOGIC_V1)系统学习教程-LESSON7串口通信
串口通信例程讲解 若要观看该博客配套的视频教程,可点击此链接 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤.比如非常简单的项目,我们可以 ...
- Xilinx FPGA开发板
目录 一.Nexus 4 DDR开发板 二.主要外围接口电路 (1)Nexus4 DDR Artix-7FPGA引脚分配 (2)LED灯电路 (3)拨码开关电路 (4)按键电路 (5)数码管电路 一. ...
- 嵌入式开发学习之--点亮LED灯(上)
在嵌入式学习里,点亮LED灯的地位就如同编程语言学习里的"hello world",是每个初学者都必须经历的一关,因为点亮了LED灯,至少可以说明几件事: 1.开发环境没问题,包括 ...
- Vivado将程序固化到Xilinx的FPGA开发板的flash芯片中
Vivado将程序固化到Xilinx的FPGA开发板 准备工作 开始 准备.mcs文件 在HardWare Manager界面操作 固化程序到flash中 对开发板进行操作 另外 准备工作 Vivad ...
- html抽奖源码_开源FPGA开发板OpenICE 介绍及抽奖
首先呢,先强调一遍,我做板子不是为了挣钱,因为国内目前的形式比较严峻,只是为了体验一下开源的工具和环境,也为了后人能对FPGA有个新的认识,所以不会触碰到任何人的蛋糕. 本来今天不准备发文了,还是熬夜 ...
最新文章
- android apk签名工具_关于keytool和jarsigner工具签名的使用小结
- 基于Springboot实现共享自习室管理系统
- RAID原理及其使用方法
- 设计模式的Java 8 Lambda表达式–命令设计模式
- python为什么是蟒蛇_Python 为什么推荐蛇形命名法?
- ubuntu14.04 配置jdk环境变量
- HTML5前端开发实战01-学生信息表
- 苹果iPad mini 5蜂窝数据版上架:3896元起
- python梯形公式面积_算法(一)梯形近似法求曲线面积
- 光学字符识别引擎 tesseract-ocr 简介
- 表格识别1-使用python-opencv实现表格识别
- 油溶性CdSeTe/ZnS量子点(以CdSeTe为核心,ZnS为壳层)
- pythonallowpos_利用Python抓取并分析京东商品评论数据
- 【转】未连接到互联网的解决方法(chrome)
- 退休当月要干到月底吗_到退休年龄,是当月办理退休,还是提前一个月办理?...
- 二叉树:输出根节点到叶子的路径
- gred-cam 的tensorflow实现 热力图
- 领域泛化文献综述阅读笔记
- CSS清除浮动 清除float浮动
- 虚拟机san存储服务器,VMware SAN介绍