EDA大三课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一,课件

今需设计一个十六路彩灯控制器,6种花型循环变化,有清零开关,并且可以选择快慢两种节拍。

根据系统设计要求可知,整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED[15..0],分别用于控制十六路彩灯。

据此,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ 和显示控制电路XSKZ,整个系统的组成原理图如图2.1所示。

2.3.1时序控制电路的VHDL源程序

--SXKZ.VHD

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 SXKZ;

ARCHITECTURE ART OF SXKZ IS

SIGNAL CLLK:STD_LOGIC;

BEGIN

PROCESS(CLK_IN,CLR,CHOSE_KEY)IS

VARIABLE TEMP:STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

IF CLR='1'THEN--当CLR='1'时清零,否则正常工作

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;

--当CHOSE_KEY='1'时产生基准时钟频率的1/4的时钟信号,否则产生基准时钟--频率的1/8的时钟信号

ELSE

IF TEMP="111"THEN

TEMP:="000";

CLLK<=NOT CLLK;

ELSE

TEMP:=TEMP+'1';

END IF;

END IF;

END IF;

END PROCESS;

CLK<=CLLK;

END ARCHITECTURE ART;

2.3.2显示控制电路的VHDL源程序

--XSKZ.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY XSKZ IS

PORT(CLK:IN STD_LOGIC;

CLR:IN STD_LOGIC;

LED:OUT STD_LOGIC_VECTOR(15DOWNTO0));

END ENTITY XSKZ;

ARCHITECTURE ART OF XSKZ IS

TYPE STATE IS(S0,S1,S2,S2,S4,S5,S6);

SIGNAL CURRENT_STATE:STATE;

SIGNAL FLOWER:STD_LOGIC_VECTOR(15DOWNTO0);

BEGIN

PROCESS(CLR,CLK)IS

CONSTANT F1:STD_LOGIC_VECTOR(15DOWNTO0):="0001000100010001";

CONSTANT F2:STD_LOGIC_VECTOR(15DOWNTO0):="1010101010101010";

CONSTANT F2:STD_LOGIC_VECTOR(15DOWNTO0):="0011001100110011";

CONSTANT F4:STD_LOGIC_VECTOR(15DOWNTO0):="0100100100100100";

CONSTANT F5:STD_LOGIC_VECTOR(15DOWNTO0):="1001010010100101";

CONSTANT F6:STD_LOGIC_VECTOR(15DOWNTO0):="1101101101100110"; --六种花型的定义

BEGIN

IF CLR='1'THEN

CURRENT_STATE<=S0;

ELSIF RISING_EDGE(CLK)THEN

CASE CURRENT_STATE IS

WHEN S0=>

FLOWER<="ZZZZZZZZZZZZZZZZ";

CURRENT_STATE<=S1;

WHEN S1=>

FLOWER<=F1;

CURRENT_STATE<=S2;

WHEN S2=>

FLOWER<=F2;

CURRENT_STATE<=S2;

WHEN S2=>

FLOWER<=F2;

CURRENT_STATE<=S4;

WHEN S4=>

FLOWER<=F4;

CURRENT_STATE<=S5;

WHEN S5=>

FLOWER<=F5;

2.3.3整个电路系统的VHDL源程序

--CDKZQ.VHD

LIBRARY 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(15DOWNTO0));

END ENTITY CDKZQ;

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 STD_LOGIC);

END COMPONENT SXKZ;

COMPONENT XSKZ IS

PORT(CLK:IN STD_LOGIC;

CLR:IN STD_LOGIC;

LED:OUT STD_LOGIC_VECTOR(15DOWNTO0));

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;

2.4.1系统的有关仿真

时序控制电路SXKZ、显示控制电路XSKZ及整个电路系统CDKZQ的仿真图分别如图2.2、图2.3和图2.4所示。

2.4.2系统的硬件验证

系统通过仿真后,我们可根据自己所拥有的EDA实验开发系统进行编程下载

相关文档
最新文档