基于FPGA的彩灯控制器设计_第1页
基于FPGA的彩灯控制器设计_第2页
基于FPGA的彩灯控制器设计_第3页
基于FPGA的彩灯控制器设计_第4页
基于FPGA的彩灯控制器设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州轻工业学院可编程数字系统设计 题 目 基于FPGA的彩灯控制器的设计 学生姓名 张焕焕 专业班级 电子信息工程10-2班 学 号 院 (系) 电气信息工程学院 指导教师 完成时间 基于FPGA的彩灯控制器设计摘 要随着科技的发展 , 在现代生活中, 彩灯作为一种景观应用越来越多。而在电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,VHDL语言则是EDA的关键技术之一,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。本文介绍了基于EDA技的多路彩灯控制器的设计与分析。在M

2、AX+PLUSII环境下采用VHDL语言实现,论述了基于VHDL语言和FPGA芯片的数字系统设计思想和实现过程。电子设计自动化技术EDA的发展给电子系统的设计带来了革命性的变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件使得EDA技术的应用走向普及。FPGA是新型的可编程逻辑器件,采用FPGA进行产品开发可以灵活地进行模块配置,大大缩短了产品开发周期,也有利于产品向小型化,集成化的方向发展。关键词: VHDL 彩灯 仿真 1、概述1.1、设计目的:设计一个彩灯控制器,使彩灯(LED管)可以实现四种花样循环变化及两种不同频率的闪烁,有复位开关。整个系统有七个输入信号CLK,CLR,A,B,

3、C,D,OPT,六个输出信号控制六个彩灯。OPT的高低电平控制彩灯闪烁的快慢,A,B,C,D控制各种不同花样彩灯的变换。此彩灯控制系统设定有四种花样变化。四种花样分别为:a.彩灯从左到右逐次亮起,再逐次从右到左熄灭;b.彩灯两边同时亮两个,再逐次向中间亮;c.彩灯从左到右两个两个的亮,再从右到左两个两个逐次的亮;d.彩灯中间两个亮,再同时向两边散开。1.2、设计要求:u 掌握FPGA 的程序设计方法。 u 掌握硬件描述语言语法。 u 程序设计完成后要求在软件中实现功能仿真。2、系统设计2.1、设计原理:整个系统共有七个输入信号:基准时钟信号CLK,系统清零信号(复位信号)CLR,彩灯节奏快慢选

4、择开关OPT;共有4个输出信号Q3.0,分别用于控制四路彩灯。据此,我们可将整个彩灯控制器CDKZQ分为四大部分:彩灯花样控制部分、分频部分、定时部分和计数部分。当各个模块均完成上述操作之后,形成最后的四路彩灯显示系统,并且进行仿真。仿真通过,即可下载到指定的FPGA芯片里面,并进行实际连线,进行最后的硬件测试。把分频部分的不同频率的时钟信号CP输送到计数部分 ,从而控制彩灯闪烁速度的快慢 ,定时部分控制每种速度维持的时间长短。图表 122、设计方案:在电路中以 1 代表灯亮,以 0 代表灯灭,由 0、1按不同的规律组合代表不同的灯光图案,同时使其选择不同的频率,从而实现多种图案多种频率的花样

5、功能显示。在该电路中只需简单的修改程序就可以灵活地调整彩灯图案和变化方式。下面就以一个四路彩灯控制系统的实现为例进行简单说明。此四路彩灯控制系统设定有四种花样变化 。彩灯图案状态变换的速度有快、慢两种。3、程序仿真过程start compilation先编译generate functional simulation netlist然后生成功能仿真网络表assignmentssettingsimulation setting设置成功能仿真然后新建一个vector waveform file 通过viewutility windows-node finder 把输入输出管脚添加进波形仿真图里 点

6、击start simulation得到仿真图WAVEFORM1:由图可见:正常情况下 灯按照花样abcd的顺序循环d在80NS-120NS的高电平使得花样变为D花样,D高电平结束,灯顺序进行A花样。OPT 在80NS-170NS高电平使得灯变换速度提高2倍 但是和这两种灯的状态任然占用了两个时钟周期,这是因为花样d和花样a状态转换之间没有立即衔接,导致220NS处CLR高电平使得灯全部清0,不再变化DIV2是二分频输出,由图可见是输入时钟CLK的二分频4、实验结果分析实验表明 ,此设计方法能够满足多种不同花样彩灯的变化要求 ,并且该方法便于扩展不同变化模式的彩灯花样,同时又实现了彩灯的两种不同

