《EDA多路彩灯控制器的设计与分析.pptx》由会员分享,可在线阅读,更多相关《EDA多路彩灯控制器的设计与分析.pptx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.1 系统设计要求 今需设计一个十六路彩灯控制器,6种花型循环变化,有清零开关,并且可以选择快慢两种节拍。第1页/共26页2.2 系统设计方案 根据系统设计要求可知,整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED15.0,分别用于控制十六路彩灯。据此,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ和显示控制电路XSKZ,整个系统的组成原理图如图2.1所示。第2页/共26页图2.1 彩灯控制器组成原理图 第3页/共26页2.3 主要VHDL源程序 2.3.1 时序控制
2、电路的VHDL源程序-SXKZ.VHDLIBRARY 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;第4页/共26页 CLR:IN STD_LOGIC;CLK:OUT STD_LOGIC);END ENTITY SXKZ;ARCHITECTURE ART OF SXKZ IS SIGNAL CLLK:STD_LOGIC;BEGIN PROCESS(CLK_IN,CLR,CHOSE_KEY
3、)IS VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN IF CLR=1 THEN -当CLR=1时清零,否则正常工作第5页/共26页 CLLK=0;TEMP:=000;ELSIF RISING_EDGE(CLK_IN)THEN IF CHOSE_KEY=1 THEN IF TEMP=011 THEN TEMP:=000;CLLK=NOT CLLK;ELSE TEMP:=TEMP+1;END IF;第6页/共26页-当CHOSE_KEY=1时产生基准时钟频率的1/4的时钟信号,否则产生基准时钟 -频率的1/8的时钟信号 ELSE IF TEMP
4、=111 THEN TEMP:=000;CLLK=NOT CLLK;ELSE第7页/共26页 TEMP:=TEMP+1;END IF;END IF;END IF;END PROCESS;CLK=CLLK;END ARCHITECTURE ART;第8页/共26页2.3.2 显示控制电路的VHDL源程序-XSKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XSKZ IS PORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END ENT
5、ITY XSKZ;ARCHITECTURE ART OF XSKZ IS第9页/共26页 TYPE STATE IS(S0,S1,S2,S2,S4,S5,S6);SIGNAL CURRENT_STATE:STATE;SIGNAL FLOWER:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN PROCESS(CLR,CLK)IS第10页/共26页 CONSTANT F1:STD_LOGIC_VECTOR(15 DOWNTO 0):=0001000100010001;CONSTANT F2:STD_LOGIC_VECTOR(15 DOWNTO 0):=10101010101
6、01010;CONSTANT F2:STD_LOGIC_VECTOR(15 DOWNTO 0):=0011001100110011;CONSTANT F4:STD_LOGIC_VECTOR(15 DOWNTO 0):=0100100100100100;CONSTANT F5:STD_LOGIC_VECTOR(15 DOWNTO 0):=1001010010100101;CONSTANT F6:STD_LOGIC_VECTOR(15 DOWNTO 0):=1101101101100110;第11页/共26页-六种花型的定义 BEGIN IF CLR=1 THEN CURRENT_STATE FL
7、OWER=ZZZZZZZZZZZZZZZZ;CURRENT_STATE FLOWER=F1;CURRENT_STATE FLOWER=F2;CURRENT_STATE FLOWER=F2;CURRENT_STATE FLOWER=F4;CURRENT_STATE FLOWER=F5;第13页/共26页 CURRENT_STATE FLOWER=F6;CURRENT_STATE=S1;END CASE;END IF;END PROCESS;LED=FLOWER;END ARCHITECTURE ART;第14页/共26页2.3.3 整个电路系统的VHDL源程序-CDKZQ.VHDLIBRARY
8、IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CDKZQ IS PORT(CLK_IN:IN STD_LOGIC;CLR:IN STD_LOGIC;CHOSE_KEY:IN STD_LOGIC;LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY CDKZQ;第15页/共26页ARCHITECTURE ART OF CDKZQ IS COMPONENT SXKZ IS PORT(CHOSE_KEY:IN STD_LOGIC;CLK_IN:IN STD_LOGIC;CLR:IN STD_LOGIC;CLK:OUT ST
9、D_LOGIC);END COMPONENT SXKZ;COMPONENT XSKZ IS PORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;第16页/共26页 LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END COMPONENT XSKZ;SIGNAL S1:STD_LOGIC;BEGIN U1:SXKZ PORT MAP(CHOSE_KEY,CLK_IN,CLR,S1);U2:XSKZ PORT MAP(S1,CLR,LED);END ARCHITECTURE ART;第17页/共26页2.4 系统仿真/硬件验证 2.4.1 系
10、统的有关仿真 时序控制电路SXKZ、显示控制电路XSKZ及整个电路系统CDKZQ的仿真图分别如图2.2、图2.3和图2.4所示。第18页/共26页图2.2 时序控制电路SXKZ仿真图第19页/共26页图2.3 显示控制电路XSKZ仿真图 第20页/共26页图2.4 整个电路系统CDKZQ仿真图 第21页/共26页 2.4.2 系统的硬件验证 系统通过仿真后,我们可根据自己所拥有的EDA实验开发系统进行编程下载和硬件验证。考虑到一般EDA实验开发系统提供的输出显示资源有限,我们可将输出适当调整后进行硬件验证。第22页/共26页2.5 设计技巧分析 (1)在时序控制电路SXKZ的设计中,利用计数器
11、计数达到分频值时,对计数器进行清零,同时将输出信号反向,这就非常简洁地实现了对输入基准时钟信号的分频,并且分频信号的占空比为0.5。第23页/共26页 (2)在显示控制电路XSKZ的设计中,利用状态机非常简洁地实现了六种花型的循环变化,同时利用六个十六位常数的设计,可非常方便地设置和修改六种花型。(3)对于顶层程序的设计,因本系统模块较少,既可使用文本的程序设计方式,也可使用原理图的设计方式。但对于模块较多的系统,最好使用文本的程序设计方式。第24页/共26页2.6 系统扩展思路 (1)在彩灯的快慢节奏的控制上,若去掉快慢节奏控制开关,如何控制快慢节奏的交替变化。(2)设计外围电路:系统用方波信号源、直流工作电源、彩灯控制的驱动电路。(3)若为课程设计,除要求设计调试程序、外围电路外,还可要求设计、制作整个系统,包括PCB的制作。第25页/共26页谢谢您的观看!第26页/共26页