EDA课程设计之八路彩灯控制系统

合集下载

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

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

EDA课程设计:八路彩灯控制器第一篇:EDA课程设计:八路彩灯控制器EDA课程设计设计题目:基于VHDL的8路彩灯控制器设计一、课程设计的目的1.熟悉QuartusⅡ软件的使用方法,使用VHDL 文本输入设计法进行任务设计。

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

3.通过课程设计对所学的知识进行更新及巩固.二、课程设计的基本要求本次课程设计是设计一个8路彩灯控制器,能够控制8路彩灯按照两种节拍,三种花型循环变化。

设计完成后,通过仿真验证与设计要求进行对比,检验设计是否正确。

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

三种花型分别是:(1)8路彩灯分成两半,从左至右顺次渐渐点亮,全亮后则全灭。

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

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

四、实验环境PC机一台;软件Quartu sⅡ6.0五、课程设计具体步骤及仿真结果1、系统总体设计框架结构分频模块:把时钟脉冲二分频,得到另一个时钟脉冲,让这两种时钟脉冲来交替控制花型的速度。

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

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

2、系统硬件单元电路设计1.分频模块设计实验程序:library ieee;use ieee.std_logic_1164.all;entity fenpin2 isport(clk:in std_logic;clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is beginprocess(clk)variable clkk1:std_logic:='0';beginif clk'event and clk='1' thenclkk1:= not clkk1;end if;clkk<=clkk1;end process;end behav;RTL电路图:波形图:2.二选一模块设计实验程序:library ieee;use ieee.std_logic_1164.all;entity 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电路图:波形图:3.8路彩灯的三种花型控制模块设计程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity 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” thens<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when“00001”=>q<=“10001000”;when“00010”=>q<=“11001100”;when“00011”=>q<=“11101110”;when “00100”=>q<=“11111111”;when “00101”=>q<=“00000000”;when“00110”=>q<=“00011000”;when“00111”=>q<=“00111100”;when“01000”=>q<=“01111110”;when“01001”=>q<=“11111111”;when“01010”=>q<=“11100111”;when“01011”=>q<=“11000011”;when“01100”=>q<=“10000001”;when“01101”=>q<=“00000000”;when“01110”=>q<=“10000000”;when“01111”=>q<=“11000000”;when“10000”=>q<=“11100000”;when“10001”=>q<=“11110000”;when“10010”=>q<=“11111000”;when“10011”=>q<=“11111100”;when“10100”=>q<=“11111110”;when“10101”=>q<=“11111111”;when“10110”=>q<=“11111110”;when“10111”=>q<=“11111100”;w hen“11000”=>q<=“11111000”;when“11001”=>q<=“11110000”;when“11010”=>q<=“11100000”;when“11011”=>q<=“11000000”;when“11100”=>q<=“10000000”;when“11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;RTL电路图:波形图:4.综合程序library ieee;use ieee.std_logic_1164.all;entity fenpin2 isport(clk:in std_logic;clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is beginprocess(clk)variable clkk1:std_logic:='0';beginif clk'event and clk='1' thenend if;clkk<=clkk1;end process;end behav;library ieee;use ieee.std_logic_1164.all;entity 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;library ieee;clkk1:= not clkk1;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity 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” thens<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when“00001”=>q<=“10001000”;when“00010”=>q<=“11001100”;when“00011”=>q<=“11101110”;when“00100”=>q<=“11111111”;when“00101”=>q<=“00000000”;when“00110”=>q<=“00011000”;when“00111”=>q<=“00111100”;when“01000”=>q<=“01111110”;when“01001”=>q<=“11111111”;when“01010”=>q<=“11100111”;when“01011”=>q<=“11000011”;when “01100”=>q<=“10000001”;when “01101”=>q<=“00000000”;when“01110”=>q<=“10000000”;when“01111”=>q<=“11000000”;when“10000”=>q<=“11100000”;when“10001”=>q<=“11110000”;when“10010”=>q<=“11111000”;when“10011”=>q<=“11111100”;when“10100”=>q<=“11111110”;when“10101”=>q<=“11111111”;when“10110”=>q<=“11111110”;when“10111”=>q<=“11111100”;when“11000”=>q<=“11111000”;when“11001”=>q<=“11110000”;when“11010”=>q<=“11100000”;when“11011”=>q<=“11000000”;when“11100”=>q<=“10000000”;when“11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity balucaideng is port(clk,s,rst:in std_logic;q:out std_logic_vector(7 downto 0));end;architecture one of balucaideng issignal h0,h1:std_logic;component fenpin2port(clk:in std_logic;clkk:out std_logic);end component;component mux21 port(a,b,s:in std_logic;y:out std_logic);end component;component color8 port(clk,rst :in std_logic;q:out std_logic_vector(7 downto 0));end component;begin u1: fenpin2 port map(clk=>clk,clkk=>h0);u2: mux21 port map(a=>h0,b=>clk,s=>s;y=>h1);u3: color8 port map(clk=>h1,rst=>rst,q=>q);end;波形图:六、实验总结第二篇:eda课程设计-彩灯控制器1.设计目的学习EDA开发软件和MAX+plus Ⅱ的使用方法,熟悉可编程逻辑器件的使用,通过制作来了解彩灯控制系统。

8彩灯控制器课程设计

8彩灯控制器课程设计

8彩灯控制器课程设计一、课程目标知识与理解:1. 学生能理解8彩灯控制器的基本原理,掌握其电路组成及功能。

2. 学生能描述8彩灯控制器的编程方法,了解与掌握相关编程语言的运用。

3. 学生了解8彩灯控制器在现实生活中的应用,认识到其在科技领域的重要性。

技能与运用:1. 学生能够独立完成8彩灯控制器的组装,并运用所学知识进行调试。

2. 学生能够运用编程语言对8彩灯控制器进行编程,实现不同的灯光效果。

3. 学生能够运用8彩灯控制器解决实际问题,培养创新意识和动手能力。

情感态度与价值观:1. 学生在课程学习中培养对电子科技的兴趣,激发学习热情。

2. 学生通过团队合作,培养沟通、协作能力和集体荣誉感。

3. 学生在创作过程中,体验科技与艺术的结合,提高审美情趣。

课程性质:本课程为电子技术与编程实践课程,注重理论知识与实际操作相结合,培养学生的动手能力、创新意识和实际问题解决能力。

学生特点:学生处于中学阶段,具备一定的电子基础和编程知识,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:教师需引导学生通过理论学习和实践操作,掌握8彩灯控制器相关知识,注重培养学生的实际操作能力和创新精神。

同时,关注学生的情感态度价值观的培养,使学生在课程学习中获得全面发展。

二、教学内容1. 8彩灯控制器基础知识:- 电路原理与组成:介绍8彩灯控制器的电路结构、元件功能及其相互关系。

- 控制器编程语言:学习控制器编程的基础语法,掌握编程方法。

2. 实践操作:- 8彩灯控制器组装:按照电路图完成控制器组装,学习使用相关工具和仪器。

- 灯光编程与调试:运用编程语言,设计不同的灯光效果,并进行调试。

3. 应用与创新:- 实际案例分享:分析8彩灯控制器在现实生活中的应用案例,激发学生创新意识。

- 创意设计实践:指导学生运用所学知识,完成创意8彩灯控制器设计。

教材章节关联:1. 电路原理与组成:对应教材第3章“电子电路基础”。

2. 控制器编程语言:对应教材第5章“编程基础与技巧”。

EDA课程设计--多路彩灯控制设计

EDA课程设计--多路彩灯控制设计

EDA课程设计--多路彩灯控制设计
项目简介:
本项目基于EDA工具(例如Altium Designer),设计实现了一种多路彩灯控制器。

该控制器可以控制多个LED灯的颜色和亮度,并可以通过外部输入信号进行控制。

项目要求:
- 实现8路彩灯控制,并且可以通过外部控制进行选择控制的灯数量。

- 支持控制彩灯的颜色和亮度。

- 支持外部输入信号,例如红外、蓝牙等。

- 设计具有过压、过流保护电路。

项目实现:
1. 硬件设计
- 选用STM32F030C8T6为控制器,实现外部输入信号检测、灯控制等功能
- 使用MAX7219为LED驱动芯片,支持SPI通信
- 具有功率PWM控制电路,用于调节彩灯的亮度
- 设有保护电路(包括过压、过流保护等)。

2. PCB设计
- 完成原理图设计,并将原理图转化为PCB设计
- 完成DSP设计、电源电路设计、外部输入检测电路设计、LED灯的连接及布局设计
- 设计阻止过压、过流电路,并进行分析和仿真,确保电路设计的可靠性和稳定性。

3. 程序设计
- 根据硬件设计,编写STM32程序,实现控制LED灯的亮度和颜色、接收和处理外部输入信号等功能
- 设计简单友好的用户界面,使得用户可以方便地选择和改变亮度和颜色控制方式。

4. 调试测试
- 在完成硬件设计、PCB设计、程序设计后,进行完整的测试来验证控制器的功能。

- 对控制器进行验证测试,确保它能稳定地运行,并且能够处理外部输入信号、选择和控制指定的彩灯。

EDA8路彩灯课程设计

EDA8路彩灯课程设计

EDA8路彩灯课程设计一、课程目标知识目标:1. 学生能理解EDA8路彩灯的基本原理,掌握电路设计与搭建的基本知识。

2. 学生能描述并解释彩灯控制电路中各个元件的功能及相互关系。

3. 学生掌握基本的编程知识,能够通过编程控制EDA8路彩灯的显示效果。

技能目标:1. 学生能够运用所学知识,设计并搭建简单的EDA8路彩灯控制电路。

2. 学生能够编写简单的程序代码,实现彩灯的不同显示效果。

3. 学生能够通过实践操作,培养动手能力和团队协作能力。

情感态度价值观目标:1. 学生对电子设计与编程产生兴趣,提高学习的积极性和主动性。

2. 学生在实践过程中,培养解决问题的耐心和毅力,增强自信心。

3. 学生通过团队合作,培养沟通与协作能力,提高集体荣誉感。

本课程旨在让学生结合课本知识,通过实践操作,掌握EDA8路彩灯的设计与搭建方法。

课程注重培养学生的动手能力、编程思维和团队协作能力,激发学生对电子技术的兴趣,提高学生的综合素质。

在教学过程中,教师需关注学生的个体差异,因材施教,确保课程目标的实现。

通过本课程的学习,学生将能够达到以上所述的知识、技能和情感态度价值观目标。

二、教学内容本章节教学内容主要包括以下三个方面:1. EDA8路彩灯基础知识:- 介绍EDA8路彩灯的基本原理及电路组成,关联教材中有关电子元件、电路原理的内容。

- 分析彩灯控制电路中各个元件的功能及相互关系,对应教材中相关章节。

2. 编程与控制:- 指导学生掌握基本的编程知识,如循环结构、条件语句等,关联教材中编程语言的基础知识。

- 引导学生编写简单的程序代码,实现EDA8路彩灯的不同显示效果,对应教材中编程实践内容。

3. 实践操作与团队协作:- 安排学生进行EDA8路彩灯的设计与搭建,结合教材中实践操作环节,培养学生动手能力。

- 组织学生进行团队协作,共同完成彩灯控制项目,提高学生的沟通与协作能力。

教学大纲安排如下:1. 基础知识学习(1课时)2. 编程知识讲解与实践(2课时)3. EDA8路彩灯设计与搭建(2课时)4. 团队协作与展示(1课时)教学内容注重科学性和系统性,结合教材章节,确保学生在掌握理论知识的基础上,能够顺利进行实践操作,达到课程目标。

EDA课程设计 彩灯控制器.

EDA课程设计 彩灯控制器.

电子设计自动化大作业题目彩灯控制器的设计学院**学院班级电气**学号**********姓名********二O一二年十月三十一日彩灯控制器的设计一、彩灯控制器的设计要求设计能让一排彩灯(8只)自动改变显示花样的控制系统,发光二极管可作为彩灯用。

控制器应有两种控制方式:(1)规则变化。

变化节拍有0.5秒和0.x秒两种,交替出现,每种节拍可有4种花样,各执行一或二个周期后轮换。

(2)随机变化。

无规律任意变化。

二、彩灯控制器的设计原理本次彩灯控制器的设计包含几个主要模块,一是彩灯显示和扬声器的时序控制部分,二是发光二极管的动态显示和数码管的动态显示,本次设计中,二者的显示同步变化;三是扬声器的控制部分。

流程图如下所示:图 1 彩灯控制器的设计流程图彩灯控制器的设计核心主要是分频器的使用,显示部分的设计较简易。

分频的方法有很多种,本次设计之采用了其中较简易的一种,通过计数器的分频,将控制器外接的频率分为几个我们预先设定的值。

当计数器达到预先设定的值,即产生一个上升沿,从而实现分频。

扬声器通过不同的频率控制发出不同的声音。

同样发光二极管和数码管的显示速度也由其中分出来的一种频率控制(控制显示频率在1~4 之间为宜)。

通过使能端的控制可以控制不同的数码管显示预先设定的图案,数码管依次显示的图案为 AA、BB、CC,并随着发光二极管同步动态显示。

AA 为自左向右显示,BB 为自右向左显示,CC 从二边向中间再由中间向二边发散显示。

与此同时,显示不同的花型时扬声器发出不同的声音,代表不同的花型。

本次设计还带有复位功能,通过复位可以使彩灯控制器恢复到最初的状态。

三、程序设计和分析library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;建立设计库和标准程序包实体部分: entity pan isport(clk:in std_logic;clr:in std_logic;speak:out std_logic;led7s1:out std_logic_vector(6 downto 0);led7s2:out std_logic_vector(7 downto 0);led_selout:out std_logic_vector(7 downto 0);end entity;实体名为 pan,定义端口,输入端口为 clk 和 clr ,其中 clk 接脉冲信号,clr 接复位端;输出端口 speak 接扬声器,led7s1 接数码管的七段显示部分,led7s 接八个发光二极管,led_selout 接八个数码管的使能端,控制数码管的循环显示。

八路彩灯课程设计--八路彩灯控制器的设计

八路彩灯课程设计--八路彩灯控制器的设计
总逻辑电路原理图移位计数器74ls19420进制循环控制器多谐振荡器彩灯显示输出16进制分频计数器u174163nu34qaqbqcqd14131211rco15abcd3456enpent710loadclr91clk2u274163nqaqbqcqd14131211rco15abcd3456enpent710loadclr91clk2u474194nabcd3456slsr72qaqbqcqd15141312clrclk111s0s1910u574ls04n1a1y2a2y3a3ygnd4y4a5y5a6y6avccu674ls09n1a1b1y2a2b2ygnd3y3a3b4y4a4bvccu774ls32ngnd1a1b1y2a2b2ygnd3y3a3b4y4a4bvccvcc5vvccx105vgndgnd2x125vx225vx325vx425v12131416175gndu1074194nabcd3456slsr72qaqbqcqd15141312clrclk111s0s1910x525vx625vx725vx825vgnd11102324x925v25v202174163nqaqbqcqd14131211rco15abcd3456enpent710loadclr91clk23vcc15gnd25229u8a74s10d19678vccu9lm555cmgndgnd1dis7out3rst4vcc8thr6con5tri2c110ufc210nfr11k?r2174k?vcc5vgnd2627vcc181图2四各单元电路设计1时钟脉冲产生电路用555定时器构成多谐振荡器电路输出便得到一个周期性的矩形脉冲其周期为
课程设计报告
课程:数字电路
题目:八路彩灯控制器的设计
院系:物理与电子信息学院
专业: 2011级电子信息科学与技术

EDA八路彩灯课程设计

EDA八路彩灯课程设计

EDA八路彩灯课程设计1 设计任务及要求任务要求:1根据设计题目要求进行方案设计并编写相应程序代码2对编写的VHDL程序代码进行编译和仿真3总结设计内容,完成课程设计说明书主要内容:要求控制器能控制8路彩灯按照两种节拍、三种花型循环变化。

两种节拍分别为0.25秒和0.5秒。

三种花型分别是:①8路彩灯从左至右按次序渐亮,全亮后逆次序渐灭。

②从中间到两边对称地渐亮,全亮后由中间向两边逐灭③从两边到中间对称地渐亮,全亮后全灭。

2设计原理及总体框图根据功能要求,可将8路彩灯控制器的输出按花形循环要求列成表格,其中。

Q7-Q0是控制器输出的8路彩灯的控制信号,高电平时彩灯亮。

状态标识flag 是为了便于有规律地给8路输出赋值而设立的不同花形的检测信号。

序号Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 状态标识flag说明0 0 0 0 0 0 0 0 0000 第一种花形:渐亮1 1 0 0 0 0 0 0 02 1 1 0 0 0 0 0 03 1 1 1 0 0 0 0 04 1 1 1 1 0 0 0 05 1 1 1 1 1 0 0 06 1 1 1 1 1 1 0 07 1 1 1 1 1 1 1 08 1 1 1 1 1 1 1 19 1 1 1 1 1 1 1 0001 第一种花形:渐灭10 1 1 1 1 1 1 0 011 1 1 1 1 1 0 0 012 1 1 1 1 0 0 0 013 1 1 1 0 0 0 0 014 1 1 0 0 0 0 0 015 1 0 0 0 0 0 0 016 0 0 0 0 0 0 0 017 0 0 0 1 1 0 0 0010 第二种花形:渐亮18 0 0 1 1 1 1 0 019 0 1 1 1 1 1 1 020 1 1 1 1 1 1 1 121 1 1 1 0 0 1 1 1011 第二种花形:渐灭22 1 1 0 0 0 0 1 123 1 0 0 0 0 0 0 124 0 0 0 0 0 0 0 025 0 0 0 1 1 0 0 0100 第三种花形:渐亮26 0 0 1 1 1 1 0 027 0 1 1 1 1 1 1 028 1 1 1 1 1 1 1 129 0 0 0 0 0 0 0 0两种节拍的交替需要将4Hz的时钟脉冲二分频,得到一个2Hz的时钟脉冲,让这两种时钟脉冲交替控制花形循环。

数电课程设计_八路彩灯控制器

数电课程设计_八路彩灯控制器

湖南工程学院课程设计课程名称电子技术课程设计课题名称彩灯控制器专业电气工程及其自动化班级1102学号201101010210姓名郭昕指导教师田莉2013年12月27日湖南工程学院课程设计任务书课程名称:电子技术课程设计题目:多功能数字钟电路专业班级:电气1102学生姓名:郭昕学号:201101010210指导老师:田莉审批:田莉任务书下达日期2013年12月16日设计完成日期2013年12月27日目录一课程设计题目(与实习目的) (7)(一)、题目:多路彩灯控制器 (7)(二)、实习目的: (7)二总体方案的选择 (7)(1)总体方案的设计 (7)(2)总体方案的选择 (8)三单元电路的设计 (9)(1)花型演示电路 (9)(2)花型控制信号电路 (13)(3)节拍控制电路 (14)(4)时钟信号电路原理图 (16)四总体电路图(见附页) (18)五电路组装后,实际测量的各个单元电路的输入、输出信号波形18 六安装、调试过程 (21)七故障分析与电路改进 (22)(一)、巩固数电知识 (23)(二)、学会用电路板、芯片、导线等组装各种功能的电路; (23)(三)、和同学共同合作、互相学习、共同进步 (24)八总结: (24)九附录(元器件清单): (25)十参考文献。

(25)一课程设计题目(与实习目的)(一)、题目:多路彩灯控制器(二)、实习目的:1.进一步掌握数字电路课程所学的理论知识。

2.熟悉几种常用集成数字芯片的功能和应用,并掌握其工作原理,进一步学会使用其进行电路设计。

3.了解数字系统设计的基本思想和方法,学会科学分析和解决问题。

4.培养认真严谨的工作作风和实事求是的工作态度。

5.数点课程实验是大学中为我们提供的唯一一次动手实践的机会,增强动手实践的能力。

二总体方案的选择(1)总体方案的设计针对题目设计要求,经过分析与思考,拟定以下二种方案:方案一:总体电路共分三大块。

第一块实现花型的演示;第二块实现花型的控制;第三块实现时钟信号的产生。

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

目录1前言 (2)2 总体方案设计 (3)2.1方案比较 (3)2.2方案论述 (4)2.3方案选择 (4)3单元模块设计 (5)3.1时钟信号模块 (5)3.2节拍快慢控制模块 (6)3.3彩灯控花型控制模块 (7)4软件设计 (9)4.1 Quartus Ⅱ简介 (9)4.2 Qartus Ⅱ设计开发流程 (10)5系统调试 (11)6系统功能及指标参数 (12)7设计总结与体会 (13)8参考文献 (14)附录1总设计图及仿真图 (15)附录2 Verilog HDL源程序 (16)~ 1 ~1前言在经济和商业高度发达的今天,彩灯已经成为人民日常生活不可或缺的一部分,已经逐渐为越来越多的人们所关注,在家庭中的普及率不断提高,大大的丰富和点缀了人民的生活。

彩灯由不同的颜色的LED灯组成,通过控制不同颜色的灯的亮与灭,呈现给人们不同的花塑和图案,极大的点缀了单调的都市夜景,让城市成为了多姿多彩的不夜城。

当今社会是数字化的社会,也是数字集成电路广泛应用的社会,数字本身在不断的进行更新换代。

它由早起的电子管、晶体管、小中规模集成电路发展到超大规模集成电路以及许多具有特定功能的专用集成电路。

而EDA技术就是以微电子技术为物理层面,现代电子设计为灵魂,计算机软件技术为手段,最终形成集成电子系统或专用集成电路ASIC为目的的一门新兴技术。

Verilog HDL是一种应用较为广泛的HDL语言,能对范围广泛的各种复杂的网络在不同的抽象级加以描述,而且在整个设计过程中可使用同一种语言。

采用Verilog HDL作为HDL综合设计的优点有:标准语言,即设计者可在不同环境下进行设计;仿真和综合均可采用同一种语言进行;Verilog HDL中提供的大量的资源模块,简化了设计者的开发工作;由Verilog HDL描述的源文件既是程序文件又可作为设计的文档。

~ 2 ~2 总体方案设计彩灯控制器的核心设计部分是彩灯花型的控制模块,显示部分相对比较容易。

分频器的设计方法多种多样,我设计的是比较常见的一种。

外接clk为始终输入基准信号,彩灯节奏的快慢用选择开关select[1:0]。

针对课题要求设计了如图2.1所示总体框图。

图2.1八路彩灯总体框图2.1方案比较该设计主要是以FPGA为基础,通过硬件描述语言Verilog HDL灵活多变的改变彩灯显示的花型以及宽快慢,对此这几了以下两个方案。

方案一:总体电路共分三大块。

第一块实现时钟信号的产生;第二块实现花型的控制及节拍控制;第三块实现花型的演示。

主题框图如图2.2所示。

图2.2八路彩灯设计框图~ 3 ~方案二:在方案一的基础上将整体电路分为四个模块。

第一块实现花型的演示;第二块实现花型的控制;第三块实现节拍快慢控制;第四块实现时钟信号的产生。

并在部分电路的设计上与方案一采用了完全不同的方法,如花型的控制。

如图2.3所示。

图2.3八路彩灯模块化框图2.2方案论述方案一与方案二最大的不同就在,前者将花型控制与节拍控制两种功能融合在一起,是考虑到只要计数器就可以实现其全部功能的原因,且原理相对简单。

这样设计,其优点在于:设计思想比较简单。

元件种类使用少,且都较熟悉易于组装电路。

缺点则是:中间单元电路连线过于繁多,容易出错。

且可能出现线与关系。

要避免这些,则势必造成门电路使用过多。

导致电路不稳定,抗干扰能力下降。

而后者则将以上两种功能分开设计,各单元电路只实现一种功能。

其优点在于:电路设计模块化,易于检查电路,对后面的电路组装及电路调试带来方便。

缺点则是:节拍控制电路采用可编辑逻辑电路,原理相对复杂,不易理解。

花型控制电路简单,花型也比较简单。

2.3方案选择方案一主要设计过程简单明了,而且花型控制和快慢结合在一起,用一个计数器就能而过轻松地实现功能,但是细节太多容易出错。

方案二虽然多了一个步骤,但是每个模块只完成一个功能,相对更容易上手。

所以基于以上原因,加上为了确保短时间内完成课程设计,我选择了连线少,易于调试的方案二。

~ 4 ~3单元模块设计3.1时钟信号模块时钟信号控制模块的主要功能是将输出的标准时钟进行分频,以此控制八路彩灯的快慢节奏变化。

时钟信号控制在本设计中起着至关重要的作用,它以彩灯闪动快慢节奏的变化实现了八路彩灯绚丽多彩的花型节奏变化。

时钟控制是整个设计中的一个分模块,它的设计对八路彩灯控制器的顺利完成起着决定性作用。

对时钟控制程序封装如图3.1所示。

图3.1分频器模块设计的标准时钟输入时50M Hz,但是在Quartus Ⅱ中仿真时由于计数次数太多以至于不能正常得到分频后的波形,所以此处的仿真波形非标准时钟,仅用来表示分频的结果。

图3.2分频仿真时序图~ 5 ~图3.2仿真波形图中,out是对基准时钟的4分频,out1是对基准时钟的8分频,out2是对基准时钟的16分频,out3是对基准时钟的32分频。

3.2节拍快慢控制模块节拍快慢控制模块即一个4选1数据选择器,它的功能是将分频器分出来的四个时钟信号通过我们外部输入而选择其中一个输出到下一个模块中,这样就可以控制彩灯显示的快慢。

它的真值表如表3.1所示。

表3.1 4选1数据选择器真值表select[1:0] 输出0 0 Out10 1 Out21 0 Out31 1 Out44选1数据选择器仿真波形和封装模型分别如下:图3.3数据选择模块~ 6 ~图3.4 4选1数据选择器仿真图图3.4数据选择器仿真波形中,输入的选择信号sel是2'b01即选择输入的第二个波形,所以输出的波形即是第二个波形。

3.3彩灯控花型控制模块彩灯控制模块是整个设计的核心,彩灯控制模块能够进行彩灯图案的控制,它负责整个设计的输出效果即各种彩灯图案的样式变化。

在仿真时序中高电平代表灯亮,低电平代表灯灭,由高低电平按不同规律组合就代表不同的花型,同时选择不同的频率,从而实现多种图案多种频率的花样功能显示。

此时Verilg HDL 硬件描述语言的优势就展现出来,使用者可以按自己的需求改变源程序从而改变显示的花型,而不用更换显示设备,这样不但经济而且环保。

程序封装图及仿真图分别如图所示。

图3.5彩灯控制系统程序封装图~ 7 ~图3.6彩灯控制系统功能仿真图图3.6中,在第一个上升沿输出8个高电平即8个彩灯全亮,下一个上升沿全部为低电平表示彩灯全部熄灭。

之后隔一个时钟周期产生一个高电平,即彩灯依次点亮。

最后四个高电平和低电平相间,表示8个彩灯亮灭相间。

~ 8 ~4软件设计4.1 Quartus Ⅱ简介QuartusⅡ可编程逻辑开发软件是Altera公司为其FPGA/CPLD芯片设计的集成化专用开发工具,是Altera最新一代功能更强的集成EDA开发软件。

使用QuartusII可完成从设计输入,综合适配,仿真到下载的整个设计过程。

Max+plusⅡ是Altera公司早期的开发工具,曾经是最优秀的PLD开发平台之一,现在正在逐步被QuartusⅡ代替。

并且Max+plusⅡ已经不再支持Altera 公司的新器件,同时,QuartusH也放弃了对少数较老器件的支持。

QuattusII界面友好,具有MAX+PLUSⅡ界面选项,这样MAX的老用户就无须学习新的用户界面就能够充分享用QuartusⅡ软件的优异性能。

所以,无论是初学者,还是Max+plusⅡ的老用户,都能较快的上手。

QuartusⅡ根据设计者需求提供了一个完整的多平台开发环境,它包含蕞个FPGA和CPLD设计阶段的解决方案。

QuarmsⅡ软件提供的完整,操作简易的图形用户界面可以完成整个设计流程中的各个阶段。

QuartusⅡ集成环境包括以下内容:系统级设计,嵌入式软件开发,可编程逻辑器件(PLD)设计,综合,布局和布线,验证和仿真。

QuartusⅡ也可以直接调用Synplify Pro,LeonardoS~ctmm以及ModelSim 等第三方EDA工具来完成设计任务的综合与仿真。

QualtusⅡ与MATLAB和DSPBuilder结合可以进行基于FPGA的DSP系统开发,方便且快捷,还可以与SOPCBuilder结合,实现SOPC系统的开发。

4.2 Qartus Ⅱ设计开发流程QuanusⅡ设计的主要流程有:创建工程、设计输入、编译、仿真验证、下载,其进行数字电路设计的一般流程如图4.1所示。

~ 9 ~图4.1 QuartusⅡ设计开发流程设计输入:包括原理图输入、HDL文本输入、EDIF网表输入等几种方式。

编译:先根据设计要求设定编译方式和编译方略,如器件的选择、逻辑综合方式的选择等。

然后根据设定的参数和策略对设计项目进行网表提取,逻辑综合器件适配,并产生报告文件、延时信息文件及编程文件,供分析、仿真和编译使用。

仿真:仿真包括功能仿真、时序仿真和定时分析,用以验证设计项目的逻辑功能和时序关系是否正确。

编程与验证:用得到的编程文件通过编程电缆配置PLD,加入实际激励,进行在线测试。

再设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重复上述过程。

~ 10 ~5系统调试在进行系统调试时首先要建一个项目,将我们以前设计的各个子模块工程添加到该项目中并且创建模块。

之后新建一个顶层原理图文件,将我们所创建的所有子模块添加进去,再添加相应的输入输出模块,连接好线,编译之后便可以仿真。

具体顶层文件图和仿真图如下所示。

图5.1 顶层文件总线图图5.2 彩灯功能仿真图~ 11 ~6系统功能及指标参数本设计主要是设计一个显示三种花型的八路彩灯控制系统。

它能够通过外部选择调节彩灯显示的快慢,也可以通过更改Verilog HDL源程序改变所要现实的花型,从而获得不同的显示效果。

本设计是基于Quartus Ⅱ中的EP2S15F672C3芯片,基本完成了课程设计任务书上的所有功能要求,但还是有一些不足的地方,我以后会尽量改进。

~ 12 ~7设计总结与体会通过本次实验的学习和实践,我对DEA这门课程有了感性的认识,并且对仿真软件Quartus II 有了深刻的了解和学会运用软件建立工程仿真实验,对硬件描述语言Verilog HDL有了较为基础的了解和认识,深刻体会到该语言方面的设计在生活中应用范围之广泛。

经过本次作业,我体会到设计对设计人员的基本要求:掌握最基本的知识并且学会灵活运用这些基本知识,大胆创新敢于实践,遵守相关的游戏规则,运用谨慎全面的逻辑思维思考问题、解决问题。

具体而言,对VHDL语言的掌握程度更加的深刻,虽不能独立的设计复杂的产品,但对整个流程有了一定的了解,为以后的工作打下了基础,积累了经验。

本次课程不仅是对基础知识的提升,更是对思维方式的扩展有了相当的帮助,我相信知识是在不断的更新,但从本课程学到的思维方式却是对以后的发展大有裨益。

相关文档
最新文档