点亮LED灯例程讲解

若要观看该博客配套的视频教程,可点击此链接 开发板实物图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0d224ef9763a460aac8abb41bbc2cd58.png#pic_center)

图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤。比如非常简单的项目,我们可以省去虚线框里面的步骤,但是我们的入门级课程,即使再简单,也按照这12个步骤来进行讲解。

1.需求解读

1.1 需求

实现点亮一个LED灯(D8)。

1.2 知识背景

LED灯简介
LED,又名发光二极管。 LED灯工作电流很小(有的仅零点几毫安即可发光) , 抗 冲击和抗震性能好,可靠性高,寿命长。由于这些优点, LED灯被广泛用在仪器仪表 中作指示灯、 液晶屏背光源等诸多领域。不同材料的发光二极管可以发出红、 橙、 黄、 绿、 青、蓝、 紫、白这八种颜色的光。 如下图所示:

图2.插件LED灯 这种二极管长的一端是阳极,短的那端是阴极。 开发板上板载的是贴片LED灯,实物 如下图所示:

图3.贴片LED灯 贴片发光二极管的正面一般都有颜色标记,有标记的那端就是阴极。发光二极管与普通二极管一样具有单向导电性。 给它加上阳极正向电压后,通过 5mA左右的电流就可以使二极管发光。 通过二极管的电流越大, 发出的光亮度越强。 不过我们一般将电流限定在3~20mA之间,否则电流过大就会烧坏二极管。

1.3 硬件设计


图4.LED灯原理图及PCB 发光二极管的原理图如上图所示, LED0到LED7这8个发光二极管的阳 极都连到3.3V上, 阴极分别与FPGA相应的管脚相连。原理图中LED与地 之间的电阻起到限流作用。通过原理图我们可以看出,LED0与FPGA的管脚 G16相连。在PCB图或实物上我们都标注出了管脚号,所以在绑管脚的时候 可以不用看原理图,直接看板上的丝印就可以,如上图PCB图所示。我们只 点亮一个LED灯(LED0),那我们只用关心LED0的管脚号(G16)。当管脚G16 输出低电平时,LED灯便有电流流过,驱动LED灯发光,如果G16输出高电 平,LED灯没有电流流过,LED不发光。

1.4 接口说明

信号名 方向 FPGA管脚号 说明
LED0 输出 G16 与LED灯相连,低电平LED灯亮

    总结:通过上述说明,可以将需求解读成,只要将FPGA的L12管脚置为低 电平,即可以点亮D2这个LED灯。

2. 绘制理论波形图

图5. 逻辑框图

图6 理论波形

3.新建QuartusII 工程

为了让工程看起来整洁,同时方便工程移植。我们新建4个文件夹,分别是Project,Source,Sim,Doc。
Project — 工程文件夹,里面放的QuartusII工程
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仿真一般有两种方法:

  1. 图形化界面仿真,即所有的操作都是在Modelsim软件界面上来完成,该方式的优点是,简单易学,适用于简单的项目,缺点是操作步骤繁琐。

  2. 批处理仿真,这种方式在仿真前需要编写相应的脚本文件,该方式的优点是,一键即可完成仿真,省时省力,缺点是前期需要编写脚本文件。为了让大家所学的能够很快的应用到工程实践,仅仅第一个实验和第二个实验,采用图形化界面仿真,后面的实验均采用批处理方式仿真。

    图形化界面仿真步骤:
    1.新建工程,file–>new–>Project

    2.填写工程名以及指定仿真工程存放路径

3.添加文件,源文件和仿真激励文件
4.编译
5.开始仿真

6.添加观测信号

7.中断仿真

8.输入运行命令,run+仿真时间

到此,我们就可以在波形窗口观察到仿真信号的电平状态。
当我们改变了源码,又需要从第4步开始操作一次。
仿真出的波形如下图所示:

7.对比波形图

将第二步绘制的理论波形图与第六步Modelsim仿真出来的波形图进行对比,结果一致,说明我们的逻辑设计是正确的。如果发现比对结果不一致,就需要找到不一致的原因,最终要保证对比结果一致。
通过对比,理论波形与仿真波形一致,说明功能符合设计要求。

8.编译综合

9.绑定管脚

当工程编译成功后,即可进行管脚分配(需要参考开发板的原理图)。我们店铺的开发板和模块在PCB板上均标注了信号名,在绑定管脚时也可以直接参照实物的连接关系。

管脚映射关系如下所示:

10.再次编译综合

11 下载SOF文件

再次编译综合成功后便可以将生成的SOF文件下载到开发板


下载成功后,便可以观察到开发板上的实验现象,如果实验现象与设计需求相符,那说明我们的设计是没有问题的,即可进行下一步固化JIC文件操作

12 生成并固化JIC文件

FPGA有一个特性,就是掉电后配置信息会丢失,所以我们需要将配置信息存储在配置芯片(FLASH)中,待开发板上电后,FPGA便会读取配置芯片中的配置信息,这样开发板掉电再上电后同样可正常工作。要将程序固化到配置芯片,需要先生成JIC文件。SOF文件转换成JIC文件步骤如下:

12.1 file–>Convert Programming File…

12.2 选择JIC文件以及配置芯片的型号,FPGA的型号

标号1:选择生成文件的格式,我们选择JIC文件
标号2:选择配置芯片的型号,我们选择EPCS16
标号3:修改生成JIC文件的名字以及存放路径
标号4:鼠标左键点击Flash Loader
标号5:选择FPGA的型号,我们开发板用的是EP4CE6F17C8这款FPGA,所以我们也应该选这个型号,如下图所示:

12.3 选择SOF文件


标号1:鼠标左键点击SOF Data
标号2:添加SOF文件,选中我们工程生成的SOF文件,如下图:

12.3 生成JIC文件


到此,JIC文件生成好,可以进行固化操作了。

12.4 固化JIC文件


固化好以后,掉电程序也不会丢失了!

实验现象

与FPGA管脚G16相连的LED灯被点亮,符合设计要求,设计完成!

【小月电子】ALTERA FPGA开发板系统学习教程-LESSON1点亮LED灯相关推荐

  1. 【小月电子】安路国产FPGA开发板系统学习教程-LESSON1点亮LED灯

    点亮LED灯例程讲解 若要观看该博客配套的视频教程,可点击此链接 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤.比如非常简单的项目,我们 ...

  2. 【小月电子】XILINX FPGA开发板(XLOGIC_V1)系统学习教程-LESSON1点亮LED灯

    点亮LED灯例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去 ...

  3. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON12 IPCORE核之FIFO详细教程

    ALTERA FPGA IPCORE核之FIFO详细教程 若要观看该博客配套的视频教程,可点击此链接 一. FIFO简介 FIFO: 是英文first in first out的缩写,即先进先出,指的 ...

  4. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON3 LED流水灯

    LED流水灯例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去 ...

  5. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON4数码管静态显示

    数码管静态显示例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省 ...

  6. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON7串口通信

    串口通信例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中 ...

  7. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON10无源蜂鸣器驱动

    无源蜂鸣器驱动实验例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤.比如 ...

  8. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON11 IPCORE之PLL详细教程

    前言 本章我们将详细讲解仿真IPCORE的操作步骤,在仿真IPCORE之前需要做一些准备工作(参照博客<Modelsim编译Altera器件库操作流程–>点击此处>). 若要观看该博 ...

  9. 【小月电子】安路国产FPGA开发板系统学习教程-LESSON2 LED灯闪烁

    LED灯闪烁例程讲解 若要观看该博客配套的视频教程,可点击此链接 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤.比如非常简单的项目,我们 ...

  10. 【小月电子】安路国产FPGA开发板系统学习教程-LESSON10无源蜂鸣器驱动

    无源蜂鸣器驱动实验例程讲解 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中一些步骤.比如非常简单的项目,我们可以省去虚线框里面的步骤,但是我们的入 ...

最新文章

  1. Silverlight Tools Beta 2 For Vs2008 中文版装不上的原因
  2. Direct3D 开发之旅 3D 游戏基本概念的介绍2
  3. MyBatis 源码解读-获得Mapper 对象
  4. HttpURLConnection与 HttpClient 区别/性能测试对比
  5. 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码
  6. 面试官系统精讲Java源码及大厂真题 - 20 SynchronousQueue 源码解析
  7. python selenium 处理弹窗_Python+Selenium处理Windows弹窗(非IE弹窗问题)
  8. Takeown 实现解析
  9. 跨域通信——多窗口通信
  10. python 自动执行 apdl_在高效的mann中从Python运行ANSYS Mechanical APDL
  11. CSS 世界 阅读笔记:(Ch1-Ch3)
  12. 智能合约安全陷阱和开发建议
  13. Oracle (04)日期类型.约束
  14. 关于Olly Dbg的使用报告
  15. 虚拟机安装Windows7系统(亲测超详细)
  16. 使用小程序云开发添加背景音乐
  17. 陈宏申:浅谈京东电商商品文案挖掘难点与优化实践
  18. 电脑图片去水印方法-电脑图片上面的水印怎么去除
  19. hbase java api样例(版本1.3.1,新API)
  20. GMSK调制解调(二)

热门文章

  1. FFmpeg拼接文件时报错channel element 1.0 is not allocated的分析思路和解决方法
  2. 保研面试-中英文问题及回答总结
  3. 什么是“海恩法则”?
  4. Python多线程实现 as_completed先返回的任务先处理 在 阿里云 函数式计算 优化的应用
  5. 关于阿里云服务器的问题及答案(详细汇总)
  6. 云渲染农场优缺点分别是什么?六点详解!
  7. 圣笛数控联手国促会数外委打造OID物联新高地
  8. Origin如何绘出带有时间轴的趋势图
  9. 国际服登陆显示服务器维护中,国际服显示服务器在维护中怎么办 教你一招解决服务器维护中什么意思...
  10. tibco rv java实例_Tibco RV - fault tolerance