收藏 分销(赏)

基于FPGA的多路彩灯控制器的设计.doc

上传人:天**** 文档编号:3935549 上传时间:2024-07-24 格式:DOC 页数:10 大小:34.54KB
下载 相关 举报
基于FPGA的多路彩灯控制器的设计.doc_第1页
第1页 / 共10页
基于FPGA的多路彩灯控制器的设计.doc_第2页
第2页 / 共10页
基于FPGA的多路彩灯控制器的设计.doc_第3页
第3页 / 共10页
基于FPGA的多路彩灯控制器的设计.doc_第4页
第4页 / 共10页
基于FPGA的多路彩灯控制器的设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、 FPGA课程设计报告 学院: 信息工程学院班级: 信息12级-1班姓名: 牛月太学 号: 1267118130完成时间: 2015年7月13日评阅意见: 题目基于FPGA多路彩灯控制器的设计一、引言21世纪,电子技术迅猛发展,高薪技术日新月异。传统的设计方法正逐步退出历史的舞台,取而代之的是基于EDA技术的芯片设计技术,它正在成为电子系统设计的主流。大规模可编程器件现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD是当今应用最广泛的两类可编程专用集成电路。近年来,EDA技术高速发展使现代电子产品向着功能多样化,体积最小化,功耗最低化的方向发展。它与传统电子产品在设计上的显著优势就是:第一大

2、量使用大规模可编程逻辑器件,以提高产品性能,缩小产品体积,降低功耗。第二是广泛运用现代化计算机技术,以提高电子设计自动化程度,缩短开发周期,提高产品的竞争力.所以掌握这方面的应用极其重要,本题目就是基于FPGA这一技术完成实现的.众所周知,彩灯、流水灯、装饰灯等在日常生活和商业都有极其广泛的应用.具有很高的商业价值和研究价值.而对于越来越变化多端要求极高的灯饰行业, 相对传统的单片机来说,FPGA的性价比越来越高,功能强大,能轻松的完成对彩灯的控制。随着科技的发展 , 在现代生活中, 彩灯作为一种景观应用越来越多。而在电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,VHD

3、L语言则是EDA的关键技术之一,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计.本文介绍了基于EDA技的多路彩灯控制器的设计与分析。在MAX+PLUSII环境下采用VHDL语言实现,论述了基于VHDL语言和FPGA芯片的数字系统设计思想和实现过程。电子设计自动化技术EDA的发展给电子系统的设计带来了革命性的变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件使得EDA技术的应用走向普及.FPGA是新型的可编程逻辑器件,采用FPGA进行产品开发可以灵活地进行模块配置,大大缩短了产品开发周期,也有

4、利于产品向小型化,集成化的方向发展。二、任务要求1.设计一个多路彩灯控制器,能循环变化花型,可清零,可选择花型。2。彩灯控制器有16路发光二极管构成,当控制器开关打开时,能够在6种不同花型之间进行循环变化。3。要求控制器具备复位清零功能,一旦复位信号失效,不论控制器花型变化处于何种状态,都会无条件即刻清零,回到初始化状态。三、设计作用与目的根据系统设计要求可知,整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED15:0,分别用于控制十六路彩灯。据此,我们可将整个彩灯控制器CDKZQ分为三大部

5、分:时序控制电路SXKZ和显示控制电路XSKZ。本题目还用原理图来完成顶层文件,对于比较简单的,子模块较少的题目,建议顶层模块使用原理图,会比较直观。而对于比较复杂的,子模块较多的题目,使用文本元件例化,会更简洁清晰.如用原理图完成顶层文件连线如图所示。 彩灯控制器的组成原理图四、所用设备及软件4。1 FPGA的发展历程FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有

6、限的缺点.以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块.系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里.一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所

7、需要的逻辑功能。FPGA一般来说比ASIC(专用集成电路)的速度要慢,无法完成复杂的设计,但是功耗较低.但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上.另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。4。2 Quartus II4.2。1简介Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理

8、图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点.Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也

9、使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变.Altera在Quartus II 中包含了许

10、多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎.4。2.2 功能Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLoc

11、k增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。五、系统设计方案5。1系统总体设计图5.1 系统总图5。2系统软件

12、设计5.2.1时序控制器:SXKZ部分library ieee;use ieee。std_logic_1164.all;use ieee.std_logic_unsigned。all;-库函数声明entity sxkz is实体声明port(chose_key:in std_logic;-速度控制按钮clk_in:in std_logic;-输入时钟信号clr:in std_logic;复位信号clk:out std_logic改变后的时钟信号);end entity;architecture art of sxkz is结构体声明signal cllk:std_logic;begin pro

13、cess(clk_in,clr,chose_key)is 进程 variable temp:std_logic_vector(0 to 2); 定义一个变量beginif clr=1 then cllk=0;temp:=000”; -复位初始化elsif rising_edge (clk_in) then if chose_key=1 then 按键按下,高速时if temp=”011” then -输出时钟信号T为输入信号的8倍temp:=”000”;cllk=not cllk;else temp:=temp+1;end if;else if temp=”111 then -按键没按下,低速

14、时temp:=000;输出时钟信号T为输入信号的cllk=not cllk; 16倍else temp:=temp+1; end if; end if; end if;end process;clk=cllk;end art;生成的元器件符号SYMBOL:图5.2 时序控制器5.2。2,显示控制器:XSKZlibrary ieee;use ieee.std_logic_1164。all;entity xskz isport( clk:in std_logic;clr:in std_logic;led:out std_logic_vector(0 to 15) 彩灯输出,控制端口);end en

