0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA零基础学习之Vivado-LED流水灯实验

FPGA技术江湖 来源:FPGA技术江湖 2023-03-26 09:43 次阅读

大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子信息通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。

系统性的掌握技术开发以及相关要求,对个人就业以及职业发展都有着潜在的帮助,希望对大家有所帮助。本次带来Vivado系列,本篇为FPGA零基础学习之Vivado-LED流水灯实验。话不多说,上货。

Vivado-LED流水灯实验

作者:李西锐校对:陆辉

流水灯是大多数学习者接触到的第一个实验,也是非常经典的一个实验,在此,我们一起学习一下流水灯。

LED,又名发光二极管。LED灯工作电流很小(有的仅零点几毫安即可发光),抗冲击和抗震性能好,可靠性高,寿命长。由于这些优点,LED灯被广泛用在仪器仪表中作指示灯、液晶屏背光源等诸多领域。

发光二极管与普通二极管一样具有单向导电性。给它加上阳极正向电压后,通过5mA左右的电流就可以使二极管发光。通过二极管的电流越大,发出的光亮度越强。不过我们一般将电流限定在3~20mA之间,否则电流过大就会烧坏二极管。

在我们的开发板上有四个LED,设计逻辑为:FPGA 输出高电平时,LED 点亮;FPGA 输出低电平时,LED 熄灭。

83dc71b0-cb3b-11ed-bfe3-dac502259ad0.png

83edbfce-cb3b-11ed-bfe3-dac502259ad0.png

本次设计框架如上图。

管脚说明:

84002baa-cb3b-11ed-bfe3-dac502259ad0.png

设计代码如下:

84178d7c-cb3b-11ed-bfe3-dac502259ad0.png

842ae8f4-cb3b-11ed-bfe3-dac502259ad0.png

parameter 可以定义一个参数(默认是32 位)。在写代码时,对于某些数字,设计者经常利用定义参数的方式进行编写,方便修改,也方便阅读。

其中计数器,需要计数到1s所需的次数,时间到了之后,LED灯切换点亮。按照此规则,实现LED的循环点亮。

verilog 中,“{}”( 大括号)的第一个特殊作用为位拼接。{a,b}相当于将a 和b 拼接为一个整体,并且是高位为a,低位为b。当led 输出为4’b0001 时,第一个led 点亮;经过1 秒钟,输出4’b0010 时,第二个led 点亮;经过1 秒钟,输出4’b0100 时,第三个led 点亮;经过1 秒钟,输出4’b1000 时,第四个led 点亮;经过1 秒钟,输出4’b0001 时,第一个led 点亮······按照上述的过程周而复始,就形成了流水灯。

不难发现,led 的输出,一直为3 个0,1 个1。并且1 的位置每1 秒钟移动一次,从头到尾,然后又到头。这种现象可以利用移位的思想进行实现。即:led[3]<=led[2]; led[2]<=led[1];led[1]<=led[0]; led[0]<=led[3];如果将被赋值的组成一个整体,那就是led,赋值的组成一个整体就是{led[2:0], led[3]}。

仿真代码:

8446a918-cb3b-11ed-bfe3-dac502259ad0.png

8461af92-cb3b-11ed-bfe3-dac502259ad0.png

$stop 是一个系统任务,功能为将仿真工具的仿真停止。运行分析综合后,打开RTL 仿真。

84772b42-cb3b-11ed-bfe3-dac502259ad0.png

点击Run Simulation,打开仿真器。可以看到如图所示波形。

84883f68-cb3b-11ed-bfe3-dac502259ad0.png

由于我们设计的流水灯是每1 秒钟流动一个,在上述的仿真中,led 数值是不会变化的。如果仿真几秒钟的话,仿真的时间会比较长。在此不建议仿真几秒钟的时长,有可能会导致电脑卡住。

仿真时,可以将t 的值,改成一个较小值。例如:10。然后在此编译仿真。改的时候我们可以在仿真文件中加入一句话:

84a23e2c-cb3b-11ed-bfe3-dac502259ad0.png

修改后我们重新运行仿真工具,可以看到如图所示波形:

84cc220a-cb3b-11ed-bfe3-dac502259ad0.png

这样我们可以清楚的看到输出变化的过程。另外,我们这样做还有一个省事的地方,就是我们下板不需要再修改t的参数。

接下来我们分配引脚,生成下板文件。

84e277d0-cb3b-11ed-bfe3-dac502259ad0.png

分配好之后,点击Generate Bitstream。

84fc484a-cb3b-11ed-bfe3-dac502259ad0.png

生成完成之后,点击open Hardware Manager。下板即可。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21648

    浏览量

    601483
  • led
    led
    +关注

    关注

    240

    文章

    23102

    浏览量

    657895
  • 流水灯
    +关注

    关注

    21

    文章

    432

    浏览量

    59624
  • 数字电路
    +关注

    关注

    193

    文章

    1596

    浏览量

    80460
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66276

