西电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 Ⅱ的使用方法,熟悉可编程逻辑器件的使用,通过制作来了解彩灯控制系统。

EDA彩灯

EDA彩灯

EDA课程设计报告设计题目一一设计要求1、有十只LED,L0 (9)2、显示方式(初态为全亮);①先奇数灯依次灭(灭的灯当下一个灯动作时,本灯回复原状态)②再偶数灯依次灭(同上)③再由L0到L9依次灭(同上)3、显示间隔0.5s、1s可调。

二、设计思路1.用两片4-16译码器74154分别控制奇数,偶数灯依次灭和L0~L9依次灭。

2.用16进制计数器74161连成11进制计数器,输出作为74154的输入和片选控制。

3.用三片10进制计数器74160连成183进制计数器,得到分频电路。

并用一个T触发器修改占空比为1:2。

4.用一个JK触发器和一个控制端实现显示时间间隔可调。

三、设计过程1.模块一fenpin电路图如下:输入732HZ的CP信号,用三个74160连成183进制计数器再用一个T触发器调节占空比为1:2,得到2HZ的CP1。

仿真图:2.模块二xuanpin电路图如下:|用一个JK触发器实现二分频,控制端M为低电频时,输出2HZ 的脉冲;控制端M为高电频时,输出1HZ的脉冲。

仿真图:3.模块三jisu将16进制计数器连成11进制计数器,输出QA、QB、QC、QD 作为模块kongzhi的输入,进位输出CONTROL作为模块kongzhi片选端输入。

电路图如下仿真图:4.模块四kongzhi灯L0,L1,L2,L3,L4,L5,L6,L7,L8,L9依次与10个与门连接。

CONTROL为0时第一片被选中,输入状态为0000~1010,输出Y0~Y10依次为0,Y2~Y10依次接与门3,5,7,9,0,2,4,6,8,YO取非和Y1用一个或门连接与门1,实现开始的全亮状态;CONTROL为1时第二片被选中,输入循环0000~1010,输出Y0~Y10依次连接与门0,1,2,3,4,5,6,7,8,9。

此电路在控制端的作用下实现了奇数灯依次灭,偶数灯依次灭,。

电路图如下:5.总电路图huizong仿真图四、硬件调试经下载,连线后,彩灯显示全亮状态,首次没有成功。

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

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

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

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

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

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

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

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

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

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

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

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

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

eda彩灯实验报告

eda彩灯实验报告

eda彩灯实验报告
EDA彩灯实验报告
引言
EDA彩灯是一种新型的智能灯具,它具有丰富的颜色选择和灯光效果,可以通
过手机APP远程控制,是现代家居装饰的理想选择。

本实验旨在测试EDA彩灯的亮度、颜色稳定性和控制性能,以评估其在实际应用中的表现。

实验方法
1. 测量亮度:在不同亮度下,使用光度计测量EDA彩灯的光照强度,以评估其
亮度表现。

2. 测量颜色稳定性:在不同时间段内,记录EDA彩灯显示的颜色,并使用色度
计测量其颜色值,以评估其颜色稳定性。

3. 测试控制性能:通过手机APP远程控制EDA彩灯,测试其响应速度和稳定性。

实验结果
1. 亮度测试结果显示,EDA彩灯在不同亮度下的光照强度表现稳定,且亮度调
节响应迅速。

2. 颜色稳定性测试结果显示,EDA彩灯在长时间使用过程中,颜色表现稳定,
色度值变化不大。

3. 控制性能测试结果显示,通过手机APP远程控制EDA彩灯响应速度快,稳定性良好。

结论
通过本次实验,我们对EDA彩灯的亮度、颜色稳定性和控制性能进行了评估,
结果显示其表现良好,适用于家居装饰和氛围照明。

然而,在实际使用中,还
需要进一步测试其耐用性和节能性能,以全面评估其性能表现。

总结
EDA彩灯作为一种智能家居装饰灯具,具有丰富的颜色选择和灯光效果,通过本次实验评估其亮度、颜色稳定性和控制性能,结果显示其表现良好。

我们期待EDA彩灯在未来的应用中,能够为用户带来更多的便利和美好的家居体验。

EDA课程设计多功能台灯

EDA课程设计多功能台灯

EDA课程设计--多功能台灯E D A课程设计课程名称:课程设计І设计题目:多功能台灯院系:电信学院班级:姓名:学号:同组人:指导教师:设计时间:哈尔滨工业大学一、概述台灯是千家万户的必需生活电器。

