EDA课程设计:八路彩灯控制器

  • 格式:doc
  • 大小:227.00 KB
  • 文档页数:10

下载文档原格式

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

EDA课程设计

设计题目:基于VHDL的8路彩灯控制器设计

一、课程设计的目的

1.熟悉QuartusⅡ软件的使用方法,使用VHDL 文本输入设计法进行任务设计。

2.增强自己实际动手能力,独立解决问题的能力。

3.通过课程设计对所学的知识进行更新及巩固.

二、课程设计的基本要求

本次课程设计是设计一个8路彩灯控制器,能够控制8路彩灯按照两种节拍,三种花型循环变化。设计完成后,通过仿真验证与设计要求进行对比,检验设计是否正确。

三、课程设计的内容

编写硬件描述语言VHDL程序,设计一个两种节拍、三种花型循环变化的8路彩灯控制器,两种节拍分别为和。三种花型分别是:

(1)8路彩灯分成两半,从左至右顺次渐渐点亮,全亮后则全灭。

(2)从中间到两边对称地渐渐点亮,全亮后仍由中间向两边逐次熄灭。

(3)8路彩灯从左至右按次序依次点亮,全亮后逆次序依次熄灭。

四、实验环境

PC机一台;软件QuartusⅡ

五、课程设计具体步骤及仿真结果

1、系统总体设计框架结构

分频模块:把时钟脉冲二分频,得到另一个时钟脉冲,让这两种时钟脉冲来交替控制花型的速度。

二选一模块:选择两种频率中的一个控制彩灯的花型。

8路彩灯的三种花型控制模块:整个系统的枢纽,显示彩灯亮的情况。

2、系统硬件单元电路设计

1.分频模块设计

实验程序:library ieee;

use fenpin2 is

port( clk:in std_logic;

clkk:out std_logic);

end fenpin2;

architecture behav of fenpin2 is

begin

process(clk)

variable clkk1:std_logic:='0';

begin

if clk'event and clk='1' then clkk1:= not clkk1; end if;

clkk<=clkk1;

end process;

end behav;

RTL电路图:

波形图:

2.二选一模块设计

实验程序:library ieee;

use mux21 is

port(a,b,s:in std_logic;

y:out std_logic);

end mux21;

architecture behave of mux21 is begin

process(a,b,s)

begin

if s='0' then y<=a;

else y<=b;

end if;

end process;

end behave;

RTL电路图:

波形图:

路彩灯的三种花型控制模块设计

程序: l ibrary ieee;

use color8 is

port(clk,rst :in std_logic;

q:out std_logic_vector(7 downto 0)); end;

architecture a of color8 is

signal s:std_logic_vector(4 downto 0); begin

process(s,clk)

begin

if rst='1' then s<="00000";

elsif clk'event and clk= '1' then

if s="11111" then

s<="00000";

else s<=s+1;

end if;

case s is

when "00000"=>q<="00000000";

when "00001"=>q<="";

when "00010"=>q<="";

when "00011"=>q<="";

when "00100"=>q<="";

when "00101"=>q<="00000000";

when "00110"=>q<="00011000";

when "00111"=>q<="00111100";

when "01000"=>q<="01111110";

when "01001"=>q<="";

when "01010"=>q<="";

when "01011"=>q<="";

when "01100"=>q<="";

when "01101"=>q<="00000000";

when "01110"=>q<="";

when "01111"=>q<="";

when "10000"=>q<="";

when "10001"=>q<="";

when "10010"=>q<="";

when "10011"=>q<="";

when "10100"=>q<="";

when "10101"=>q<="";

when "10110"=>q<="";

when "10111"=>q<="";

when "11000"=>q<="";

when "11001"=>q<="";

when "11010"=>q<="";

when "11011"=>q<="";

when "11100"=>q<="";

when "11101"=>q<="00000000"; when others=>null;

end case;

end if;

end process; end;

RTL电路图: