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

下载本文档

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

文档简介

基于VHDL彩灯控制器的设计物理与电子工程学院 陈辉摘要:本文介绍了以VHDL为基础的彩灯控制系统的设计,实现了多种花型的循环变化,并且可以对彩灯变换频率进行人为设定。本设计简单可靠,有较高的灵活性及实用价值。关键词:VHDL,彩灯控制Lantern controller design based on VHDLAbstract: This paper introduces the Lantern VHDL-based control system design, to achieve a variety of changes in circulation patterns, and can change the frequency of artificial lights. At the same time the design is simple and reliable, has high flexibility and practical valueKeyword:VHDL,lantern contral1.设计原理本设计首先进行系统模块的划分,规定每一个模块的功能以及各模块之间的接口,最终将设计方案分为三大模块:四频率输出分频器,四选一控制器,8样彩灯控制器。四选一控制器从分频器中选择不同频率的时钟信号输送到彩灯花样控制器,从而达到控制彩灯闪烁速度的快慢和花型的的变换。本文充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,从简单的单元入手,逐渐构成复杂的系统。顶层模块原理图见图1-1-1。图1-1-1 顶层设计原理图经过波形仿真,此设计符合设计要求。仿真波形见图1-1-2。其中clk为输入时钟,rst为复位信号,高电平有效,f_chose为频率选择输入,f_ch为当前频率检测,led8为8路彩灯的控制信号。当f_chose输入高脉冲时,控制信号频率发生变化,且8路彩灯的控制信号按照设定要求四种花型循环变化。 图1-1-2顶层设计仿真波形2.子模块及其功能2.1四频率输出分频器根据要求有4种速度的变化,而只有一个输入的时钟信号,所以要对输入的时钟信号进行分频,本次设计采用了二分频、四分频、八分频和16分频得到4种频率信号。二分频VHDL代码如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport( clk,rst: in std_logic; clk1:out std_logic );end fenpin;architecture behav of fenpin isbeginprocess(clk,rst)variable q1:std_logic_vector(3 downto 0);beginif rst=1then q1:=(others=0); elsif clkevent and clk=1then if q10); end if;end if;if q1=0001 then clk1=1; else clk1=0;end if;end process;end behav;将二分频代码设置成可调用的元件,以便在四频率输出分频器中使用。我们采用原理图输入的设计方法,设计四频率输出分频器。原理图见图2-1。图2-1-1四频率输出分频器原理图将此文件生成元件符号存盘,见图2-2图2-1-2四频率输出分频器模块符号经过时序仿真后,设计符合要求。仿真波形见图2-3。 图2-1-3四频率输出分频器仿真波形2.2四选一控制器四选一控制器的功能是从分频器中选择不同的时钟信号送给彩灯控制器,实现彩灯闪烁频率的变化,源代码如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mus41 isport( f_chose,rst,clk1,clk2,clk3,clk4:in std_logic; z:out std_logic);end mus41;architecture behave of mus41 issignal s:std_logic_vector( 1 downto 0);beginone:process(f_chose)beginif rst=1 then s=00;elsif f_choseevent and f_chose=1thenszzzzz=null;end case;end process two;end behave f_chose为频率选择端,每输入一次高脉冲,频率便改变一次,可以通过按键输入高脉冲来实现四种频率的循环选择。仿真波形见图2-2-1。 图2-2-1四选一控制器仿真波形 图2-2-2四选一控制器模块符号2.3彩灯控制器彩灯控制器电路是整个设计的核心,它控制整个设计的输出效果也就是图案的样式变化。在电路中用1代表灯亮,用O代表灯灭,由0,1按不同的规律组合代表不同的灯光图案,同时使其选择不同的频率,以实现多种图案及多种频率的花样功能显示。该程序充分证明了用VHDL设计电路的灵活性,即可以通过改变程序中输出变量的位数来改变彩灯的数目。 彩灯控制器的第1种花样为彩灯从右到左,然后从左到右逐次点亮,全灭全亮,第2种花样为彩灯两边同时亮1个逐次向中间移动再散开;第3种花样为彩灯两边同时亮2个逐次向中间移动再散开;第4种花样为彩灯两边同时亮3个,然后4亮4灭,4灭4亮,最后1灭1亮。多个花样自动变换,循环往复。程序代码如下。Library ieee;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;entity caideng isport(clk,reset :in std_logic; q:out std_logic_vector(7 downto 0);end;architecture a of caideng issignal s:std_logic_vector(4 downto 0);beginprocess(s,clk)beginif reset=1 then s=00000;elsif clkevent and clk= 1 thenif s=11111 thens=00000;else sqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqnull;end case;end if;end process;end;仿真波形见图2-3-1图2-3-1彩灯控制器仿真波形图2-3-2彩灯控制器模块符号3.结语本文以Quartus为平台,使用VHDL语言设计电路,思路简单,功能明了。经过硬件下载测试,此设计符合设计要求。使用VHDL语言设计电路不仅可以进行逻辑仿真,还可以进行时序仿真,使用PLD不仅省去了电路制作的麻烦,还

温馨提示

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

评论

0/150

提交评论