15、tity;architecture art of xskz istype state is(s0,s1,s2,s3,s4,s5,s6); 定义一组状态机 signal current_state:state; signal flower:std_logic_vector(15 downto 0); -定义一信号 begin process(clr,clk) isconstant f1:std_logic_vector(0 to 15):=”0001000100010001; constant f2:std_logic_vector(0 to 15):=1010101010101010”; co

16、nstant f3:std_logic_vector(0 to 15):=”0011001100110011; constant f4:std_logic_vector(0 to 15):=”0100100100100100; constant f5:std_logic_vector(0 to 15):=”1001010010100101; constant f6:std_logic_vector(0 to 15):=”1101101101100110”;-定义一组彩灯的花式.beginif clr=1 then current_state=s0; -判断复位信号,有则复elsif risin

17、g_edge(clk) then 位状态为0,否则等待case current_state is时钟信号的上升沿when s0=flower=”0000000000000000”; 初始状态current_state=s1; -一个时钟上升沿,将当前状态指向下一个状态when s1=flower=f1;current_state=s2;when s2=flower=f2;current_state=s3;when s3=flower=f3;current_state=s4;when s4=flower=f4;current_state=s5;when s5=flower=f5;current_

18、stateflower=f6;current_state=s1; -返回第一个状态,实现循环end case;end if;end process;led=flower;end architecture;flower=f3;current_state=s4;when s4=flower=f4;current_state=s5;when s5=flowerflower=f6;current_state=s1; -返回第一个状态,实现循环end case;end if;end process;led=flower;end architecture;生成元器件符号:SYMBOL图5。3 显示控制器5

19、。2。3彩灯控制器:CDKZlibrary ieee;use ieee。std_logic_1164.all;use ieee。std_logic_unsigned.all;entity cdkz2 is实体port(clkin:in std_logic;-端口定义clr:in std_logic;chose_key:in std_logic;led:out std_logic_vector(0 to 15));end entity;architecture art of cdkz2 is -结构体component sxkz is 元件例化sxkzport(chose_key:in std_

20、logic;clk_in:in std_logic;clr:in std_logic;clk:out std_logic);end component sxkz;component xskz is元件例化xskzport(clk:in std_logic;clr:in std_logic;led:out std_logic_vector(0 to 15));end component xskz;signal s0:std_logic; 定义一个信号beginu1:sxkz port map(chose_key,clkin,clr,s0);u2:xskz port map(s0,clr,led)

21、;end architecture;彩灯控制器SYMBOL:图5.4 彩灯控制器图5。5 RTL六、仿真调试分析start compilation先编译generate functional simulation netlist然后生成功能仿真网络表assignmentssetting-simulation setting设置成功能仿真然后新建一个vector waveform file 通过viewutility windows-node finder 把输入输出管脚添加进波形仿真图里 点击start simulation6.1时序控制器波形仿真:图6。1输入信号图6.2 输出波形6。2显示

22、控制器波形仿真:图6。3输入信号图6。4 输出波形6。3彩灯控制器波形仿真:图6。5 Chose_key为0时图6.6 Chose_key为1时七、设计中的问题及解决方法实验表明 ,此设计方法能够满足多种不同花样彩灯的变化要求 ,并且该方法便于扩展不同变化模式的彩灯花样,同时又实现了彩灯的两种不同频率的闪烁。如果不按任何按键时候,灯就按四种花样顺序循环跑,如果按下某个键再松开,比如按下C键然后松开,那么不管之前灯跑到哪个花样,按键后灯就会从C代表的花样处开始跑,然后是D花样,然后是A花样,依次循环。但是A,B,C,D认为是按下会弹起的按键,因为这个程序里,如果一直按着按键不松手,会导致灯只是反

23、复跑一个花样。比如按着B键不松手,那么就会反复跑B花样。还有不能允许同时按下两个键,三个键,4个键,也就是说,同一时刻ABCD只能有一个是高电平,否则会出错,因为这个程序并没有防错机制.八、心得体会:本次设计的课题是彩灯控制器,这个课题是自己选择然后经过老师审核的题目,因为在大一的时候经常编写类似的程序,所以自己对这类的程序编写和设计是比较熟练的。这个题目关键是计数器和分频器的使用,分频的方法有很多种,对于同一种功能的实现,用VHDL可以采用多种方式进行描述,每种方式之间各有优劣,本次设计只采用了其中较简单的一种,应尽量用最简洁的语言写出所需功能的程序。通过这次课程设计对EDA技术有了更进一步

24、的熟悉,VHDL语言和语言等其他语言还是有很大的区别。VHDL是EDA技术的重要组成部分,其具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。其主要的也是最大的优点就在于设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。在实际操作中发现设计和课本上的知识有很大联系,但又高于课本,因此我们必须先把课本上的基础知识巩固好,才能在实际中更加熟练的应用。一个简单的原理要把它应用以及和其他功能综合起来就有些困难。所以,课本上的知识是实际运用的基础,我们

25、务必认真学习!九、主要参考文献:【1】谭会生、张昌凡 EDA技术及应用 西安电子科技大学出版社 2002。8【2】张洪润、张亚凡 FPGA/CPLD应用设计200例 北京航空航天大学出版社 2007.2【3】王刚、张潋 基于FPGA的SOPC嵌入式系统设计与典型实例 电子工业出版社 2009。1【4】周润景。基于Quartus的FPGA/CPLD数字系统设计实例M.西安:电子工业出版社,2007,8【5】潘松 黄继业。EDA技术实用教程(第二版)M。北京:科学出版社,2006。9【6】林明权 马维旻。 VHDL数字控制系统设计范例M。西安:电子工业出版社,2003。1【7】褚振勇. FPGA设计及应用(第三版)M。西安:电子科技大学出版社,2012。4【8】张毅刚 彭喜元 彭宇.单片机原理及应用(第二版)M。北京:高等教育出版社,2009。11- - 9 - -

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服