文章目录

  • 前言
  • 一、FPGA的设计流程
  • 二、按键控制发光二极管的亮灭的过程
    • (一)创建工程
    • (二)绘制原理图
    • (三)编译
    • (四)分配引脚
    • (五)仿真与时序分析
    • (六)配置FPGA
    • (七)下载结果
  • 总结

前言

本文章是通过按键 KEY0 控制发光二极管 LEDG0 的亮灭,它们之间是反相的关系。并由开关 SW0 来允许和禁止这个控制功能。


一、FPGA的设计流程

  • 设计输入
  • 综合
  • 功能仿真
  • 布局布线(Fitting)
  • 时序(Timing)分析、时序仿真
  • 编程和配置

二、按键控制发光二极管的亮灭的过程

(一)创建工程

启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。

(二)绘制原理图

  1. 分析控制的原理
    当 SW处于上位(1)时,按下和松开 KEY可分别控制 LED亮和灭;当 SW处于下位(0)时,LED始终亮不受 KEY的控制。
  2. 绘制过程实现
    首先选择File->New,进入后选择Block Diagram/Schematic File

    选择元件

    添加输入输出,完成效果

(三)编译

将上面绘制的原理图文件保存,并开始编译。
选择菜单项 Processing→Start Compilation或者代表编译的图标

可以通过rtl View查看电路图

(四)分配引脚

查看芯片手册,得到对应的引脚

分配完成后,重新编译一次

(五)仿真与时序分析

创建一个向量波形文件,选择菜单项 File→New->VWF

添加信号

设置仿真时长,选择菜单项 Edit→End Time,这里我们设置仿真时长为1微秒
设置输入信号的值

保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier

功能仿真结果

通过波形可以看出满足设计要求,当sw为1时,led才受key的控制。
编译进行时序仿真,仿真结果

结果存在时延,跟实际更加相符。

(六)配置FPGA

  1. 模式配置
    SW19(RUN/PROG)开关用来选择这两种配置模式中的一种,RUN 位置为JTAG 模式,PROG 位置则为 AS 模式。 我们这里使用 JTAG 模式, 请先确认 DE2 板上的 SW19 (RUN/PROG) 开关位于 RUN 位置。
  2. 连接设备
    使用 USB 线,一端连接到开发板的 J9(BLASTER)口,另一端连接到计算机的 USB 口,开发板加电。
  3. 配置下载
    编程器界面显示了当前检测到的编程线缆,应可以检测到USB-Blaster。如果未显示,请点击 Hardware Setup 按钮查看并检查线是否插好,存在就添加就可以了

    点击Start,就开始下载,出现100%,就下载完成了

(七)下载结果


总结

整个过程,还比较简单,采用输入原理图的方式,但是当元件很多的时候,继续采用这种方式,就会很麻烦。整个过程也可采用Verilog编程的方式,主要不同的步骤就是将输入原理图的地方更改为代码输入。

FPGA——输入原理图实现按键控制发光二极管的亮灭相关推荐

  1. STM32F072 Nucleo笔记2-利用STM32CuBeMX创建工程并用按键控制LED的亮灭

    STM32F072 Nucleo学习笔记2-利用STM32CuBeMX创建工程并用按键控制LED的亮灭 本文例子用到: 1.  STM32F072 Nucleo开发板 2.  STM32CubeMX软 ...

  2. verilog 按键控制LED的亮灭状态

    主要功能:按下按键0,从左到右点亮led;按下按键1,从右到左点亮led;按下按键2时,四个led间隔亮灭:按下按键3时,点亮全部led.亮灭间隔时间为0.5s,时钟为50MHz. //author ...

  3. 用51单片机实现按键控制LED灯亮灭

    用51单片机实现按键控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void de ...

  4. Proteus:单片机用按键控制LED的亮灭

    题目概述: 单片机用按键控制LED的亮灭. 编程: #include <reg51.h> sbit beep=P1^5; sbit LED=P0^0; sbit k1=P1^0; void ...

  5. 3.按键控制LED灯亮灭

    实验现象:本实验通过一个按键来控制一个发光二极管的亮灭.按键按一下LED点亮.再按一下LED熄灭. 理论学习: 该实验主要难点: 如何扫描按键的状态? 如何防抖动?  原理讲解: 按键检测原理:通过把 ...

  6. ZYNQ学习笔记(五)---按键控制LED灯亮灭实验

    这个实验其实很早就做了,但是由于这段时间自己一直在忙一些其他的事所以没有及时更新.今天抽出个空来更新一下.本次实验是关于按键控制LED亮灭.其中涉及到的内容有计数器.按键消抖以及一些简单的逻辑. 1. ...

  7. 【tiny4412】按键控制led灯亮灭

    前言:使用友善之臂tiny4412进行嵌入式学习,对于初学者而言并不是一件轻松事情,即使该平台已经存在很多年,网上也有很多分享,但由于官方文档相对还是不够全面,导致很多初学者遇到问题不知如何下手,如果 ...

  8. STM32按键控制LED灯亮灭(四)

    编程要点: 1)使能GPIO端口时钟: 2)初始化GPIO目标引脚为输入模式(浮空输入): 3)编写简单测试程序,检测按键的状态,实现按键控制LED灯: bsp_led.h文件 #ifndef T_L ...

  9. 按键控制led灯亮灭c语言原理,4个独立按键控制4个LED亮灭的单片机程序问题

    本帖最后由 ll13536121668 于 2017-11-2 17:32 编辑 4只独立按键控制4只LED亮和灭,按下按键,LED亮,再按下,LED灭.因为我们很多都是按完按键,松开手LED才亮. ...

最新文章

  1. 单系统站内信数据库设计思路
  2. linux 设备树调试必须知道的几个路径
  3. 大数据笔记2019.5.7
  4. redis存10万条数据_redis详细介绍
  5. mysql性能优化金字塔法则pdf_MySQL索引优化2-优化法则
  6. linux删除modules文件夹,linux – 为什么我不能删除这个dkms模块?
  7. 历时五天用 SwiftUI 做了一款 APP,阿里工程师如何做的?
  8. 直播P2P技术1-技术入门
  9. 数值分析(第五版) 第九章知识点总结
  10. 第三百九十一节,Django+Xadmin打造上线标准的在线教育平台—404,403,500页面配置...
  11. [HDOJ1823] Luck and Love(线段树,树套树)
  12. mac mysql57 配置文件_Mac 的mysql5.7没有配置文件,如何解决only_full_group_by 问题
  13. 【渝粤题库】陕西师范大学210009幼儿园健康教育作业(高起专)
  14. android自定义View之曲线图
  15. 深度学习(三):初级卷积神经网络
  16. idea2020配置
  17. java map size 不准确_java1.7以前ConcurrentHashMap的size方法
  18. mysql 添加列,修改列,删除列
  19. 3DMAX 卸载工具,完美彻底卸载清除干净3dmax各种残留注册表和文件
  20. java线程倒计时_Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger...

热门文章

  1. python中0x是什么意思_弱问下,以0x开头的数值表示什么意思?
  2. 13种最为荒谬的编程语言
  3. 正则表达式-2021
  4. docker搭建zabbix服务
  5. 基于Vue3实现扫码枪扫码并生成二维码的代码解析
  6. 2022年计算机软件水平考试程序员系统集成项目管理工程师(中级)练习题及答案
  7. SWF (Simple Workflow Service)简介
  8. 学习设计到底应该学习figma、sketch还是PS
  9. eclipse修改java jdk(以1.8为例)
  10. 分组交换比起电路交换快速的原因