7、频率的闪烁。如果不按任何按键时候,灯就按四种花样顺序循环跑,如果按下某个键再松开,比如按下C键然后松开,那么不管之前灯跑到哪个花样,按键后灯就会从C代表的花样处开始跑,然后是D花样,然后是A花样,依次循环。但是A,B,C,D认为是按下会弹起的按键,因为这个程序里,如果一直按着按键不松手,会导致灯只是反复跑一个花样。比如按着B键不松手,那么就会反复跑B花样。还有不能允许同时按下两个键,三个键,4个键,也就是说,同一时刻ABCD只能有一个是高电平,否则会出错,因为这个程序并没有防错机制。5、心得体会本次设计的课题是彩灯控制器的设计,当拿到这个课题的时候经过分析就知道关键是计数器和分频器的使用,分频

8、的方法有很多种,对于同一种功能的实现,用VHDL可以采用多种方式进行描述,每种方式之间各有优劣,本次设计只采用了其中较简单的一种,应尽量用最简洁的语言写出所需功能的程序。通过这次课程设计对技术有了更进一步的熟悉,VHDL语言和语言等其他语言还是有很大的区别。VHDL是EDA技术的重要组成部分,其具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。其主要的也是最大的优点就在于设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。在实际操作中发现设计和

9、课本上的知识有很大联系,但又高于课本,一个简单的原理要把它应用以及和其他功能综合起来就有些困难。通过设计也巩固了我们的书本知识以及通过借阅书籍和上网查找资料,也丰富了自己对的了解。6、致谢7、参考文献1 周润景.基于Quartus的FPGA/CPLD数字系统设计实例M.电子工业出版社.2007,82 潘松 黄继业. EDA技术实用教程(第二版).北京:科学出版社,2006.93 林明权 马维旻 VHDL数字控制系统设计范例.电子工业出版社2003,14 褚振勇. FPGA设计及应用(第三版)M.西安电子科技大学出版社.2012,48、附录彩灯控制器的源程序library ieee;use ie

10、ee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity horseracelamp isport(clk:in std_logic;clr:in std_logic;a:in std_logic;b:in std_logic;c:in std_logic;d:in std_logic;opt:in std_logic;q:out std_logic_vector(5 downto 0);div2:out std_logic);end;architecture one of horseracelamp is type states

11、 is(s0,s1,s2,s3); signal present:states; signal q1:std_logic_vector(5 downto 0); signal count:std_logic_vector(3 downto 0); signal halfclk:std_logic_vector(1 downto 0); signal clkin:std_logic_vector(1 downto 0);begin process(clk) -该进程实现二分频beginif clkevent and clk=1 then halfclk=halfclk+1;end if;end

12、process;process(opt)-该进程实现OPT高时候用原来的时钟,OPT低的时候用二分频后的时钟,信号CLKIN(0)会传递到下一个进程里 begin if opt=0then clkin(0)=halfclk(0); else clkin(0)=clk; end if; end process; process(clk,clr,a,b,c,d) -S1,S2,S3,S4分别对应A,B,C,D四种花样,它们之间会自动按顺序循环,也会因为A,B,C,D中某个置高而改变循环顺序,所以用了大量的IF ELSIF语句beginif clr=1 then present=s0; q10);e

13、lsif clkin(0)event and clkin(0)=1 then case present is when s0=if q1=thenq1=;elseif count=1100 then count0); q1=; present=s1; elsif b=1then count0); q1=; present=s1; elsif c=1then count0); q1=; present=s2; elsif d=1thencount0); q1=; presentq1q1q1q1q1q1q1q1q1q1q1q1null;end case;count=count+1;presenti

14、f count=0011 then count0); q1=; present=s2; elsif a=1then count0); q1=; present=s0; elsif c=1then count0); q1=; present=s2; elsif d=1thencount0); q1=; presentq1q1q1null;end case;count=count+1;presentif count=0110 then count0); q1=; present=s3;elsif a=1then count0); q1=; present=s0; elsif b=1then count0); q1=; present=s1; elsif d=1thencount0); q1=; presentq1q1q1q1q1q1null;end case;count=count+1;presentif count=0011 then count0); q1=; present=s0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论