其中LED 台灯以其光效高、工作电压低、能耗低、可控制好、无辐射的特点被广泛使用。

同时,单片机也被广泛应用于各类电子器件中,完成相应的控制作用。

本设计以51系列单片机为控制核心,来实现集多种功能于一体的电子台灯,设计系统时采用分模块的设计方法,分别设计了各个功能的单元模块,系统的硬件部分可分为单片机控制模块、光控模块、LED灯模块、定时模块、DA转换模块等五大部分。

电路由按键输入控制相应设计功能,共能完成应急模式、自动模式、定时模式和手电模式四种模式。

系统的软件部分用汇编语言来编程,实现了该设计的全部控制功能。

该多功能台灯可以正常的开启和关闭(应急模式)、根据目前所在环境的光强和人体决定LED灯的逐渐开关(自动模式)、未操作一段时间自动关闭(定时模式)和单LED照明(手电模式)共四种功能。

整个系统结构清晰明了,功能齐全,操作简单,具有很强的实用价值。

二、课程设计目的和意义(1)便携;采用电池供电,环保;保护视力,渐亮、渐灭的功能。

(2)节能;低功耗,效率高,采用LED发光器件。

(3)非接触式(卫生)红外式传感器、感应式传感器。

(4)白天不亮夜里亮,有应急功能和手电功能。

三、技术要求和主要功能(1)人体红外感应(2)渐亮,控制100个或2个LED灯任选一种。

(3)渐灭,控制100个或2个LED灯任选一种。

(4)白天不亮夜里亮,任意开关。

(5)定时时间为0~1h,节能。

(6)直流供电,四、相关说明和代替考虑实际电路实际的简化以及为了方便调试,特做以下几点近似。

近似对于课程设计的相关功能没有影响。

(1)100个LED灯亮近似用9个LED灯亮代替(2)2个LED灯亮近似用1个LED灯亮代替(3)为方便仿真观察,定时时间用0~255s代替五、工作原理及仿真结果下图为设计的总电路,主要构成部件有:51单片机、DA转换器、拨码开关、开关、LED、译码器、寄存器等。

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 接八个数码管的使能端,控制数码管的循环显示。

eda彩灯实验报告

eda彩灯实验报告

eda彩灯实验报告EDA彩灯实验报告引言EDA彩灯实验是一项基于EDA(Exploratory Data Analysis,探索性数据分析)的实践活动。

通过对彩灯数据的收集、整理和分析,我们旨在探索数据的特征和规律,并通过可视化展示的方式,将数据的潜在信息传达给观察者。

本报告将介绍实验的目的、方法、结果和讨论。

实验目的本次实验的目的是通过EDA的方法,对彩灯数据进行分析,并通过可视化展示的方式,揭示数据的潜在规律和特征。

我们希望通过这个实验,加深对EDA方法的理解,并掌握其在实际问题中的应用。

实验方法1. 数据收集我们从多个渠道收集了一定数量的彩灯数据,包括彩灯的颜色、亮度、闪烁频率等信息。

这些数据以文本文件的形式存储,并按照时间顺序排列。

2. 数据整理为了方便后续分析,我们首先对数据进行整理。

具体步骤包括数据清洗、去除异常值、处理缺失值等。

通过这些步骤,我们得到了一份干净、可用的数据集。

3. 数据分析在数据分析阶段,我们运用了各种统计和可视化方法,以揭示数据的特征和规律。

具体包括以下几个方面:- 描述性统计:通过计算数据的均值、方差、中位数等指标,了解数据的分布和集中趋势。

- 相关性分析:通过计算不同变量之间的相关系数,查找变量之间的关联关系。

- 可视化展示:通过绘制折线图、柱状图、散点图等,将数据的特征以图形化的方式展示出来。

实验结果经过数据分析,我们得到了以下几个主要结果:1. 彩灯的颜色分布呈现多样性,包括红、绿、蓝、黄等多种颜色。

其中,蓝色和红色的比例较高,而绿色和黄色的比例较低。

2. 彩灯的亮度分布较为均匀,大部分彩灯的亮度值集中在一个中等水平上。

3. 彩灯的闪烁频率与亮度呈现一定的正相关关系,即亮度较高的彩灯更容易出现高频闪烁的情况。

讨论通过本次实验,我们对EDA方法有了更深入的理解,并掌握了其在彩灯数据分析中的应用。

