2615|2

866

帖子

3

TA的资源

版主

楼主
 

05、安路SparkRoad国产FPGA测评【学习篇】流水灯 [复制链接]

  本帖最后由 1nnocent 于 2022-7-27 15:43 编辑

    该例程实现流水灯效果,一共使用的16个LED,点亮顺序为从左到右一次点亮,然后从右到左依次点亮。

    先看原理图,16个蓝色LED,低电平时点亮。

      硬件原理很简单,代码也非常简单,今天可以轻松一点。

    输入接口就一个24M时钟,输出接口为16个LED,对应的FPGA引脚分别为(最后一个对应T13,有万恶的分页符没截到图):

      代码一开始定义了一个计数的上限CNT,一共计数12000000次,时间为0.5S,这个历程里有例化“rst_n”模块,但是并没有使用,次历程赋初值是通过initial来赋值,之前以为initial只能在testbench上使用。

    历程比较复杂一点的就是流水灯的逻辑,其实也没啥,历程的逻辑就是跟句flag判断灯的状态,再进行移位。当LED【0】为0时,flag=0;LED{15}为0时,flag=1;当LED【0】为零时即1111 1111 1111 1110 进行移位将0到14位往前移动移位即1111 1111 1111 1101,下次时还是进行同样的操作,总体过程为:

1111 1111 1111 1110

1111 1111 1111 1101

1111 1111 1111 1011

1111 1111 1111 0111

1111 1111 1110 1111

1111 1111 1101 1111

1111 1111 1011 1111

1111 1111 0111 1111

1111 1110 1111 1111

1111 1101 1111 1111 

1111 1011 1111 1111

1111 0111 1111 1111

1110 1111 1111 1111

1101 1111 1111 1111

1011 1111 1111 1111

0111 1111 1111 1111

当检测到LED【15】为0时,再进行移位拼接,具体代码实现:

1111 1111 1111 1110    flag=0

0111 1111 1111 1111    flag=1

  • always @(posedge clk_24m)
  • begin
  • if(led == 0)
  • led <= 16'hfffe;
  • else if(cnt_time == CNT - 1)
  • begin
  • if(!flag)
  • led <= {led[14:0],led[15]};
  • else
  • led <= {led[0],led[15:1]};
  • end
  • else
  • led <= led;
  • end

    历程运行效果:

播放器加载失败: 未检测到Flash Player,请到安装
流水灯movie

 

最新回复

看楼主的介绍,流水灯的逻辑确实是稍微有点不太简练 灯的效果挺好   详情 回复 发表于 2022-7-30 08:56
点赞 关注
 
 

回复
举报

7020

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

看楼主的介绍,流水灯的逻辑确实是稍微有点不太简练

灯的效果挺好

点评

流水灯的逻辑和单片机的实现方式区别还是挺明显的,直接位拼接,刚开始理解不过来     。  详情 回复 发表于 2022-7-30 09:03
 
 
 

回复

866

帖子

3

TA的资源

版主

板凳
 
Jacktang 发表于 2022-7-30 08:56 看楼主的介绍,流水灯的逻辑确实是稍微有点不太简练 灯的效果挺好

流水灯的逻辑和单片机的实现方式区别还是挺明显的,直接位拼接,刚开始理解不过来

 

 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
Protel 99从入门到精通教程(下)

接上面的Protel 99从入门到精通教程(下) 记得用下面的阅读器或者自己去网上下载pdg的阅读器

c51中断函数的介绍 需要的请摘录

C51编译器允许用c51创建中断服务程序,大家仅仅需要关心中断号和寄存器组的选择就可以了。编译器自动产生中断向量和程序的入栈及 ...

实时多任务系统内核分析 & OSII_CHM

实时多任务系统内核分析 和 OSII的帮助文件,尤其帮助文件很详细 能当教材看了 :hug:

HOHO,我们的51DIY——LC测量小工具完成咯!

同志们,这一周的规整帖,我很高兴地跟大家说,我已经把它做好咯!! 上图以前,我先小小自曝一下糗事: 之前我怀疑过晶振 ...

TI好像有一个DCDC开关电源验证平台,DSP控制的,通过控制不同的NMOS实现升压或者降压

是一个参考设计,有人发过, 就是一个数字电源,有多个NMOS,用dsp控制不同的nmos实现不同的拓扑结构 现在搞忘了 ...

【AT-START-F403A测评】Part5:片上Flash例程测试

1.介绍 对于芯片来说,Flash是非常重要的,这一篇先来讲一下Flash的使用,官方已经给出Demo了,所以我们只要知道它是如何工作 ...

复旦微FM33LC0系列开发板资料

大家好! 以下是LC0系列的开发板图纸,可用于开发调试,与硬件最小系统设计参考。 欢迎下载! 518815 518814

开关模式电源电流检测:检测电阻如何放置

电流检测电阻的位置连同开关稳压器架构决定了要检测的电流。检测的电流包括峰值电感电流、谷值电感电流(连续导通模式下电感电流 ...

【2022得捷电子创新设计大赛】物料开箱 raspberry Pi 400

从下单到今天收快递等了10多天了,心心念念的raspberry Pi 400到了,首先是一个得捷电子的小箱子,包装还是很到位,里面空余塞满 ...

[HPM-DIY]hpm6750 openmv移植成功,使用cherryusb作为repl交互

使用官方板子hpm6750evkmini,移植成功openmv,全新的Board支持,移植过程中学到不少东西,新鲜玩意就是好。 使用ses工程进 ...

关闭
站长推荐上一条 1/10 下一条
有奖探索 | 和村田一起,深挖 GNSS 开发!
活动时间:即日起-5月11日
活动奖励:智能手环、螺丝刀套装、双肩包

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 5

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表