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

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

3天内不再提示

FPGA学习系列:8. 流水灯的设计

FPGA学习交流 来源:互联网 作者:佚名 2018-05-31 11:40 次阅读

设计原理:

在以后的设计中,用的开发板都将是我们至芯科技自主设计的开发板,我们的芯片用的是Cyclone4系列的EP4CE10F17C8,在以后的设计中我们将不再讨论我们的开发板

今天的设计是流水灯,在单片机中我们也了解到流水灯的点亮,不就是高电平或者低电平亮或者灭,然后通过依次的点亮LED灯,就形成了流水

我们用的开发板的电路图如下

image.png

在点图中我们可以了解到我们的点亮电路,几个灯都是公用的是高电平也就是3.3V,所以只要给一个低电平就可以点亮我们的流水灯

我们的开发板提供的晶振是50M的,50M一个周期是20ns,我们人眼能够分辨的的速度是45ms左右,也就是物体如果45ms移动一次我们看清它是停一下走一下的,如果快于这个时间的话,那么我们看到的物体的移动就是连贯的。我们要设计出人眼可以分辨的流水就需要我们设计出大于这个时间灯亮灭,然后形成人眼可以分辨的流水。

本次我们的设计流水灯的流水时间是1s,那么我们就需要一个时间寄存器,当计数到1s的时候我们点亮一个灯,等下一个1s来的时候,我们点亮下一个等,然后形成流水,50M是20ns,1s是1hz,那么我们需要计数50 000 000

值得提的是我们算计数的时间是一面的等式 :计数 = 晶振 / 需要的频率 ,计数的时间就是我们1hz的周期,那么计数到一半的时候就是半个周期,我们可以在计数一半的时候clk 翻转,那么当技计数到的时候就是占空比50%的1hz的周期

设计架构图:

image.png

设计代码:

设计模块

0moduleled_run (clk,rst_n,led);

1

2 inputclk,rst_n;

3

4 outputreg[3:0]led;

5

6 reg[25:0]count;

7 regclk_1hz;

8

9 always@(posedgeclk)

10 if(!rst_n)

11 begin

12 clk_1hz <=1;

13 count <=0;

14 end

15 elseif(count <(50_000_000/1/2-1))//计数

16 count <=count +1'd1;

17 else

18 begin //当计数到的时候,得到1hz时钟

19 count <=26'd0;

20 clk_1hz <=~clk_1hz;//~时钟翻转

21 end

22

23 always@(posedgeclk_1hz)

24 if(!rst_n)

25 led <=4'b0111; //复位点亮第四个灯,熄灭1 2 3

26 else

27 led <={led[0],led[3:1]};//当时钟上升沿来的时候把led的第一位 放在

28 //第四位,2 -- 4位放在 3 -- 1位,依次的移位,也就是把复位中的低电平 不停的

29 //移动在4 --1 位之中的某一位,从而实现流水

30endmodule

测试模块

