流水灯VHDL.docx

上传人:b****5 文档编号:6064684 上传时间:2023-01-03 格式:DOCX 页数:7 大小:105.28KB
下载 相关 举报
流水灯VHDL.docx_第1页
第1页 / 共7页
流水灯VHDL.docx_第2页
第2页 / 共7页
流水灯VHDL.docx_第3页
第3页 / 共7页
流水灯VHDL.docx_第4页
第4页 / 共7页
流水灯VHDL.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

流水灯VHDL.docx

《流水灯VHDL.docx》由会员分享,可在线阅读,更多相关《流水灯VHDL.docx(7页珍藏版)》请在冰豆网上搜索。

流水灯VHDL.docx

流水灯VHDL

基于VHDL流水灯的设计

电子信息科学与技术刘敏何磊成江波

一、设计内容

流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。

流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。

要求采用可编程逻辑器件实现一个流水灯控制电路,12个LED灯能连续发出4种不同的流水显示形式。

彩灯控制器的第1种花样为彩灯按顺时针方向逐次点亮;第2种花样为彩灯按逆时针方向逐次点亮,然后全灭全亮;第3种花样为彩灯两边同时亮1、2、3、4、5、6个逐次向中间移动再散开;第4种花样为彩灯连续交叉闪烁。

多个花样自动变换,循环往复。

二、设计方案

彩灯是由FPGA板上的LED灯代替,有以下4种闪烁效果

1.彩灯按顺时针方向逐次点亮。

2.彩灯按逆时针方向逐次点亮,然后全灭全亮。

3.彩灯两边同时亮1、2、3、4、5、6个逐次向中间移动再散开。

4.彩灯连续交叉闪烁。

本控制电路采用VHDL语言设计。

运用自顶而下的设计思想,按功能逐层分割实现层次化设计。

根据多路彩灯控制器的设计原理,分别对应彩灯的四种变化模式、利用VHDL语言实现该功能.

三、系统框图

四、流水灯设计程序

libraryIEEE;

useIEEE.STD_LOGIC_1164.all;

useIEEE.STD_LOGIC_unsigned.all;

entityled1is

port(

sysclk:

instd_logic;

dout:

outstd_logic_vector(11downto0)

);

endled1;

architecturejgtofled1is

signalcnt:

std_logic_vector(7downto0);

--variablecount:

integerRANGE0TO7;

signalcount:

std_logic_vector(5DOWNTO0);

begin

process(sysclk)

begin

