本帖最后由 叫我小杜可好 于 2016-8-15 11:02 编辑
新手入门之永远闪耀的流水灯 无论是学习单片机还是学习FPGA我们接触的第一个实验都是流水灯,流水灯作为入门级的实验无可厚非,因为流水灯虽然简单,却能很好的体现出开发的特点,无论是FPGA还是单片机,流水灯虽小,蕴含的知识确实不小。
以前写单片机的流水灯实验的时候,流水灯的实现是通过数据的移位实现的,实现的代码大都如图1所示
图1,单片机流水灯实现代码 波形图如图1.1所示
图1.1,单片机流水灯波形图 FPGA的编程思想和单片机的思想是不一样的,单片机是串行操作的,而FPGA是并行操作的,并行操作代表着多条指令同时运行,各自完成自己的功能,因而FPGA较单片机运行速度更快。
FPGA对于流水灯的实现充分体现了并行操作的思想,我认为FPGA开发的核心就是时序的操作,因此我的实现思路都是围绕时序的。由于开发板LED采用共阳级的接法,如图2,因此点亮流水灯需要给出一个低电平,其实现原理是在四路信号在不同时间段产生低脉冲,时序图2.1如图所示
图2,开发板流水灯共阳极接法
图2.1,FPGA开发板流水灯实现时序图 下面讲解用VEIRLOG代码怎样实现流水灯
对于LED1,使其在000.25s的时间内亮,LED2在0.25-0.5s内时间内亮,依此类推LED3和LED4的状态。
LED1实现代码如图3.1所示
图3.1,LED1实现代码 LED1仿真波形如图3.2
图3.1,LED1仿真波形图 同理,其他三路的LED信号的产生只要更改信号产生条件即可实现,条件区域如图3.2
图3.2,条件更改区域 将四路LED模块写好之后,再在顶层模块中进行例化后,即可得到产生流水灯效果的四路LED信号,顶层模块如图4
图4,顶层模块 仿真的时候将时间都减小才能够看到波形,在实际下载的时候再将数值调大就可以了。顶层模块总体仿真图形如图4.1
图4.1,顶层模块仿真图形 实验现象如图5所示
图5,流水灯实验现象
链接:http://pan.baidu.com/s/1qYmxqFE 密码:txfm
|