通过对彩灯数据的收集、整理和分析,我们揭示了彩灯数据的特征和规律,为进一步研究彩灯的设计和应用提供了参考。

EDA课程设计一个彩灯控制器

EDA课程设计一个彩灯控制器

测试结果分析与改进
测试结果:系统集成与功能测试的结果 问题分析:分析测试结果中存在的问题和原因 改进方案:提出针对问题的改进方案 验证与优化:验证改进方案的有效性,并进行优化
06 总结与展望
课程设计总结
课程设计目标:掌握EDA技术,设计彩灯控制器 课程设计内容:包括电路设计、程序编写、仿真测试等 课程设计成果:成功设计并实现彩灯控制器 课程设计收获:提高了EDA技术应用能力,增强了团队合作精神
软件集成:将各个软件模块集成在一 起,形成完整的系统
功能测试:对系统的各个功能进行测 试,确保其正常工作
性能测试:对系统的性能进行测试, 确保其满足设计要求
稳定性测试:对系统的稳定性进行测 试,确保其长时间稳定工作
兼容性测试:对系统的兼容性进行测 试,确保其与其他设备或系统兼容
功能测试方案与实施
测试目标:验证系统功能是否符合设计要求 测试方法:黑盒测试、白盒测试、灰盒测试 测试内容:输入输出、数据处理、界面显示、系统稳定性等 测试工具:自动化测试工具、性能测试工具、安全测试工具等 测试结果分析:对测试结果进行分析,找出问题并提出改进措施 测试报告:编写测试报告,记录测试过程、结果和改进措施
布线原则:遵循信号流向,避免交叉干扰,保证信号完整性
布线技巧:使用自动布线工具,提高布线效率和质量
布线注意事项:注意电源线和地线的布局,保证电源和地线之间的隔离距离,避免电 磁干扰。
电源与接口电路设计
电源电路:提供 稳定的电源电压, 保证系统正常工 作
接口电路:连接 外部设备,实现 数据传输和控制
彩灯控制器应用前景与展望
彩灯控制器在节日装饰中的应用 彩灯控制器在商业广告中的应用 彩灯控制器在公共设施中的应用 彩灯控制器在智能家居中的应用

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的时钟脉冲,让这两种时钟脉冲交替控制花形循环。

EDA技术实验10-彩灯控制器设计与实现

EDA技术实验10-彩灯控制器设计与实现

ENTITY counter_4 IS
PORT
(
clk,rst
: IN
std_logic;
count_out
: OUT integer range 0 to 3 );
std_logic
END xzq4_1; ARCHITECTURE a OF xzq4_1 IS
BEGIN PROCESS (rst,inp) BEGIN
if(rst='1') then output<='0';
else
case inp is
when 0=>output<=in1;
when 1=>output<=in2;
count_out<=temp;
END PROCESS;
17
END a;
-------------------------------------------4进制计数器模块----------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
if clk'event and clk='1'then
if b>=5 then
b:=0;
clk_6<='1';
else
b:=b+1;
clk_6<='0';
end if;
end if;
end if;
end process p2;
p3:process(clk,rst)
variable c:integer range 0 to 20;

EDA(VHDL)实验一 彩灯实验

EDA(VHDL)实验一 彩灯实验

实验一彩灯实验
一、实验目的
1 通过实验初步了解EDA的基本概念。

2 能理解VHDL语言实现硬件设计的思路。

3 能熟练掌握EDA开发软件的使用。

二、实验原理
在本实验中,8个彩灯共阴接地,阳极分别为FPGA的8个I/O相连,I/O输出变化的电平,来控制彩灯的点亮。

三、实验内容与步骤
1 打开Quartus II软件,依次点击菜单栏中的“File-Open Project”,打开EDA/LIGHT文件夹,在对话框中选择项目LIGHT,再点击打开即可;
2 双击项目管理器中的顶层项目LIGHTALL,顶层文件打开;
3 分别双击原理图表中PIN1HZ、light模块,打开即可看到源文件:
(1)light模块源程序
light模块方针波形如图所示:
程序分析:
(2)PIN1HZ模块源程序
PIN1HZ模块方针波形如图所示:
程序分析:
4 重新设置器件Cyclone EP1C6Q240C8 和配置芯片EPCS1;
5 根据配套的硬件资源分配表进行管脚分配,分配后的结果如图所示:
6 然后再编译一次;
7 下载程序到目标芯片。

