基于VHDL实现多路彩灯控制器设计应用 - 范文中心

基于VHDL实现多路彩灯控制器设计应用

02/13

基于

VHDL实现多路彩灯控制器设计应用 关键词: VHDL 彩灯 控制 07通信工程本科班 沈治文

摘要:设计一个彩灯控制程序器。可以实现四种花型循环变化,有复位开关。整个系统共有三个输入信号CLK,RST,Sel,八个输出信号控制八个彩灯。时钟信号CLK脉冲由系统的晶振产生。各种不同花样彩灯的变换由Sel控制.此彩灯控制系统设定有四种花样变化,这四种花样可以进行切换,四种花样分别为:

(1) 彩灯从左到右逐次闪亮。

(2)彩灯从左向右逐次点亮,且亮后不熄灭。

(3) 彩灯两边同时亮两个,然后逐次向中间点亮。

(4) 全部彩灯亮与熄灭交替。

Abstract: The design of a control program Lantern device. Four kinds of flowers can be achieved circulation change, reset switch. The whole system has three input signals CLK, RST, Sel, 8 output signal control 8 lights. The clock signal CLK pulses generated by the system of the crystal. Lanterns of different patterns of transformation controlled by Sel. The lights control system configuration there are four patterns change, four kinds of patterns can be switched, four kinds of patterns are as follows:

(1) successive flashing lights from left to right.

(2) successive lantern lit from left to right, and the light is not extinguished after.

(3) The two bright lights on both sides at the same time, and then successively to the center light.

(4) All lights turn bright and quenching

在日常生活中,为了增加聚会或是过节氛围,经常要使用到彩灯循环点亮。单一的循环可能无法起到理想的效果,通过不同花样的变换则能够很好的完成任务。多路彩灯循环控制可以有多种实现方法,例如利用单片机可以实现,利用数字电路时序逻辑也可以实现。我们这里利用VHDL语言实现对多路彩灯的控制。

彩灯的一种点亮方式经过足够长的延时后,转变为了其他的点亮方式。这就需要一个CLK信号完成,CLK信号可以由晶体振荡器或者是振荡电路产生。至于各种不同花样彩灯的变换,我们可以通过增加输入信号Sel来控制。Sel为两位二进制数,分别为00,01,10,11,四种状态对应四种花样。同时系统还需一个复位信号实现对电路的清零控制。输出八位彩灯,我们这里用LED发光二极管代替。当电路输出为“1”时,LED点亮。当电路输出为“0”时,LED熄灭。

利用VHDL语言实现该功能程序如下:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY color8 IS

PORT(cLK,rst:IN std_LOGIC;

sel:in std_LOGIC_VECTOR(1 DOWNTO 0);

abc:OUT std_LOGIC_VECTOR(7 DOWNTO 0) );

END color8;

ARCHITECTURE color OF color8 IS

TYPE state_1 IS (s0,s1,s2,s3,s4,s5,s6,s7);

SIGNAL state_2:state_1;

BEGIN

pr_1:PROCESS (cLK,rst)

BEGIN

IF rst='1' THEN state_2

ELSIF cLK'event AND cLK='1' THEN

CASE state_2 IS

WHEN s0=> state_2

WHEN s1=> state_2

WHEN s2=> state_2

WHEN s3=> state_2

WHEN s4=> state_2

WHEN s5=> state_2

WHEN s6=> state_2

WHEN s7=> state_2

END CASE;

END IF;

END PROCESS pr_1;

pr_2:PROCESS(sel,state_2)

BEGIN

if sel="00" then

CASE state_2 IS

WHEN s0=> abc

WHEN s1=> abc

WHEN s2=>abc

WHEN s3=> abc

WHEN s4=> abc

WHEN s5=> abc

WHEN s6=> abc

WHEN s7=> abc

END CASE;

elsif sel="01" then

CASE state_2 IS

WHEN s0=> abc

WHEN s1=> abc

WHEN s2=> abc

WHEN s3=> abc

WHEN s4=> abc

WHEN s5=> abc

WHEN s6=> abc

WHEN s7=> abc

END CASE;

elsif sel="10" then

CASE state_2 IS

彩灯从左到右逐次闪亮 彩灯从左向右逐次点亮,且亮后不熄灭 彩灯两边同时亮两个,然后逐次向中间点亮

WHEN s0=> abc

WHEN s1=> abc

WHEN s2=> abc

WHEN s3=> abc

WHEN s4=> abc

WHEN s5=> abc

WHEN s6=> abc

WHEN s7=> abc

END CASE;

elsif sel="11" then 全部彩灯亮与熄灭交替

CASE state_2 IS

WHEN s0=> abc

WHEN s1=> abc

WHEN s2=> abc

WHEN s3=> abc

WHEN s4=> abc

WHEN s5=> abc

WHEN s6=> abc

WHEN s7=> abc

END CASE;

end if;

END PROCESS pr_2;

END color;