if(sysclk'eventandsysclk='1')then

cnt<=cnt+1;

if(cnt="11110111")then

cnt<="00000000";

count<=count+1;

endif;

endif;

endprocess;

process(count)

begin

casecountis

when"000000"=>dout<="111111111110";

when"000001"=>dout<="111111111101";

when"000010"=>dout<="111111111011";

when"000011"=>dout<="111111110111";

when"000100"=>dout<="111111101111";

when"000101"=>dout<="111111011111";

when"000110"=>dout<="111110111111";

when"000111"=>dout<="111101111111";

when"001000"=>dout<="111011111111";

when"001001"=>dout<="110111111111";

when"001010"=>dout<="101111111111";

when"001011"=>dout<="011111111111";

when"001100"=>dout<="101111111111";

when"001101"=>dout<="110111111111";

when"001110"=>dout<="111011111111";

when"001111"=>dout<="111101111111";

when"010000"=>dout<="111110111111";

when"010001"=>dout<="111111011111";

when"010010"=>dout<="111111101111";

when"010011"=>dout<="111111110111";

when"010100"=>dout<="111111111011";

when"010101"=>dout<="111111111101";

when"010110"=>dout<="111111111110";

when"010111"=>dout<="111111111111";

when"011000"=>dout<="000000000000";

when"011001"=>dout<="011111111110";

when"011010"=>dout<="101111111101";

when"011011"=>dout<="110111111011";

when"011100"=>dout<="111011110111";

when"011101"=>dout<="111101101111";

when"011110"=>dout<="111110011111";

when"011111"=>dout<="111101101111";

when"100000"=>dout<="111011110111";

when"100001"=>dout<="110111111011";

when"100010"=>dout<="101111111101";

when"100011"=>dout<="011111111110";

when"100100"=>dout<="001111111100";

when"100101"=>dout<="110011110011";

when"100110"=>dout<="111100001111";

when"100111"=>dout<="110011110011";

when"101000"=>dout<="001111111100";

when"101001"=>dout<="000111111000";

when"101010"=>dout<="111000000111";

when"101011"=>dout<="000111111000";

when"101100"=>dout<="000011110000";

when"101101"=>dout<="111100001111";

when"101110"=>dout<="000001100000";

when"101111"=>dout<="000000111111";

when"110000"=>dout<="010101010101";

when"110001"=>dout<="101010101010";

when"110010"=>dout<="010101010101";

when"110011"=>dout<="101010101010";

when"110100"=>dout<="010101010101";

when"110101"=>dout<="101010101010";

when"110110"=>dout<="010101010101";

when"110111"=>dout<="101010101010";

when"111000"=>dout<="010101010101";

when"111001"=>dout<="101010101010";

when"111010"=>dout<="010101010101";

when"111011"=>dout<="101010101010";

when"111100"=>dout<="010101010101";

when"111101"=>dout<="101010101010";

when"111110"=>dout<="010101010101";

when"111111"=>dout<="101010101010";

whenothers=>null;

endcase;

endprocess;

endjgt;

五、系统仿真与调试

1.仿真波形图

通过QuartusII软件,我们进行了仿真,其仿真波形如下图:

图一:

仿真波形图

由设计要求可知,本设计要求采用可编程逻辑器件实现一个流水灯控制电路,12个LED灯能连续发出4种不同的流水显示形式。

彩灯控制器的第1种花样为彩灯按顺时针方向逐次点亮;第2种花样为彩灯按逆时针方向逐次点亮,然后全灭全亮;第3种花样为彩灯两边同时亮1、2、3、4、5、6个逐次向中间移动再散开;第4种花样为彩灯连续交叉闪烁。

多个花样自动变换,循环往复。

从仿真的波形可以看出,实现了相应的功能。

2.电路原理图

在QuartusII软件中利用硬件描述语言描述电路后,用RTLViewers生成的对应的电路图如下所示:

图二:

用RTLViewers生成的电路图

六、设计总结

通过本次设计明白了VHDL语言的实用性,同时对QuartusII有了进一步的了解。

虽然在设计过程种遇到了许多麻烦,比如语言编写的错误,思路想法的偏离...但通过问同学,老师,以及上网了解后最终还是纠正了这些错误。

不过通过不断的检查和咨询,最终还是编写成功了。

也通过本次彩灯设计让我知道了日常生活种各种花样灯的工作模式,希望能够通过接下来的学习,自己能够设计出生活中实用的样式灯。

通过这次课程设计,可以很好的把各个章节的模块融合到一起,对以后的学习,设计很有帮助,感觉自己在动手操作方面有质上的飞跃。

不仅掌握QuartusII软件的使用,与此同时,还对电子设计的思路有了更多的认识。

通过对EDA设计中的TOP-DOWN设计方式的运用,体会到了对于一个大型系统的设计方案选取应从顶向下的设计思路,这与传统的至底向上的设计方式有很大改进,且设计效率得到大大提高。

通过这次的实验,理解了电子技术设计的设计多种方法和流程,夯实了QuartusII的操作流程。

很显然,任何的实践活动,都不可能闭门造车,是必须去吸取前人的实践经验,这就要求在课程设计的过程中,从网络上,从图书馆,借寻相关资料书籍等,有力地指导课程设计。

这就要求在最后的大学时间里,要继续夯实相关的理论知识,继续多动手操作,提高具体的实践操作能力,为即将毕业的工作出路,做好充分的准备。

七、参考文献

[1]许飞.EDA技术与实践[M],北京:

清华大学出版社,2011

[2]黄智伟.全国大学生电子设计竞赛制作实训[M],北京:

北京航空航天大学出版社,2011

[3]王金明编著.数字系统与VerilogHDL[M].电子工业出版社.2011.1

[4]卢毅编著.VHDL与数字电路设计[M].科技大学出版.2001

[5]陈琼、潘礼.FPGA系统设计与实践[M].电子工业出版社.2005

[6]侯佰亨,顾新编著.VHDL硬件描述语言与实际应用[M].西安电子科社.2000

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1