四、实验现象
八个彩灯采用不同的模式被点亮。

五、思考题
试着改变程序,使得LED灯的切换速度发生变化。

只要改变PIN1HZ模块源程序的分频比,即可使得LED灯的切换速度发生变化。

例如,把50MHz分频为2Hz的程序如下:。

EDA课程设计--多功能彩灯

EDA课程设计--多功能彩灯

第一章绪论 (2)1.1系统背景 (2)1.1.1 EDA技术的特点以及在电子技术中的应用 (2)a. EDA技术的特点: (2)b. EDA技术的发展趋势: (2)c. EDA技术的设计流程: (3)1.1.2设计内容和目标 (3)a.设计主要内容和任务: (3)b.目标: (3)第二章系统电路设计 (3)2.1 系统总体设计框架结构 (3)2.2 系统实验电路结构图NO.9 (4)2.3仿真软件总电路 (4)第三章系统软件设计 (4)3.1 系统程序设计 (4)3.1.1分频电路程序 (4)3.1.2彩灯显示程序 (5)3.2仿真波形图 (9)第四章实验结果和分析 (9)4.1 实验使用的仪器设备 (9)4.2 测试结果分析 (9)结束语 (10)第一章绪论1.1系统背景1.1.1 EDA技术的特点以及在电子技术中的应用a. EDA技术的特点:EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

电子设计自动化工程是近几年迅速发展起来的计算机软件、硬件、微电子交叉的现代电子设计学科,它是以EDA软件工具为开发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以专用集成电路(ASIC)、片上系统(SOC)芯片为器件目标,以电子系统设计为应用方向的电子产品自动化设计过程[1]。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。

现代EDA技术是采用高级语言描述,具有系统级仿真和综合能力,它主要采用并行工程(Concurrent Engineering)设计和自顶向下(Top-down)设计方法,其基本思想是从系统总体要求出发,分为行为描述、寄存器传输级描述、逻辑综合三个层次,将设计内容逐步细化,最后完成整体设计,这是一种全新的设计思想与设计理念。

EDA流水灯设计大作业

EDA流水灯设计大作业

西安电子科技大学——电子工程学院EDA程序设计流水灯控制科 目: EDA程序设计任课老师:_________ _______________姓 名:______________ ___________学 号:__________________________班 级:_______________________流水灯设计1、引言EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。

随着技术市场与人才市场对EDA的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。

因此学好EDA技术对我们有很大的益处。

EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。

2、 实验目的1、掌握基于FPGA的开发方法2,学习使用EDA集成设计软件Quartus II,电路描述,综合,模拟过程。

3,了解基于EDA应用系统的设计方法。

4,掌握使用EDA工具设计流水灯的设计思路和设计方法三、实验题目设计能让一排灯(8只)自动改变显示的控制系统。

可将实验板上的一排发光二极管作为彩灯用。

控制器应有两种控制方式:规则变化:变化节拍有0.5秒和0.25秒两种,交替出现,每种节拍可有8种花样,各执行一或者二个周期后替换。

彩灯变化方向有单向移动,双向移动,跳跃移动等。

随机变化:变化花样相同,但节拍及花样的转换都随机出现四、设计思路1、灯光移动用移位寄存器实现,各种花样,有的可以存于寄存器中,使用时并行置入移位寄存器,有的可以利用环形计数器或扭环计数器实现。

EDA多路彩灯控制器设计

EDA多路彩灯控制器设计

EDA多路彩灯控制设计一.系统设计要求设计一个多路彩灯控制器,彩灯能循环变化,可清零,可以变化彩灯闪动频率。

二.设计方案整个系统有三个输入信号,分别为控制快慢的信号OPT,复位清零信号CLR,输出信号是8路彩灯输出状态。

系统框图如:主要模块组成:时序控制电路模块和显示电路模块,时序控制电路是根据输入信号的设置得到相应的输出信号,并将此信号作为显示电路的时钟信号;显示电路输入时钟信号的周期,有规律的输出设定的六种彩灯变化类型。

三.模块设计时序控制模块:CLK为输入时钟信号,电路在时钟上升沿变化;CLR为复位清零信号,高电平有效,一旦有效时,电路无条件的回到初始状态;OPT为频率快慢选择信号,低电平节奏快,高电平节奏慢;CLKOUT为输出信号,CLR有效时输出为零,否则,随OPT信号的变化而改变。