本控制电路采用VHDL语言设计。运用自顶而下的设计思想,按功能逐层分割实现层次化设计。根据多路彩灯控制器的设计原理,将整个控制器分为四个部分,分别对应彩灯的四种变化模式。考虑到程序比较长,本电路利用状态机的VHDL设计来简化,使得程序层次分明,可读性更强。使用TYPE语句定义state_1为s0到s7八种状态。主控时序进程将state_1的内容送给state_2,主控组合进程通过信号state_2中的状态值,进入相应的状态。在进程一中,首先用TYPE语句定义数据对象,以及个状态之间的转化情况。在进程二中,在IF语句中嵌套CASE语句。在IF语句中,规定四种花样,即用SEL=00表示花色的第一种点亮方式,对应SEL=01,10,11分别表示花色的第二,第三和第四种点亮方式。在CASE语句中,输出八位彩灯的状态用八位二进制数据来代替。彩灯从左到右逐次闪亮,即使为1的为右移。彩灯从左向右逐次点亮,且亮后不熄灭,即从左向右逐渐将0转变为1。彩灯两边同时亮两个,然后逐次向中间点亮,即两1为逐渐向内移动。全部彩灯亮与熄灭交替,即全为1与全为0之间的转变。

各模块VHDL程序经过编译优化后,选择合适的目标芯片进行综合、仿真,管脚配置以及编程下载,实现硬件模拟。本电路选用公司的可编程逻辑芯片,由Quartus II进行仿真.下面是四种花色的仿真波形。

图形编号(1)

当Sel全为00时

当Sel全为01时

图形编号(2)

图形编号(3)

当Sel全为10时

图形编号(4)

当Sel全为11时

图形编号(5)

从仿真波形可以看出,此程序可以实现四种不同花样彩灯的相互变换,每种花样彩灯可以循环变化。然后就可以实现程序下载和硬件测试。主频时钟clk接CLOCK0(第91脚),但是如果系统的固有频率很大,彩灯的闪烁速度非常快,看到的现象是每个花样的八个彩灯同时被点亮,为了实现绚丽多彩的景象,选择不同的频率(在1Hz--46Hz之间选择)能使彩灯点亮速度适宜。复位RST和Sel的高位与地位分别接三个键控。输出八位彩灯分别对应接八个LED发光二极管。编程下载后,拨动Sel的高位与地位观察能否实现四种花色的循环。本次设计的程序已经在硬件系统上得到了验证,实验表明。此设计方法能够满足四种不同花样彩灯的变化要求,并且该方法便于扩展不同变化模式的彩灯花样,各个不同花样的相互转变是手动切换实现的。

实验结果与理论结果相一致,能够实现八位彩灯循环控制,达到实验预期目的。通过本次试验,可以加深对有限状态机的理解。在程序中运用CASE语句,巩固对其掌握。在程序中,实现四种花样的转化时遇到一些问题,即SEL的运用,通过与同学的交流以及上网查询,最终克服困难实现功能。

参考文献:

潘松 黄继业 科学出版社 EDA技术实用教程 2006年9月第三版


相关内容

  • 电子设计自动化技术课件答案
    第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系? P3~4 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的主流器件.FPGA和CPLD通常也被称为可编 ...
  • 出租车计费器的设计
    EDA 课 程 设 出租车计费器的设计 小组成员:XXX 计 目录 摘要................................................................ 3 关键词.............. ...
  • 汽车总线系统通信协议分析与比较
    河南机电高等专科学校 <汽车单片机与局域网技术> 大作业 专业班级: 姓 名: 学 号: 成 绩: 指导老师: 2013年4月16日 汽车总线系统通信协议分析与比较 摘要:本文主要针对汽车总线系统通讯协议,探讨汽车总线通讯协议的 ...
  • 交流电量同步采集
    河南机电高等专科学校 毕业设计(论文) 交流电量同步采集 系 部: 自动控制系 专 业: 电气自动化 班 级: xxxxx xx 姓 名: xxxx xxx xx 学 号: xxx xxx xx x 指导老师: xxx 二零一二年五月 第一 ...
  • 自动售货机控制系统
    Xuzhou Institute of Technology 可编程器件及应用 课程设计报告 设计名称: 自动售货机控制系统 学 院: 信电工程学院 专业班级: 13电信 学生姓名: 学 号: 指导教师: 贾燕玲 2016 年 6 月 30 ...
  • EDA实验七人表决器的操作步骤
    写出了综合设计的第一个实验的详细步骤,主要是介绍用QuartusII 软件设计由多个模块构成的数字系统的主要步骤,及注意事项.希望对前几个实验未能完全掌握的同学有所帮助. 3.3.2实验内容 基于QuartusII 软件及VHDL 语言实现 ...
  • 加法器实验报告
    实验三 加法器的设计与仿真 一.实验目的 熟悉quartus ⅱ仿真软件的基本操作,用逻辑图和vhdl 语言设计加法器并验证. 二.实验内容 1.熟悉quartus ⅱ软件的基本操作,了解各种设计输入方法(原理图设计.文本设计. 波形设计) ...
  • 雷达检测波门的设计方法与原理_于振华
    第25卷第5期舰船电子对抗2002, 25(5) :29-31 雷达检测波门的设计方法与原理 于振华 (船舶重工集团公司723所, 扬州225001) 摘要 主要介绍了雷达检测波门总的设计方法与原理, 以及用F L EX10K 系列的PL ...
  • 监控系统技术参数
    第五章 技术要求 (1)摄像机 高清红外网络球型摄像机:按现场情况实际需要,选用高清网络红外球型摄像机,该摄像机带网络模块.变焦镜头.高速预制云台.智能解码控制器.高分辨.带红外灯, 确保能清晰监视各监控点图像. 高清红外网络枪型摄像机:按 ...
  • 乒乓球游戏机(1)
    <EDA设计与应用> 课程设计报告 题 目: 乒乓球游戏机 姓 名: 专 业: 班 级: 学 号: 指导教师: 二0一五年6月26日 目录 1.设计目的 --------------------.1 2.设计原理 ------- ...