0`timescale1ns/1ps

1

2moduletb();

3

4 regclk,rst_n;//定义模块的端口

5 wire[3:0]led;

6

7 initialbegin

8

9 clk =1;

10 rst_n =0;

11

12 #200.1rst_n =1;

13

14 #20000$stop;//延迟20000 Ns后 停止计数

15

16 end

17

18 always#10clk =~clk;//产生一个50M的时钟

19

20 led_run dut( //例化设计模块

21 .clk(clk),

22 .rst_n(rst_n),

23 .led(led)

24 );

25

26endmodule

仿真:

在仿真中我们可以调下我们设计模块的中的计数值,这样在仿真中我们可以我们可以快速的等到仿真结果,要不然你仿真几个小时可能才会出结果

image.png

在仿真中我们可以可以看到在我们的1hz时钟的上升沿,我们led的4位中的一位将有一位变化为0,从而实现流水

大家可以下板测试

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

    关注

    1600

    文章

    21284

    浏览量

    592883
  • 流水灯
    +关注

    关注

    21

    文章

    432

    浏览量

    59094
收藏 人收藏

    评论

    相关推荐

    基于FPGA的音乐流水灯控制系统设计

    介绍一种基于 FPGA的音乐流水灯控制器, 采用硬件描述语言对其进行描述, 分别实现乐曲的播放和同步流水灯的闪烁。并构建一个 SOPC系统, 集成 LCD模块来显示实时音乐的音阶值和频率强度
    发表于 10-20 17:21 4180次阅读

    基于Verilog FPGA 流水灯设计_流水灯源码_明德扬资料

    LED流水广告灯工程说明在本案例中,使用常用的verilog语言完成该程序,设计并控制8个灯的花式或循环点亮;即上电后,实现左移和右移交替的流水灯。案例补充说明在FPGA电路设计中,尽
    发表于 08-02 17:56

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

    配置选择上篇【FPGA实验】流水灯实验记录了如何上手FPGA,实现简单的流水灯效果,本篇将稍微升级一些,通过按钮实现多种形态的流水灯。此次仍
    发表于 01-18 10:28

    FPGA零基础学习:LED流水灯设计

    系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有
    发表于 03-07 16:39

    利用FPGA DIY开发板控制流水灯功能实现

    asean的 FPGA DIY 流水灯视频
    的头像 发表于 06-20 05:04 2747次阅读
    利用<b class='flag-5'>FPGA</b> DIY开发板控制<b class='flag-5'>流水灯</b>功能实现

    数字设计FPGA应用:流水灯的设计

    LED流水灯这篇采用最简单的就是点亮一个灯延时一定时间,然后关闭,接下去点亮下一个灯,依次类推形成流水灯的效果
    的头像 发表于 12-04 07:09 3348次阅读
    数字设计<b class='flag-5'>FPGA</b>应用:<b class='flag-5'>流水灯</b>的设计

    使用FPGA实现流水灯设计的资料合集

    本文档的主要内容详细介绍的是使用FPGA实现流水灯设计的资料合集免费下载。
    发表于 01-18 08:00 30次下载

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

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

    如何通过FPGA实现一个流水灯

    流水灯,有时候也叫跑马灯,是一个简单、有趣又经典的实验,基本所有单片机的玩家们在初期学习的阶段都做过。本次我们也来介绍一下如何通过小脚丫FPGA实现一个流水灯
    的头像 发表于 06-06 10:42 7653次阅读
    如何通过<b class='flag-5'>FPGA</b>实现一个<b class='flag-5'>流水灯</b>?

    蓝桥杯单片机学习过程记录(一)流水灯程序

    蓝桥杯单片机学习过程记录(一)流水灯程序简易流水灯进阶流水灯简化流水灯流水灯混合sbit用法
    发表于 11-14 15:06 39次下载
    蓝桥杯单片机<b class='flag-5'>学习</b>过程记录(一)<b class='flag-5'>流水灯</b>程序

    51单片机学习笔记———8.点亮流水灯的一种奇葩算法

    51单片机学习笔记———8.点亮流水灯的一种奇葩算法最近学习51单片机的过程发现了一种脑洞大开点亮流水灯的方法,于此分享一下源码:#incl
    发表于 11-14 15:21 10次下载
    51单片机<b class='flag-5'>学习</b>笔记———<b class='flag-5'>8.</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> Vivado】基于 <b class='flag-5'>FPGA</b> Vivado 的<b class='flag-5'>流水灯</b>样例设计

    【STM32学习】(3)流水灯的实现

    学习单片机都要学习流水灯,因为流水灯比较简单,易于实现,效果也比较好呈现。这里我用的单片机型号为STM32F103VET8个LED灯接在了PA口的低八位。代码实现如下:(注: 对于新手
    发表于 12-24 19:39 11次下载
    【STM32<b class='flag-5'>学习</b>】(3)<b class='flag-5'>流水灯</b>的实现

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

    流水灯是大多数学习者接触到的第一个实验,也是非常经典的一个实验,在此,我们一起学习一下流水灯
    的头像 发表于 03-26 09:43 1541次阅读

    基于FPGA开发板流水灯的设计实现

    流水灯,有时候也叫跑马灯,是一个简单、有趣又经典的实验,基本所有单片机的玩家们在初期学习的阶段都做过。本次我们也来介绍一下如何通过小脚丫FPGA实现一个流水灯
    发表于 06-20 17:10 905次阅读
    基于<b class='flag-5'>FPGA</b>开发板<b class='flag-5'>流水灯</b>的设计实现