时序控制电路模块程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity kz is --定义实体port(clk: in std_logic; --时钟信号clr: in std_logic; --复位信号opt: in std_logic; --快慢控制信号clkout: out std_logic --输出时钟信号);end kz;architecture rtl of kz issignal clk_tmp: std_logic;signal counter: std_logic_vector(1 downto 0); --定义计数器beginprocess(clk,clr,opt)beginif clr='1' then --清零clk_tmp<='0';counter<="00";elsif clk'event and clk='1' thenif opt='0' then --四分频,快节奏if counter="01" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;else --八分频,慢节奏if counter="11" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;end if;end if;end process;clkout<=clk_tmp; --输出分频后的信号end rtl;显示模块电路程序如下:library ieee;use ieee.std_logic_1164.all;entity xs isport(clk: in std_logic ;--输入时钟信号clr: in std_logic; --复位信号led: out std_logic_vector(7 downto 0)); --彩灯输出end xs;architecture rtl of xs istype states is --状态机状态列举(s0,s1,s2,s3,s4,s5,s6);signal state: states;beginprocess(clk,clr)beginif clr='1' thenstate<=s0;led<="00000000";elsif clk'event and clk='1' then --状态机状态之间的转换case state iswhen s0=>state<=s1;when s1=>state<=s2;led<="01010101";when s2=>state<=s3;led<="10101010";when s3=>state<=s4;led<="10001000";when s4=>state<=s5;led<="11001100";when s5=>state<=s6;led<="00110011";when s6=>state<=s1;led<="00010001";end case;end if;end process;end rtl;顶出模块设计程序:library ieee;use ieee.std_logic_1164.all;entity cotop isport (clk: in std_logic;clr: in std_logic;opt:in std_logic;led: out std_logic_vector(7 downto 0)); --八路彩灯输出end cotop;architecture rtl of cotop iscomponent kz is --定义元件:时序控制电路port(clk: in std_logic;clr: in std_logic;opt:in std_logic;clkout: out std_logic);end component kz;component xs is --定义元件:显示电路port(clk: in std_logic;clr: in std_logic;led: out std_logic_vector(7 downto 0));end component xs;signal clk_tmp: std_logic;beginu1:kz port map(clk,clr,opt,clk_tmp); --例化时序控制模块u2:xs port map(clk_tmp,clr,led); --例化显示电路模块end rtl;时序控制模块仿真波形:从图中可以看出,当复位信号为高电平时,电路时钟输出清零,当快慢信号OPT为低电平时,时序控制电路四分频起作用,当快慢信号OPT为高电平时,时序控制电路八分频起作用,仿真结果符合电路要求。

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

EDA设计报告彩灯控制器(老师:宗汝)班级:学号:姓名:一.设计要求设计能让一排灯(8只)自动改变显示花样的控制系统。

可将实验板上的一排发光二极管作为彩灯用。

控制器应有两种控制方式:◆规则变化。

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

彩灯变化方向有单向移动,双向移动,跳跃移动等。

◆随机变化。

变化花样相同,但节拍及花样的转换都随机出现。

二.设计方案(1).分频模块。

要产生快慢两种节拍,则首先需要有分频器模块,0.5秒和0.25秒两种则可选择四分频和八分频。

通过按键进行选择切换。

则clk为输入时钟信号,需经分频器分频并输入到LED显示电路;clr为复位清零信号,高电平有效,有效时,电路无条件的回到初始状态;OPT为频率快慢选择信号,低电平节奏快,高电平节奏慢;(2)LED显示模块。

经过分频的时钟信号输入LED显示电路中,使电路有规律的输出按照设定的各种花样变化。

xuan为选择彩灯变化花样信号,便于改变彩灯花样。

而最后就是输出彩灯变化花样led。

