niceman1992

FPGA 初学者征程(4)流水灯

0
阅读(1264)
       上次简单的一个例子简单的介绍了利用quartus II软件开发FPGA的整个流程,从本节起我们将逐渐的学习一些驱动,为了引起大家的兴趣,我们先学习可以看到现象的历程,在这结束之后,对于后面的博文我将会持续更新有关仿真的一些东西和代码调试的一些技巧以及如何利用第三方工具modelsim进行仿真,好了,我们现在开始我们的流水灯吧。学习过单片机的朋友们都知道流水灯在单片机实现的手段如下:
      main()
{
    第一个灯亮;
   delay();
   第二个灯亮;
   delay();
   .....
   .....
   ......
}
我们知道FPGA是并行的,没有办法“delay“,所以这里存在如何进行延时的问题,我们这里采用这样的手段:
我们在FPGA内部写一个定时器(计数器),当定时器(计数器)到达设定的时间时候,改变灯亮,通过这种手段实现流水灯,下面我们先看看如果在FPGA中通过定时器达到延时。

从上面的代码我们可以看到,每一个时钟周期,cnt计数一次,当cnt计数到设定的值(这里是32'd49999999),delay_ok触发一个时钟的高电平,这个高电平给改变灯亮提供时间节点。
总的代码如下所示:


如果大家有什么问题,欢迎大家联系我:
私信我或者发邮件 18921428564@163.com