FPGA小白养成记--流水灯实验

本文是一位FPGA初学者分享的LED流水灯实验过程,使用VIVADO软件,通过Verilog实现。文章详细介绍了设计思路、代码实现和调试经验,包括计数器、状态变量和LED闪烁判定的逻辑,以及仿真和硬件下载的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FPGA小白入门学习之流水灯实验

开始

本人是一个FPGA小白,因为兴趣从而开始接触FPGA,我将会把我每次的实验过程和心得分享给大家,希望一起进步,如果有什么错误的地方,还希望批评指正。
下面是我的第一次实验:LED流水灯实验
使用软件:VIVADO

整体思路与方案

LED流水灯闪烁实验:
要求:四个LED灯轮流闪烁,每次间隔0.5S
思路:首先要实现LED灯轮流闪烁,则当第一个0.5S到来时,LED0开始闪烁而其它灯灭;当第二0.5S到来时,LED1开始闪烁,以此类推。
那么我们要如何才能知道时间过了0.5S呢?我们采用计数器计数的方式,当计数器计到某个值时,代表过了0.5S的时间;那么下一个问题就是:计数到多少呢?首先我们要了解板载的时钟频率为50M,又因为公式f=1/T,因此一个周期所耗时间则是50M的倒数,即20ns;至此,我们用0.5S除以20ns就是所需计数的值,即25000000。当计数器计到25000000时,代表过了0.5S。但是,根据我们之前的思路,当第一个0.5S时,LED0闪烁,第二个0.5S时LED1闪烁,以此类推,因此除了计数器,我们还需要定义一个变量,这个变量可以表示过了几个0.5S,从而方便进行判定。因为一整个循环有4个0.5S,因此我们设定一个两位的变量CNT1。总体来说,首先计数器计数,计到25000000时归零,同时CNT1+1,根据C

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值