原文标题:FPGA零基础学习之Vivado-LED流水灯实验

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【紫光同创国产FPGA教程】【第二章】LED流水灯实验及仿真

    通过LED流水灯实验,介绍使用PDS软件开发FPGA的基本流程,器件选择、设置、代码编写、编译、分配管脚、下载、程序FLASH固化、擦除等;同时也检验板上
    的头像 发表于 02-02 13:20 7801次阅读
    【紫光同创国产<b class='flag-5'>FPGA</b>教程】【第二章】<b class='flag-5'>LED</b><b class='flag-5'>流水灯</b><b class='flag-5'>实验</b>及仿真

    FPGA流水灯实验

    FPGA初级实验 verilog let's start (流水灯实验)module countpro(sys_clk,rst_n,led)
    发表于 02-08 16:28

    【Runber FPGA开发板】配套视频教程——LED流水灯实验

    本视频是Runber FPGA开发板的配套视频课程,主要通过LED流水灯实验来介绍如何利用计数器按一定的时钟频率进行计时和数据位拼接操作,实现LED
    发表于 04-12 18:28

    如何上手FPGA实现简单的流水灯效果

    配置选择上篇【FPGA实验流水灯实验记录了如何上手FPGA,实现简单的流水灯效果,本篇将稍微升
    发表于 01-18 10:28

    LED流水灯实验的相关资料推荐

    实验二:LED流水灯实验强调:实验二:LED流水灯
    发表于 01-21 06:39

    基于FPGA Vivado流水灯样例设计资料分享

    流水灯样例】基于 FPGA Vivado 的数字钟设计前言模拟前言Vivado 设计流程指导手册——2013.4密码:5txi模拟
    发表于 02-07 08:02

    FPGA零基学习LED流水灯设计

    的。话不多说,上货。 LED流水灯设计 在学习软件设计时,第一个例程总是“hello world!”,那么学习硬件时,也会有硬件的“hello world”------
    发表于 03-07 16:39

    FPGA零基学习Vivado-LED流水灯实验

    Vivado-LED流水灯实验。话不多说,上货。FPGA零基学习
    发表于 04-18 21:12

    LED流水灯程序【汇编版】

    LED流水灯程序【汇编版】LED流水灯程序【汇编版】LED流水灯程序【汇编版】
    发表于 12-29 11:15 0次下载

    在Quartus下实现LED流水灯实验的资料说明

     通过LED流水灯实验,介绍使用Quartus软件开发FPGA的基本流程,器件选择、设置、代码编写、编译、分配管脚、下载、程序FLASH固化、擦除等;同时也检验板上
    发表于 12-06 16:23 21次下载
    在Quartus下实现<b class='flag-5'>LED</b><b class='flag-5'>流水灯</b><b class='flag-5'>实验</b>的资料说明

    详解基于FPGA的数字电路对流水灯实验

    流水灯,有时候也叫跑马灯,是一个简单、有趣又经典的实验,基本所有单片机的玩家们在初期学习的阶段都做过。本次我们也来介绍一下如何通过小脚丫FPGA实现一个
    的头像 发表于 03-19 16:36 4426次阅读

    C51单片机实验——LED流水灯

    实验LED流水灯实验报告实验名称:LED流水灯
    发表于 11-21 11:06 15次下载
    C51单片机<b class='flag-5'>实验</b>——<b class='flag-5'>LED</b><b class='flag-5'>流水灯</b>

    FPGA Vivado】基于 FPGA Vivado流水灯样例设计

    流水灯样例】基于 FPGA Vivado 的数字钟设计前言模拟前言Vivado 设计流程指导手册——2013.4密码:5txi模拟
    发表于 12-04 13:21 26次下载
    【<b class='flag-5'>FPGA</b> <b class='flag-5'>Vivado</b>】基于 <b class='flag-5'>FPGA</b> <b class='flag-5'>Vivado</b> 的<b class='flag-5'>流水灯</b>样例设计

    【教程分享】FPGA零基学习LED流水灯设计

    系统性学习的机会。 系统性的掌握技术开发以及相关要求,对个人就业以及职业发展都有着潜在的帮助,希望对大家有所帮助。后续会陆续更新 Xilinx 的 Vivado、ISE 及相关操作软件的开发的相关内容,学习
    的头像 发表于 03-14 09:20 1428次阅读

    HME FPGA入门指导:HME-P(飞马)系列开发板实验教程——LED流水灯

    熟悉 HME FPGA PLL IP 的使用,实现 LED 流水灯功能。
    的头像 发表于 05-30 10:04 1623次阅读
    HME <b class='flag-5'>FPGA</b>入门指导:HME-P(飞马)系列开发板<b class='flag-5'>实验</b>教程——<b class='flag-5'>LED</b><b class='flag-5'>流水灯</b>