基于fpga的led显示控制的设计

基于fpga的led显示控制的设计

ID:31750113

大小:105.76 KB

页数:5页

时间:2019-01-17

基于fpga的led显示控制的设计_第1页
基于fpga的led显示控制的设计_第2页
基于fpga的led显示控制的设计_第3页
基于fpga的led显示控制的设计_第4页
基于fpga的led显示控制的设计_第5页
资源描述:

《基于fpga的led显示控制的设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、LED显示控制的设计1.实验目的2.流水灯设计3.跑马灯设计4.实验结果5.分析与讨论6.附录1、实验目的为了掌握控制cycloneIV板上LED显示的功能,我主要通过两个实验来学习,即流水灯实验和跑马灯实验。当然丄ED是学习FPGA最基础的模块,也是最简单,不需要考虑太多的时序逻辑。通过这个实验,我们可以初步了解VerilogHDL硬件描述语言,代码规范,及进一步掌握采用计数与判断的方式来实现分频的VerilogHDL的编程方法以及移位运算符的使用。2、流水灯设计流水灯,顾名思义就是让LED象水一样的点亮。如果把流水做慢动作播

2、放,可以想象到其实就是移动,即:把水块不断地向同一方向移动,而原来的水块保持不动,就形成了流水。同样,如果使得最左边的灯先亮;然后,通过移位,在其右侧的灯,由左向右依次点亮,而已经亮的灯又不灭,便形成了向右的流水灯。初始状态吋,4个灯都不亮。每来一个时钟脉冲CLK,计数器就加lo每当判断出计数器中的数值达到50000000时,就会点亮一个灯,并进行移位。FPGA输出的数据就应该首先是1111,隔1秒钟变成1210……一直变化到0000,这样,依次点亮所有的灯,就形成了流水灯。而当4个灯都点亮时,需要一个操作使得所有的灯恢复为初始

3、状态,即:灯都不亮。然后,再一次流水即可。如果是右移位,就出现向右流水的现象;反Z,向左流水。MB■■always®(posedgeelkornegedgeres)]beginif(!res)del<=26fd0;elseif(del==26fd49999999)del<=26fd0;elsedel<=del+L'b:;■图2.1计数器模块如图2.1屮的代码所写,主要冃的是计数,由于系统时钟为50MHz,所以当计数到50000000时,也就是花了Is的时间。always®(posedgeelkornegedgeres)begin

4、If(!res)led<=41elsebeginif(del==26»149999999)beginif(led==4'bOOOO)led=41else

5、led<=led«l;endelseled<=led;endend图2.2LED显示模块显示模块中主要利用了vv左移运算符,该运算符为双目运算符,结合方向为从左到右,作用是把一个整型数的所有位向左移动指定的位数,移动到左边界Z外的多余二进制位会被丢弃,并从右边界移入0。这里要注意的是LED为低电平亮,高电平灭。3、跑马灯设计从LED[0]到LED[3]依次点亮,第二个灯点亮时第

6、一个熄灭,每个灯交换的吋间为1S;看上去的效果就象一个亮点从LED[0]跑向LED⑶撚后重复此循环,故命名跑马灯。初始状态时,LED[0]亮,其余熄灭。每來一个时钟脉冲CLK,计数器就加每当判断出计数器中的数值达到50000000时,就会点亮LED[1],同时LED[0]熄灭,并进行移位。这样,依次点亮所有的灯,就形成了跑马灯。而当LED[3]点亮时,需要一个操作使得恢复为初始状态,即:LED[0]亮,其余熄灭。然后,再进行一次跑马灯,重复此循环。如果是右移位,就出现向右跑马的现彖;反Z,向左跑马。跑马灯的计数模块跟流水灯的是一

7、样的,延时都为1S,always®(posedgesys_clk:ornegedgesys_rstn)

8、beginif(!sys_rstn}

9、led<=4else

10、beginif(delay_cnt==26»d49999999)led<=71ed[0]rled[3:l]};elseled<=led;・end・end图3.1LED显示模块从图3.1里可以看出跑马灯与流水灯的不同,这里主要利用了{}的重组功能,led<={led[0]Jed[3:l]}的结果为下:原始Led新的Led0111101110111101110111101

11、1100111我们可以从表屮看出,它正好符合跑马灯的逻辑功能,当然我们还可以通过状态机来实现相同的功能,不过这样有点大材小用了。4、实验结果在通过JTAG烧录FPGA吋,要正确设置FPGA的端口,由于各芯片的端口不一,这里不再细述。流水灯实物图跑马灯实物图5、分析与讨论从结果我们可以看岀设计是成功的,由于显示LED灯比较简易,所以我们没有对其进行仿真,而是直接进行了烧录。不过一般比较复杂的模块中我们都要对其进行仿真,确定逻辑正确后再进行下一步的操作。通过这两个实验,我们应掌握LED的基本原理,FPGAI/O的基本用法、分频、移位

12、运算符及移位寄存器的使用方法。6、附录流水灯:'timescaleIns/Ipsmoduleled(clkjes」ed);inputelk;inputres;output[3:0]led;reg[3:0]led;beginif(!res)del<=26'd0;e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。