开始
本人是一个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