三.系统程序设计分频器模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity FENPINQI isport(clk:in std_logic;clr:in std_logic;opt:in std_logic;clkout:out std_logic);end FENPINQI;architecture arc of FENPINQI issignal clk_tmp: std_logic;signal counter: std_logic_vector(1 downto 0);beginprocess(clk,clr,opt)beginif clr='1' then --清零clk_tmp<='0';counter<="00";elsif clk'event and clk='1' thenif opt='0' then --四分频if counter="01" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;else --八分频if counter="11" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;end if;end if;end process;clkout<=clk_tmp; --输出分频后的信号end arc;花样一:--用分频器分频后的时钟来显示花样实现library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY1 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led1:out std_logic_vector(7 downto 0));end HY1;architecture arc of HY1 istype state is(s0,s1,s2,s3,s4,s5,s6);signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="10000001";constant l2:std_logic_vector(7 downto 0):="01000010";constant l3:std_logic_vector(7 downto 0):="00100100";constant l4:std_logic_vector(7 downto 0):="00011000";constant l5:std_logic_vector(7 downto 0):="00100100";constant l6:std_logic_vector(7 downto 0):="01000010";beginif xuan="01"thenif clr='1' thencurrent_state<=s0;elsif(clk1'event and clk1='1') thencase current_state iswhen s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s1;end case;end if;end if;end process;led1<=light;end arc;花样二:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY2 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led2:out std_logic_vector(7 downto 0));end HY2;architecture arc of HY2 istype state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s 20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30);signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="00000000";constant l2:std_logic_vector(7 downto 0):="10000000";constant l3:std_logic_vector(7 downto 0):="11000000";constant l4:std_logic_vector(7 downto 0):="11100000";constant l5:std_logic_vector(7 downto 0):="11110000";constant l6:std_logic_vector(7 downto 0):="11111000"; constant l7:std_logic_vector(7 downto 0):="11111100"; constant l8:std_logic_vector(7 downto 0):="11111110"; constant l9:std_logic_vector(7 downto 0):="11111111"; constant l10:std_logic_vector(7 downto 0):="01111111"; constant l11:std_logic_vector(7 downto 0):="00111111"; constant l12:std_logic_vector(7 downto 0):="00011111"; constant l13:std_logic_vector(7 downto 0):="00001111"; constant l14:std_logic_vector(7 downto 0):="00000111"; constant l15:std_logic_vector(7 downto 0):="00000011"; constant l16:std_logic_vector(7 downto 0):="00000001"; constant l17:std_logic_vector(7 downto 0):="00000011"; constant l18:std_logic_vector(7 downto 0):="10000111"; constant l19:std_logic_vector(7 downto 0):="00001111"; constant l20:std_logic_vector(7 downto 0):="00011111"; constant l21:std_logic_vector(7 downto 0):="00111111"; constant l22:std_logic_vector(7 downto 0):="01111111"; constant l23:std_logic_vector(7 downto 0):="11111111"; constant l24:std_logic_vector(7 downto 0):="11111110"; constant l25:std_logic_vector(7 downto 0):="11111100"; constant l26:std_logic_vector(7 downto 0):="11111000"; constant l27:std_logic_vector(7 downto 0):="11110000"; constant l28:std_logic_vector(7 downto 0):="11100000"; constant l29:std_logic_vector(7 downto 0):="11000000"; constant l30:std_logic_vector(7 downto 0):="10000000"; beginif xuan="10" thenif clr='1' thencurrent_state<=s0;elsif(clk1'event and clk1='1') thencase current_state iswhen s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s7;when s7=>light<=l7;current_state<=s8;when s8=>light<=l8;current_state<=s9;when s9=>light<=l9;current_state<=s10;when s10=>light<=l10;current_state<=s11;when s11=>light<=l11;current_state<=s12;when s12=>light<=l12;current_state<=s13;when s13=>light<=l13;current_state<=s14;when s14=>light<=l14;current_state<=s15;when s15=>light<=l15;current_state<=s16;when s16=>light<=l16;current_state<=s17;when s17=>light<=l17;current_state<=s18;when s18=>light<=l18;current_state<=s19;when s19=>light<=l19;current_state<=s20;when s20=>light<=l20;current_state<=s21;when s21=>light<=l21;current_state<=s22;when s22=>light<=l22;current_state<=s23;when s23=>light<=l23;current_state<=s24;when s24=>light<=l24;current_state<=s25;when s25=>light<=l25;current_state<=s26;when s26=>light<=l26;current_state<=s27;when s27=>light<=l27;current_state<=s28;when s28=>light<=l28;current_state<=s29;when s29=>light<=l29;current_state<=s30;when s30=>light<=l30;current_state<=s1;end case;end if;end if;end process;led2<=light;end art;花样三:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY3 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led3:out std_logic_vector(7 downto 0));end HY3;architecture art of HY3 istype state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14); signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="10000000";constant l2:std_logic_vector(7 downto 0):="01000000"; constant l3:std_logic_vector(7 downto 0):="00100000"; constant l4:std_logic_vector(7 downto 0):="00010000"; constant l5:std_logic_vector(7 downto 0):="00001000"; constant l6:std_logic_vector(7 downto 0):="00000100"; constant l7:std_logic_vector(7 downto 0):="00000010"; constant l8:std_logic_vector(7 downto 0):="00000001"; constant l9:std_logic_vector(7 downto 0):="00000010"; constant l10:std_logic_vector(7 downto 0):="00000100"; constant l11:std_logic_vector(7 downto 0):="00001000"; constant l12:std_logic_vector(7 downto 0):="00010000"; constant l13:std_logic_vector(7 downto 0):="00100000"; constant l14:std_logic_vector(7 downto 0):="01000000"; beginif xuan="11" thenif clr='1'thencurrent_state<=s0;elsif(clk1'event and clk1='1')thencase current_state is --状态机转换when s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s7;when s7=>light<=l7;current_state<=s8;when s8=>light<=l8;current_state<=s9;when s9=>light<=l9;current_state<=s10;when s10=>light<=l10;current_state<=s11;when s11=>light<=l11;current_state<=s12;when s12=>light<=l12;current_state<=s13;when s13=>light<=l13;current_state<=s14;when s14=>light<=l14;current_state<=s1;end case;end if;end if;end process;led3<=light;end art;花样四:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY4 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led4:out std_logic_vector(7 downto 0));end HY4;architecture art of HY4 istype state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14); signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="10101010";constant l2:std_logic_vector(7 downto 0):="01010101";constant l3:std_logic_vector(7 downto 0):="10010010";constant l4:std_logic_vector(7 downto 0):="01001001";constant l5:std_logic_vector(7 downto 0):="10010100";constant l6:std_logic_vector(7 downto 0):="01001001";constant l7:std_logic_vector(7 downto 0):="00100100";constant l8:std_logic_vector(7 downto 0):="00011000";constant l9:std_logic_vector(7 downto 0):="00101010";constant l10:std_logic_vector(7 downto 0):="11000011";constant l11:std_logic_vector(7 downto 0):="01100000";constant l12:std_logic_vector(7 downto 0):="00111000";constant l13:std_logic_vector(7 downto 0):="10001100";constant l14:std_logic_vector(7 downto 0):="01001001";beginif xuan="00" thenif clr='1'thencurrent_state<=s0;elsif(clk1'event and clk1='1')thencase current_state iswhen s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s7;when s7=>light<=l7;current_state<=s8;when s8=>light<=l8;current_state<=s9;when s9=>light<=l9;current_state<=s10;when s10=>light<=l10;current_state<=s11;when s11=>light<=l11;current_state<=s12;when s12=>light<=l12;current_state<=s13;when s13=>light<=l13;current_state<=s14;when s14=>light<=l14;current_state<=s1;end case;end if;end if;end process;led4<=light;end art;顶层设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity caideng8 isport(clk:in std_logic;clr:in std_logic;opt:in std_logic;xuan:in std_logic_vector(1 downto 0);led:out std_logic_vector(7 downto 0) --八路彩灯输出);end caideng8;architecture art of caideng8 iscomponent FENPINQI --对分频器模块进行定义port(clk:in std_logic;clr:in std_logic;opt:in std_logic;clkout:out std_logic);end component FENPINQI;component HY1 --对花样一模块进行定义port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led1:out std_logic_vector(7 downto 0));end component HY1;component HY2 --对花样二模块进行定义port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led2:out std_logic_vector(7 downto 0));end component HY2;component HY3 --对花样三模块进行定义port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led3:out std_logic_vector(7 downto 0));end component HY3;component HY4port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led4:out std_logic_vector(7 downto 0));end component HY4;signal s:std_logic; --定义中间变量signal l1:std_logic_vector(7 downto 0);signal l2:std_logic_vector(7 downto 0);signal l3:std_logic_vector(7 downto 0);signal l4:std_logic_vector(7 downto 0);beginu1:FENPINQI port map(clk,clr,opt,s);u2:HY1 port map(s,clr,xuan,l1);u3:HY2 port map(s,clr,xuan,l2);u4:HY3 port map(s,clr,xuan,l3);u5:HY4 port map(s,clr,xuan,l4);led<=l1 when xuan="01" elsel2 when xuan="10" elsel3 when xuan="11" elsel4;end art;四.仿真花样一仿真波形:clr为输入,是异步复位端,当为高电平时有效。

相关文档
最新文档