EDA 流水灯设计

合集下载

EDA实验流水灯控制

EDA实验流水灯控制

彩灯控制器一、设计内容及要求:设计一个彩灯控制器,要求:1.四路彩灯从左向右逐次渐亮,间隔为1秒。

2.四路彩灯从右向左逐次渐灭,间隔为1秒。

3.四路彩灯同时点亮,时间间隔为1秒,然后同时变暗,时间为1秒,反复4次。

二、总体框图图(1)总体框图根据设计要求,电路设计大体思路如下:由脉冲发生器发出频率脉冲信号,利用计数器加法计数功能输出0000~1111的脉冲信号,经过数据选择器分别在0000~0011,0100~0111,1000~1111三个时段输出不同的高低电平,控制移位寄存器实现右移→左移→置数功能,从而控制彩灯按照设计要求实现亮灭。

三、选择器件本次课程设计所用器件如表一:表一本次课程设计所用器件1.同步二进制计数器74LS163表二7-3 74LS163功能表根据逻辑图、波形图、功能表分析,74LS163具有如下功能:管脚图逻辑符号1)1是同步4位二进制加法计数器,M=16,CP上升沿触发2)2既可同步清除,也可异步清除。

同步清除时,清除信号的低电平将在下一个CP上升沿配合下把四个触发器的输出置为低电平。

异步清除时,直接用清除信号的低电平把四个触发器的输出置为低电平。

3)3同步预置方式:当LD = 0时,在CP作用下,计数器可并行打入预置数据.当LD = 1时,使能输入PT同时为高电平,在CP作用下,进行正常计数。

4)PT任一为低时,计数器处于保持状态。

5) 5 CO为进位输出,可用来级联成n位同步计数器。

2.四位双向移位寄存器74LS19474LS194内部原理图74LS194四位双向移位寄存器具有左移、右移、并行数据输入、保持、清除功能。

1)从图1中74LS194的图形符号和引脚图分析。

SRG4是4位移位寄存器符号,D0~D3并行数据输入端、D SL左移串行数据输入端、D SR右移串行数据输入端、S A(M0)和S B (M1)(即9脚和10脚)工作方式控制端分别接电平开关,置1或置0,CP 时钟输入端接正向单次脉冲,清零端接负向单次脉冲,Q0~Q3输出端。

eda花样流水灯的课程设计

eda花样流水灯的课程设计

eda花样流水灯的课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握花样流水灯的设计原理;2. 学生能描述流水灯电路的工作原理,了解相关电子元件的功能和连接方式;3. 学生掌握C语言编程基础,能编写简单的程序控制流水灯的显示效果。

技能目标:1. 学生能运用所学知识,设计出具有创意的花样流水灯电路;2. 学生通过实践操作,提高焊接和电路调试的能力;3. 学生通过团队协作,学会沟通和解决问题,提高项目实践能力。

情感态度价值观目标:1. 学生对电子设计产生兴趣,培养创新意识和探索精神;2. 学生认识到科技发展对社会进步的重要性,增强社会责任感和使命感;3. 学生在团队协作中,学会尊重他人、分享成果,培养良好的团队合作精神。

分析课程性质、学生特点和教学要求:本课程为电子技术与应用的实践课程,适用于初中或高中年级学生。

学生在之前的学习中已经掌握了基本的电路知识和C语言编程基础。

课程注重实践操作,鼓励学生创新设计,培养学生的动手能力和团队协作能力。

课程目标具体、可衡量,旨在让学生通过实践,掌握EDA技术的基本应用,提高电子设计能力,同时注重培养学生的情感态度价值观,为今后的学习和发展奠定基础。

二、教学内容本课程教学内容主要包括以下三个方面:1. 电子设计自动化(EDA)基础理论- 了解EDA的基本概念、发展历程和应用领域;- 学习流水灯的设计原理和电路组成;- 掌握相关电子元件的功能、符号和连接方式。

2. 流水灯电路设计与编程- 学习流水灯电路的设计方法,分析不同显示效果的实现原理;- 掌握C语言编程基础,编写控制流水灯的程序;- 结合教材相关章节,实践操作,调试电路。

3. 团队协作与项目实践- 分组进行项目设计,明确分工,培养团队协作能力;- 制定项目进度计划,按计划完成电路设计、编程、调试和展示;- 教师指导,学生互评,总结项目实施过程中的经验教训。

教学内容安排和进度:第一周:EDA基础理论学习和流水灯设计原理了解;第二周:学习C语言编程基础,编写简单的流水灯程序;第三周:分组项目实践,进行电路设计和调试;第四周:项目总结与展示,交流学习心得。

eda流水灯课程设计

eda流水灯课程设计

eda流水灯课程设计一、课程目标知识目标:1. 理解EDA(电子设计自动化)的基本概念,掌握流水灯的设计原理;2. 学习并掌握流水灯电路的组成、工作原理及编程方法;3. 了解数字电路基础知识,如逻辑门、触发器等,并能将其应用于流水灯设计。

技能目标:1. 学会使用EDA软件(如Multisim、Protel等)进行电路设计和仿真;2. 学会编写简单的C语言程序,实现流水灯的控制;3. 培养动手实践能力,能够独立完成流水灯的制作与调试。

情感态度价值观目标:1. 培养学生对电子设计的兴趣和热情,激发创新意识;2. 培养学生的团队合作精神,学会在团队中沟通与协作;3. 培养学生严谨的科学态度,注重实践,敢于面对困难和挑战。

课程性质:本课程属于电子技术实践课程,结合理论知识,强调动手实践,培养学生的实际操作能力。

学生特点:本课程面向初中或高中学生,学生对电子技术有一定的基础,具备一定的逻辑思维能力和动手能力。

教学要求:注重理论与实践相结合,充分调动学生的积极性,引导学生在实践中掌握知识,提高技能,培养情感态度价值观。

教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. 电子设计自动化(EDA)基本概念介绍:包括EDA的定义、发展历程、应用领域等;相关教材章节:第一章 电子设计自动化概述2. 流水灯设计原理:讲解流水灯的工作原理、电路组成、编程方法;相关教材章节:第二章 常见数字电路设计实例3. 数字电路基础知识:回顾逻辑门、触发器等基础知识,并应用于流水灯设计;相关教材章节:第三章 数字电路基础知识4. EDA软件使用:学习Multisim、Protel等软件的基本操作,进行电路设计和仿真;相关教材章节:第四章 EDA软件及其应用5. 流水灯编程:学习编写简单的C语言程序,实现流水灯的控制;相关教材章节:第五章 C语言在数字电路设计中的应用6. 流水灯制作与调试:动手实践,分组进行流水灯的制作、编程与调试;相关教材章节:第六章 数字电路实践教学进度安排:1. 第1周:电子设计自动化基本概念介绍;2. 第2周:流水灯设计原理及电路组成;3. 第3周:数字电路基础知识回顾;4. 第4周:EDA软件使用;5. 第5周:流水灯编程;6. 第6周:流水灯制作与调试。

EDA课程设计---流水灯设计

EDA课程设计---流水灯设计

EDA课程设计流水灯设计目录一、摘要··3二、流水灯设计目的··4三、流水灯设计流程··4四、流水灯设计程序··5五、流水灯设计管脚分配··7六、功能仿真图··8七、原理图波形图··9八、设计注意事项··10九、课程设计总结··11十、参考文献··12十一、评分表··13一、摘要随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。

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

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

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

流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。

流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。

课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。

在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。

在此过程中培养从事设计工作的整体观念。

课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面:·独立工作能力和创造力。

·综合运用专业及基础知识,解决实际工程技术问题的能力。

EDA流水灯论文(VHDL)

EDA流水灯论文(VHDL)

滨江学院课程论文(可编程器件原理与应用)题目基于VHDL语言的流水灯设计学生姓名王秋阳学号20082305047院系滨江学院专业电子与信息工程指导教师刘建成二零一零年十二月三十日一、任务:采用ALTERA 公司的EPM7128SLC84-10芯片,通过VHDL 语言设计一个流水灯电路。

流水灯样式必须大于3种,且可以通过按键调节显示样式;可以通过按键调节流水灯变化快慢;当前流水灯样式和变化速度能够通过数码管显示出来;(附加:具有按键声)二、设计框图(框图说明)1MHZ 周期信号经过2个100分频,得到100HZ ,再经过1个10分频得到10HZ 信号,传给速度控制模块,得到需要的速度周期信号,然后传给样式选择模块,样式选择模块直接输出彩灯样式;控制模块通过接受两个按键信号,同时控制速度控制模块和样式选择模块;译码扫描模块通过判断控制模块,扫描数码管显示当前彩灯样式和彩灯变化速度;按键信号通过延时模块输出按键发生信号。

速度按键 样式按键控制模块速度控制样式选择译码和扫描数码显示彩灯显示1000HZ 信号100HZ 信号蜂鸣器三、原理图(CPLD内部原理说明)从原理图中可以看到,一共有8种模块,D触发器的作用是对按钮进行消抖,除D触发器之外的7个模块功能及作用如下:f100和f10分别是100和10的分频器,speed模块的作用是对彩灯变化速度进行控制,而style_switch模块的作用是对彩灯样式进行调节。

Control 模块接收按键信号对样式和速度进行总的控制。

Show模块是对速度值和样式值进行译码并进行扫描数码管,将当前样式和速度状态显示出来。

Delay模块则是对按键声的延时。

四、各个模块设计(波形仿真)1.f100模块功能:100分频波形仿真:VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f100 is --100分频port(clk:in std_logic;sec:out std_logic);end entity f100;architecture getsec of f100 issignal secout : std_logic :='1';beginprocess(clk) isvariable count100: integer range 0 to 50;beginif clk'event and clk='1' thencount100:=count100+1;if count100=50 thensecout<=not secout;count100:=0;end if;end if;end process;sec<=secout;end architecture getsec;2.f10模块功能:10分频波形仿真:VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f10 is –-10分频port(clk:in std_logic;sec:out std_logic);end entity f10;architecture getsec of f10 issignal secout : std_logic :='1';beginprocess(clk) isvariable count10: integer range 0 to 5;beginif clk'event and clk='1' thencount10:=count10+1;if count10=5 thensecout<=not secout;count10:=0;end if;end if;end process;sec<=secout;end architecture getsec;3.speed模块功能:根据DATE输入端的数值大小,产生不同频率的周期信号,从而达到控制彩灯变化速率的目的。

EDA实验设计报告流水灯

EDA实验设计报告流水灯

EDA实验设计报告姓名:张炫学号:2011128085班级:11电工设计内容:设计8位流水灯的4种循环模式,并用quartusII进行编译和仿真,用LED灯实现需求。

控制系统方案:四种循环模式(1)灯从右到左依次都闪亮(2)灯从右向左逐次闪亮(3)灯从右向左逐次闪亮(4) 从右向左每间隔一个闪亮设计方案:通过复位端reset 与按键端right,left,shan,yici控制,当复位reset为 1 时led 灯最左端点亮,再通过else-if语句控制试验程序:module light(clk,reset,right,left,shan,yici,led);input clk,reset,right,left,shan,yici;output[7:0] led;reg[7:0] led;always @ (posedge clk)beginif(reset)beginled<=8’b00000001;endelsebeginif(yici)beginled<=((led<<1)+8’b00000001);if(led==8’b11111111)led<=8’b00000001;endif(right)beginled<=led>>1;if(led==8’b00000001)led<=8’b10000000;endif(left)beginled<=led<<1;if(led==8’b10000000)led<=8’b00000001;endif(shan)beginif(led==8’b01010101)led<=8’b10101010;elseled<=8’b01010101;endendendendmodule实验总结:经过本次课程设计使我进一步巩固了从课堂上学到的知识,虽然在实验过程中多次出错,但通过不断的检查和调试终于成功的实现了8位流水灯的控制。

EDA花样流水灯

EDA花样流水灯

EDA大作业流水灯设计基于Quartus II的花样流水灯的设计流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。

流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。

1.设计目的a.学习使用EDA集成设计软件Quartus II,电路描述,综合,模拟过程b.了解基于EDA应用系统的设计方法c. 掌握使用EDA工具设计流水灯的设计思路和设计方法d.熟练使用Quartus II对实验程序进行改错,调试以及演示现象2. 设计说明流水灯设计是由八只LED显示灯来实现的,通过程序代码来控制这八只灯的亮灭,从而实现花型的变化(快慢,顺序)。

3.程序设计3.1library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY first ISPORT (clk : IN std_logic;rst : IN std_logic;c : OUT std_logic_vector(7 DOWNTO 0));END first;ARCHITECTURE arch OF first ISCONSTANT state0 : std_logic_vector(2 DOWNTO 0) := "000";CONSTANT state1 : std_logic_vector(2 DOWNTO 0) := "001";CONSTANT state2 : std_logic_vector(2 DOWNTO 0) := "010";CONSTANT state3 : std_logic_vector(2 DOWNTO 0) := "011";CONSTANT state4 : std_logic_vector(2 DOWNTO 0) := "100";CONSTANT state5 : std_logic_vector(2 DOWNTO 0) := "101"; CONSTANT state6 : std_logic_vector(2 DOWNTO 0) := "110"; CONSTANT state7 : std_logic_vector(2 DOWNTO 0) := "111"; SIGNAL state : std_logic_vector(2 DOWNTO 0);SIGNAL cnt : std_logic_vector(2 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (NOT rst = '1') THENstate <= state0;cnt <= "000";ELSIF(clk'EVENT AND clk='1')THENcnt <= cnt + "001";IF (cnt = "111") THENCASE state ISWHEN state0 =>state <= state1;WHEN state1 =>state <= state2;WHEN state2 =>state <= state3;WHEN state3 =>state <= state4;WHEN state4 =>state <= state5;WHEN state5 =>state <= state6;WHEN state6 =>state <= state7;WHEN state7 =>state <= state0; WHEN OTHERS =>NULL;END CASE;END IF;END IF;END PROCESS;PROCESS(state)BEGINCASE state ISWHEN state0 =>c <= "";WHEN state1 =>c <= "";WHEN state2 =>c <= "";WHEN state3 =>c <= "";WHEN state4 =>c <= "";WHEN state5 =>c <= "";WHEN state6 =>c <= "";WHEN state7 =>c <= "";WHEN OTHERS =>NULL;END CASE;END PROCESS;END arch;3.2library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT (clk : IN std_logic;rst : IN std_logic;c : OUT std_logic_vector(7 DOWNTO 0));END second;ARCHITECTURE arch OF second ISCONSTANT state0 : std_logic_vector(2 DOWNTO 0) := "000"; CONSTANT state1 : std_logic_vector(2 DOWNTO 0) := "001"; CONSTANT state2 : std_logic_vector(2 DOWNTO 0) := "010"; CONSTANT state3 : std_logic_vector(2 DOWNTO 0) := "011"; CONSTANT state4 : std_logic_vector(2 DOWNTO 0) := "100"; CONSTANT state5 : std_logic_vector(2 DOWNTO 0) := "101"; CONSTANT state6 : std_logic_vector(2 DOWNTO 0) := "110"; CONSTANT state7 : std_logic_vector(2 DOWNTO 0) := "111"; SIGNAL state : std_logic_vector(2 DOWNTO 0);SIGNAL cnt : std_logic_vector(2 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (NOT rst = '1') THENstate <= state0;cnt <= "000";ELSIF(clk'EVENT AND clk='1')THENcnt <= cnt + "001";IF (cnt = "111") THENCASE state ISWHEN state0 =>state <= state1; WHEN state1 =>state <= state2; WHEN state2 =>state <= state3; WHEN state3 =>state <= state4; WHEN state4 =>state <= state5; WHEN state5 =>state <= state6; WHEN state6 =>state <= state7; WHEN state7 =>state <= state0; WHEN OTHERS =>NULL;END CASE;END IF;END IF;END PROCESS;PROCESS(state)BEGINCASE state ISWHEN state0 =>c <= "";WHEN state1 =>c <= "";WHEN state2 =>c <= "";WHEN state3 =>c <= "";WHEN state4 =>c <= "";WHEN state5 =>c <= "";WHEN state6 =>c <= "";WHEN state7 =>c <= "";WHEN OTHERS =>NULL;END CASE;END PROCESS;END arch;3.3library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY third ISPORT (clk : IN std_logic;rst : IN std_logic;c : OUT std_logic_vector(7 DOWNTO 0));END third;ARCHITECTURE arch OF third ISCONSTANT state0 : std_logic_vector(2 DOWNTO 0) := "000"; CONSTANT state1 : std_logic_vector(2 DOWNTO 0) := "001"; CONSTANT state2 : std_logic_vector(2 DOWNTO 0) := "010"; CONSTANT state3 : std_logic_vector(2 DOWNTO 0) := "011"; CONSTANT state4 : std_logic_vector(2 DOWNTO 0) := "100"; CONSTANT state5 : std_logic_vector(2 DOWNTO 0) := "101"; CONSTANT state6 : std_logic_vector(2 DOWNTO 0) := "110"; CONSTANT state7 : std_logic_vector(2 DOWNTO 0) := "111"; SIGNAL state : std_logic_vector(2 DOWNTO 0);SIGNAL cnt : std_logic_vector(2 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (NOT rst = '1') THENstate <= state0;cnt <= "000";ELSIF(clk'EVENT AND clk='1')THENcnt <= cnt + "001";IF (cnt = "111") THENCASE state ISWHEN state0 =>state <= state1; WHEN state1 =>state <= state2; WHEN state2 =>state <= state3; WHEN state3 =>state <= state4; WHEN state4 =>state <= state5; WHEN state5 =>state <= state6; WHEN state6 =>state <= state7; WHEN state7 =>state <= state0; WHEN OTHERS =>NULLEND CASE;END IF;END IF;END PROCESS;PROCESS(state)BEGINCASE state ISWHEN state0 =>c <= "";WHEN state1 =>c <= "";WHEN state2 =>c <= "";WHEN state3 =>c <= "";WHEN state4 =>c <= "";WHEN state5 =>c <= "";WHEN state6 =>c <= "";WHEN state7 =>c <= "";WHEN OTHERS =>NULL;END CASE;END PROCESS;END arch;3.4library ieee;use ieee.std_logic_1164.all;entity sanba isport(a,b,c:in std_logic;y7,y6,y5,y4,y3,y2,y1,y0:out std_logic); end entity sanba;architecture behav of sanba issignal abc: std_logic_vector(2 downto 0);beginabc <= a & b & c ;process(a,b,c)begincase abc iswhen "000" =>y0<='0';y1<='1';y2<='1';y3<='1';y4<='1';y5<='1';y6<='1';y7<='1';when "001" =>y0<='1';y1<='0';y2<='1';y3<='1';y4<='1';y5<='1';y6<='1';y7<='1';when "010" =>y0<='1';y1<='1';y2<='0';y3<='1';y4<='1';y5<='1';y6<='1';y7<='1';when "011" =>y0<='1';y1<='1';y2<='1';y3<='0';y4<='1';y5<='1';y6<='1';y7<='1';when "100" =>y0<='1';y1<='1';y2<='1';y3<='1';y4<='0';y5<='1';y6<='1';y7<='1';when "101" =>y0<='1';y1<='1';y2<='1';y3<='1';y4<='1';y5<='0';y6<='1';y7<='1';when "110" =>y0<='1';y1<='1';y2<='1';y3<='1';y4<='1';y5<='1';y6<='0';y7<='1';when "111" =>y0<='1';y1<='1';y2<='1';y3<='1';y4<='1';y5<='1';y6<='1';y7<='0'; when others =>end case;end process;end architecture behav;3.5 library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY first ISPORT (clk : IN std_logic;rst : IN std_logic;c : OUT std_logic_vector(7 DOWNTO 0));END first;ARCHITECTURE arch OF first ISCONSTANT state0 : std_logic_vector(2 DOWNTO 0) := "000"; CONSTANT state1 : std_logic_vector(2 DOWNTO 0) := "001"; CONSTANT state2 : std_logic_vector(2 DOWNTO 0) := "010"; CONSTANT state3 : std_logic_vector(2 DOWNTO 0) := "011"; CONSTANT state4 : std_logic_vector(2 DOWNTO 0) := "100"; CONSTANT state5 : std_logic_vector(2 DOWNTO 0) := "101"; CONSTANT state6 : std_logic_vector(2 DOWNTO 0) := "110"; CONSTANT state7 : std_logic_vector(2 DOWNTO 0) := "111"; SIGNAL state : std_logic_vector(2 DOWNTO 0);SIGNAL cnt : std_logic_vector(2 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (NOT rst = '1') THENstate <= state0;cnt <= "000";ELSIF(clk'EVENT AND clk='1')THENcnt <= cnt + "001";IF (cnt = "111") THENCASE state ISWHEN state0 =>state <= state1;WHEN state1 =>state <= state2;WHEN state2 =>state <= state3;WHEN state3 =>state <= state4; WHEN state4 =>state <= state5; WHEN state5 =>state <= state6; WHEN state6 =>state <= state7; WHEN state7 =>state <= state0; WHEN OTHERS =>NULL;END CASE;END IF;END IF;END PROCESS;PROCESS(state)BEGINCASE state ISWHEN state0 =>c <= "";WHEN state1 =>c <= "";WHEN state2 =>c <= "";WHEN state3 =>c <= "";WHEN state4 =>c <= "";WHEN state5 =>c <= "";WHEN state6 =>c <= "";WHEN state7 =>c <= "";WHEN OTHERS =>NULL;END CASE;END PROCESS;END arch;3.6 library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY first ISPORT (clk : IN std_logic;rst : IN std_logic;c : OUT std_logic_vector(7 DOWNTO 0));END first;ARCHITECTURE arch OF first ISCONSTANT state0 : std_logic_vector(2 DOWNTO 0) := "000"; CONSTANT state1 : std_logic_vector(2 DOWNTO 0) := "001"; CONSTANT state2 : std_logic_vector(2 DOWNTO 0) := "010"; CONSTANT state3 : std_logic_vector(2 DOWNTO 0) := "011"; CONSTANT state4 : std_logic_vector(2 DOWNTO 0) := "100"; CONSTANT state5 : std_logic_vector(2 DOWNTO 0) := "101";CONSTANT state6 : std_logic_vector(2 DOWNTO 0) := "110"; CONSTANT state7 : std_logic_vector(2 DOWNTO 0) := "111"; SIGNAL state : std_logic_vector(2 DOWNTO 0);SIGNAL cnt : std_logic_vector(2 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (NOT rst = '1') THENstate <= state0;cnt <= "000";ELSIF(clk'EVENT AND clk='1')THENcnt <= cnt + "001";IF (cnt = "111") THENCASE state ISWHEN state0 =>state <= state1;WHEN state1 =>state <= state2;WHEN state2 =>state <= state3;WHEN state3 =>state <= state4;WHEN state4 =>state <= state5;WHEN state5 =>state <= state6;WHEN state6 =>state <= state7;WHEN state7 =>state <= state0; WHEN OTHERS =>NULL;END CASE;END IF;END IF;END PROCESS;PROCESS(state)BEGINCASE state ISWHEN state0 =>c <= "";WHEN state1 =>c <= "";WHEN state2 =>c <= "";WHEN state3 =>c <= "";WHEN state4 =>c <= "";WHEN state5 =>c <= "";WHEN state6 =>c <= "";WHEN state7 =>c <= "";WHEN OTHERS =>NULL;END CASE;END PROCESS;END arch;3.7 library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY first ISPORT (clk : IN std_logic;rst : IN std_logic;c : OUT std_logic_vector(7 DOWNTO 0));END first;ARCHITECTURE arch OF first ISCONSTANT state0 : std_logic_vector(2 DOWNTO 0) := "000"; CONSTANT state1 : std_logic_vector(2 DOWNTO 0) := "001"; CONSTANT state2 : std_logic_vector(2 DOWNTO 0) := "010"; CONSTANT state3 : std_logic_vector(2 DOWNTO 0) := "011"; CONSTANT state4 : std_logic_vector(2 DOWNTO 0) := "100"; CONSTANT state5 : std_logic_vector(2 DOWNTO 0) := "101"; CONSTANT state6 : std_logic_vector(2 DOWNTO 0) := "110"; CONSTANT state7 : std_logic_vector(2 DOWNTO 0) := "111"; SIGNAL state : std_logic_vector(2 DOWNTO 0);SIGNAL cnt : std_logic_vector(2 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (NOT rst = '1') THENstate <= state0;cnt <= "000";ELSIF(clk'EVENT AND clk='1')THENcnt <= cnt + "001";IF (cnt = "111") THENCASE state ISWHEN state0 =>state <= state1; WHEN state1 =>state <= state2; WHEN state2 =>state <= state3; WHEN state3 =>state <= state4; WHEN state4 =>state <= state5; WHEN state5 =>state <= state6; WHEN state6 =>state <= state7; WHEN state7 =>state <= state0; WHEN OTHERS =>NULL;END CASE;END IF;END IF;END PROCESS;PROCESS(state)BEGINCASE state ISWHEN state0 =>c <= "";WHEN state1 =>c <= "";WHEN state2 =>c <= "";WHEN state3 =>c <= "";WHEN state4 =>c <= "";WHEN state5 =>c <= "";WHEN state6 =>c <= "";WHEN state7 =>c <= "";WHEN OTHERS =>NULL;END CASE;END PROCESS;END arch;3.8 library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY first ISPORT (clk : IN std_logic;rst : IN std_logic;c : OUT std_logic_vector(7 DOWNTO 0));END first;ARCHITECTURE arch OF first ISCONSTANT state0 : std_logic_vector(2 DOWNTO 0) := "000"; CONSTANT state1 : std_logic_vector(2 DOWNTO 0) := "001"; CONSTANT state2 : std_logic_vector(2 DOWNTO 0) := "010"; CONSTANT state3 : std_logic_vector(2 DOWNTO 0) := "011"; CONSTANT state4 : std_logic_vector(2 DOWNTO 0) := "100"; CONSTANT state5 : std_logic_vector(2 DOWNTO 0) := "101"; CONSTANT state6 : std_logic_vector(2 DOWNTO 0) := "110"; CONSTANT state7 : std_logic_vector(2 DOWNTO 0) := "111"; SIGNAL state : std_logic_vector(2 DOWNTO 0);SIGNAL cnt : std_logic_vector(2 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (NOT rst = '1') THENstate <= state0;cnt <= "000";ELSIF(clk'EVENT AND clk='1')THENcnt <= cnt + "001";IF (cnt = "111") THENCASE state ISWHEN state0 =>state <= state1;WHEN state1 =>state <= state2;WHEN state2 =>state <= state3; WHEN state3 =>state <= state4; WHEN state4 =>state <= state5; WHEN state5 =>state <= state6; WHEN state6 =>state <= state7; WHEN state7 =>state <= state0; WHEN OTHERS =>NULL;END CASE;END IF;END IF;END PROCESS;PROCESS(state)BEGINCASE state ISWHEN state0 =>c <= "";WHEN state1 =>c <= "";WHEN state2 =>c <= "";WHEN state3 =>c <= "";WHEN state4 =>c <= "";WHEN state5 =>c <= "";WHEN state6 =>c <= "";WHEN state7 =>c <= "";WHEN OTHERS =>NULL;END CASE;END PROCESS;END arch;4.流水灯原理图图1 顶层原理图5.仿真波形图图(2)顶层仿真波形图6.心得体会通过本次课程设计,我基本对EDA有了入门的了解和认识,在课堂之外进一步加深了对EDA课程各知识点的学习和以及quartusII软件开发平台的操作。

EDA流水灯课程设计

EDA流水灯课程设计

流水灯程序设计
编程语言:C语言 编译工具:Keil C51
开发环境:Keil uVision 调试工具:Keil Debugger
初始化:设置流水灯的初始状态,如关闭所有灯 循环控制:设置循环条件,如循环次数或循环时间 灯状态更新:根据循环条件,更新流水灯的状态,如依次点亮或熄灭 延时处理:在灯状态更新后,添加延时处理,使流水灯效果更加明显 结束处理:循环结束后,关闭所有灯,结束程序
EDA流水灯课程设计
汇报人:
目录
EDA流水灯概计
流水灯程序设计
流水灯硬件实现
流水灯系统优化与 扩展
EDA流水灯概述
流水灯是一种常见 的电子设备,用于 显示各种信息
流水灯通常由多个 LED灯组成,可以 显示不同的颜色和 亮度
流水灯可以通过 编程控制,实现 各种动态效果
流水灯的工作原理是通过控制LED灯的亮灭时间,使LED灯按照一定的顺序依次亮 起和熄灭。
流水灯的控制方式有多种,包括硬件控制和软件控制。硬件控制通常使用定时器 或计数器,软件控制通常使用微控制器或单片机。
流水灯的应用广泛,可以用于广告牌、指示灯、装饰灯等领域。
EDA软件介绍
添加标题 添加标题 添加标题 添加标题 添加标题 添加标题
编写流水灯程序:根据硬件电路和功能需求,编写相应的程序代码 调试流水灯程序:通过仿真软件或实际硬件设备,对编写的程序进行调试,确保其正确运行 优化流水灯程序:根据调试结果,对程序进行优化,提高运行效率和稳定性 编写流水灯程序的注意事项:注意硬件接口的匹配,避免出现硬件冲突等问题
流水灯硬件实现
发展趋势:智能 化、集成化、小 型化、低功耗
技术挑战:提高 稳定性、可靠性、 安全性
市场前景:随着 物联网、人工智 能等技术的发展, 流水灯系统将有 更广泛的应用前 景

EDA实验设计报告流水灯

EDA实验设计报告流水灯

EDA实验设计报告流水灯一、实验背景流水灯是一种光电组合组件,它大多由两个简单元件组成,一个是led发光二极管,另一个是电位器,可以改变二极管的亮度。

本实验以FATI0A0话题,使用IMO89C52单片机实现流水灯,探究LED的工作原理和单片机的控制原理。

二、实验目的1、通过练习,掌握FATI0A0开发工具的使用,熟悉FATI0A0的基础开发流程;2、掌握基于PORTA的控制方法,通过调节端口的输出电压,控制LED的亮度和闪烁;3、掌握基于定时器的控制方法,使LED实现流水灯效果;4、掌握电路结构和作用原理,用多种方式实现流水灯效果,利用延时函数编程,启用定时器0、定时器1和定时中断,掌握定时器的设置方法等。

三、实验环境本次流水灯实验由FATI0A0开发平台准备了硬件环境:实验台、IMO89C52单片机、晶振、电源、LED等组成。

四、实验步骤(一)编写程序1.首先利用CY8IDE软件设计并编写流水灯程序,开启定时器,通过定时中断实现LED 的闪烁;2.然后了解定时器1的设置方法,编写流水灯程序,将定时器1设置为内部计数,并设定中断周期;3.最后将定时器1设置为高中断优先级,以确保流水灯的互斥性。

(二)烧写1.连接实验台的FATI0A0和串口,Push连接拨码开关,检查元件布局是否正确;2.将编写的程序烧写到FATI0A0,同时将电源和晶振接到FATI0A0的连接器上;3.然后将烧写好的源代码下载到FATI0A0可编译环境,并在FATI0A0上启动,程序就会运行起来。

(三)验证1.将拉线连接到LED上,先检查LED是否能正常亮灭;2.将程序烧写到FATI0A0后,打开LED,检查流水灯效果,看是否按照要求显示;3.如果实验结果满足要求,实验就成功。

五、结论本次实验熟悉了FATI0A0开发环境的使用,掌握了PORTA的控制方法,熟悉了基于定时器的控制方法,使LED实现流水灯效果,用多种方式实现流水灯效果,利用延时函数编程,启动定时器0、定时器1和定时中断,掌握定时器的设置方法等,有助于更好、更全面地掌握IMO89C52单片机和流水灯的相关知识。

EDA流水灯,数码管显示01234567,加减计数,

EDA流水灯,数码管显示01234567,加减计数,

练习1.两位的循环彩灯,自定义的循环彩灯2.用另外的方式实现按键控制数码管加减3.设计一个在四个数码管上,显示拨码开关给定的值。

1、设计一个流水灯。

原理图设计:(8位流水灯)程序设计:(16位流水灯)module led_s(rst,clk,leds);input rst,clk;output [15:0] leds;reg [15:0] leds;reg [3:0]count;always @(posedge clk)beginif (rst)count <=16 'h00_00;elsebeginif(count==4'hf)count <=16 'h00_00;elsecount <=count+1;endendalways @(count)begincase(count)0: leds<= 16 'b0000_0000_0000_0001;1: leds<= 16 'b0000_0000_0000_0010;2: leds<= 16 'b0000_0000_0000_0100;3: leds<= 16 'b0000_0000_0000_1000;4: leds<= 16 'b0000_0000_0001_0000;5: leds<= 16 'b0000_0000_0010_0000;6: leds<= 16 'b0000_0000_0100_0000;7: leds<= 16 'b0000_0000_1000_0000;8: leds<= 16 'b0000_0001_0000_0000;9: leds<= 16 'b0000_0010_0000_0000;10: leds<=16 'b0000_0100_0000_0000;11: leds<=16 'b0000_1000_0000_0000;12: leds<=16 'b0001_0000_0000_0000;13: leds<=16 'b0010_0000_0000_0000;14: leds<=16 'b0100_0000_0000_0000;15: leds<=16 'b1000_0000_0000_0000;default: leds<=16 'hxxxx;endcaseendendmodule2、设计一个加减计数器,计数器的值在一位数码管上显示出来。

eda流水灯课程设计

eda流水灯课程设计

eda流水灯课程设计一、教学目标本课程旨在通过eda流水灯的设计,让学生掌握基本电子设计原理和技能,培养学生的创新能力和实践能力。

知识目标:使学生了解eda流水灯的工作原理,掌握基本的电子电路设计方法,了解电子器件的使用和调试。

技能目标:培养学生使用eda工具进行电子设计的能力,提高学生的电路调试和优化技能,培养学生的创新设计思维。

情感态度价值观目标:培养学生对电子科技的兴趣和热情,引导学生正确使用电子设备,注意安全,培养学生的团队合作意识和沟通能力。

二、教学内容本课程的教学内容主要包括eda流水灯的基本原理、设计方法和实践操作。

首先,介绍eda流水灯的工作原理和相关电子器件的使用方法。

然后,讲解使用eda工具进行电子设计的基本方法,包括电路图的绘制、元件的选型和电路的仿真。

最后,进行eda流水灯的实践操作,包括电路的搭建、调试和优化。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。

首先,通过讲授法,使学生了解eda流水灯的基本原理和相关知识。

然后,通过讨论法,引导学生进行思考和交流,提高学生的理解能力。

接下来,通过案例分析法,分析实际案例,使学生了解eda流水灯的设计方法和流程。

最后,通过实验法,进行eda流水灯的实践操作,培养学生的动手能力和实践能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源。

教材:选用权威、实用的教材,为学生提供基本的学习资料。

参考书:提供相关的参考书籍,帮助学生深入了解eda流水灯的相关知识。

多媒体资料:制作精美的多媒体课件,生动展示eda流水灯的设计原理和实践操作。

实验设备:准备充足的实验设备,保证每个学生都能进行实践操作。

五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等表现,评估学生的学习态度和理解能力。

EDA流水灯设计

EDA流水灯设计

流水灯设计实验一.实验目的通过此实验让我们进一步了解,熟悉和掌握CPLD/FPGA开发软件的使用方法及VHDL 的编程方法和QuarturII原理图的输入与设计。

学习简单时序电路的设计和硬件的测试。

二.实验内容本实验的内容是建立可用于控制LED流水灯的简单硬件电路,要求在SMARTSOPC实验箱上实现LED1~LED8发光二极管流水灯显示。

三.实验原理在LED1~LED8引脚上周期性的输出流水数据,如原来输出的数据是11111100则表示点亮LED1,LED2(共阳接法),流水一次后,输出的数据应该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管。

就可以实现LED流水灯。

为了观察方便,流水速率最好在2Hz左右。

在设计分频程序时,把48MHz的分频到2Hz,设计一个25位宽的计数器即可。

四.实验步骤(1)建立工程:启动QuartusII,在File中选择New Project Wizard···即建立了一个空白工程,命名为Ledwater,保存在自己建立的文件夹中,在选择芯片型号时对照实际情况,学校实验室一般为EP1C12Q240C8。

(2)创建源程序文件:在File中选择New···新建VHDL源程序文件ledwater.vhd,输入程序代码并保存,保存在上面新建的文件夹中。

然后在File中选择Creat Update中的Creat Symbol,进行编译,若在编译过程中发现错误,则找出并更正,直至编译成功。

(3)创建模块:在File中选择New···创建BlockDiagram模块,左键单击空白界面,出现框后,在Libraries中Project,里面为由ledwater.vhd生成名为ledwater.bsf的模块符号,选择模块放入界面后,左键单击模块,选择Generate Pins For Symbol Ports,就出现了输入和输出引脚,双击各管脚符号,进行管脚命名,与输出与输入口一致既可。

EDA流水灯课程设计

EDA流水灯课程设计

黄冈师院物电学院《EDA技术》课程设计报告项目名称:多模式流水灯设计专业年级:电子信息工程2010级学号: 201022240202 学生姓名:指导教师:冯杰报告完成日期2012 年12 月30 日评阅结果评阅教师第一章绪论1.1 系统背景1.1.1、EDA技术EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

1.1.2、实验内容设计可以多模式控制的流水灯,并用Max+PlusⅡ10.2进行编译和仿真,可以在实验箱上实现自己的需求功能。

1.1.3、设计要求可以进行不同频率选择及不同模式选择进行组合,必须有手动选择组合,至少4种流水灯方式第二章系统电路设计2.1 系统总体设计框架结构设计原理:由分频器实现2、4、8、16的分频,设计一个十六进制计数器,由低位控制四选一电路,高位控制模式选择电路。

模式选择则由状态机来实现四种状态之间的转换。

2.2系统单元电路设计2.2.1分频器设计程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.std_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLK_DIV ISPORT(CLK : IN STD_LOGIC;CLK_DIV2 :OUT STD_LOGIC;CLK_DIV4 :OUT STD_LOGIC;CLK_DIV8 :OUT STD_LOGIC;CLK_DIV16 :OUT STD_LOGIC);END CLK_DIV;ARCHITECTURE RTL OF CLK_DIV ISSIGNAL COUNT : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF (CLK'EVENT AND CLK='1') THENIF(COUNT="1111") THEN COUNT<=(OTHERS=>'0');ELSE COUNT<=COUNT+1;END IF;END IF;END PROCESS;CLK_DIV2<=COUNT(0);CLK_DIV4<=COUNT(1);CLK_DIV8<=COUNT(2);CLK_DIV16<=COUNT(3);END RTL;仿真分析:本程序用VHDl语言,对时钟信号进行2分频、4分频、8分频、16分频。

EDA流水灯设计

EDA流水灯设计
实验报告
一、实验目的
1.熟练掌握Quartus II原理图设计数字电路的方法;
2.掌握译码器、移位寄存器、计数器等的使用方法;
3.设计一个彩灯控制器,要求有四种不同形式自动变化。
二、所用器件
图1、二进制计数器图2、bcd计数器图3、移位寄存器图4、双2-4译码器
三、 设计方案
如图5所示为总体方框图。
3、花样控制器
花样控制器是一个2-4译码器,选择花样,并使其轮所示,LED指示灯显示过程是:八个灯依次被点亮,当所有灯都点亮后再将它们熄灭,再依次点亮所有灯……
图7
花样二如图8所示,LED指示灯显示过程是:第一个LED灯亮,其它灯灭,向左循
图8
花样三如图9所示,LED指示灯显示过程是:先点亮所有灯,再依次熄灭
图5、彩灯流程图
1、分频器
将实验箱48MHZ的频率分成1HZ、2HZ、4HZ、8HZ等频率,以供花样电路、时间选择器使用。电路图如图6所示下:
图6
2、时间选择器
时间选择器是一个二分频的分频器,将1HZ分成1/4HZ和1/8HZ,可以实现00、01、10、11的周期变化,在接上译码器就可以实现四种花样电路轮流变化。

EDA课程设计流水灯设计

EDA课程设计流水灯设计

EDA课程设计流水灯设计教学目标:通过设计流水灯的项目,让学生熟悉EDA工具的使用,了解数字电路的基本原理和设计思想。

教学内容:1. 数字电路基础知识复习:- 二进制和十进制的转换- 逻辑门的基本原理和真值表- Karnaugh图的绘制与简化逻辑表达式2. EDA工具的介绍:- 常见的EDA工具有哪些- EDA工具的安装与配置3. 流水灯的基本原理和设计思路:- 利用时钟信号控制LED灯的亮灭- 利用触发器实现流水灯效果- 设计时钟频率、LED灯数量等参数4. EDA工具的使用:- 创建新项目- 绘制电路图- 设置时钟频率和参数- 仿真电路并观察波形5. 流水灯设计:- 使用逻辑门和时序电路设计流水灯- 绘制电路图并进行仿真- 优化电路设计,减少逻辑门的使用6. 实验报告撰写:- 记录实验设计和过程- 分析实验结果教学步骤:1. 复习数字电路基础知识,包括二进制和十进制的转换、逻辑门的基本原理和真值表、Karnaugh图的绘制与简化逻辑表达式等。

2. 介绍常见的EDA工具并进行安装与配置。

3. 分析流水灯的基本原理和设计思路,包括利用时钟信号控制LED灯的亮灭、利用触发器实现流水灯效果、设计时钟频率、LED灯数量等参数。

4. 演示EDA工具的使用,创建新项目,绘制电路图,设置时钟频率和参数,进行电路仿真并观察波形。

5. 根据教学步骤4中演示的方法,引导学生设计流水灯电路,并进行仿真。

6. 分析仿真结果,讨论实际电路与理论设计的差异。

7. 优化电路设计,减少逻辑门的使用,提高电路的性能。

8. 学生根据实验过程和结果撰写实验报告。

教学评估:1. 在设计流水灯电路时,学生的思路清晰,能够正确设置时钟频率和参数。

2. 在电路仿真中,学生能够正确绘制电路图并观察波形。

3. 在优化电路设计时,学生能减少逻辑门的使用,提高电路的性能。

4. 学生能够撰写清晰、准确的实验报告,对实验过程和结果进行分析。

扩展练习:1. 设计多种流水灯效果,如交替闪烁、循环移动等。

EDA流水灯的设计

EDA流水灯的设计

一.流水灯控制的设计1.题目1).设计要求设计能让一排灯(8只)自动改变显示花样的控制系统。

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

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

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

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

◆随机变化。

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

2).设计提示▲灯光移动用移位寄存器实现。

各种花样,有的可以存于寄存器中,使用时并行置人移位寄存器,有的可以利用环形计数器或扭环计数器实现。

▲节拍信号可选用实验板上的振荡器,花样控制信号可用计数器控制。

▲随机信号可以用长度大于是15的伪随机序列信号发生器或用高速时钟驱动上述4位计数器得到。

2.引言EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

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

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

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

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

3.设计思路1)灯光移动用移位寄存器实现,各种花样,有的可以存于寄存器中,使用时并行置入移位寄存器,有的可以利用环形计数器或扭环计数器实现。

2)节拍信号可选用实验板上的振荡器,花样控制信号可用4位计数器实现控制,1为节拍变化,另三位控制花样。

3)随机信号可以用长度大于15的伪随机序列信号发生器或用高速时钟驱动计数器得到4.代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity KKJ isport(clk: in std_logic;clr: in std_logic;choose: in std_logic_vector(2 downto 0);led: out std_logic_vector(7 downto 0));end KKJ;architecture control of KKJ issignal cnt1:std_logic_vector(1 downto 0);signal cnt2:std_logic_vector(1 downto 0);signal cnt3:std_logic_vector(1 downto 0);signal cnt4:std_logic_vector(1 downto 0);signal cnt5:std_logic_vector(1 downto 0);signal cnt6:std_logic_vector(1 downto 0);signal cnt7:std_logic_vector(1 downto 0);signal cnt8:std_logic_vector(1 downto 0);beginprocess(clk,clr)beginif clr='0'thenled<="00000000";elseif choose="000" thenif clk'event and clk='0' thencnt1<=cnt1+1;end if;case cnt1 iswhen "00"=>led<="10000000";when "01"=>led<="01000000";when "10"=>led<="00100000";when "11"=>led<="00010000";end case;elsif choose="001" thenif clk'event and clk='1' thencnt2<=cnt2+1;end if;case cnt2 iswhen "00"=>led<="00000001";when "01"=>led<="00000010";when "10"=>led<="00000100";when "11"=>led<="00001000"; end case;elsif choose="010" thenif clk'event and clk='1' then cnt3<=cnt3+1;end if;case cnt3 iswhen "00"=>led<="10000000";when "01"=>led<="00100000";when "10"=>led<="00001000";when "11"=>led<="00000010"; end case;elsif choose="011" thenif clk'event and clk='1' thencnt4<=cnt4+1;end if;case cnt4 iswhen "00"=>led<="00000001";when "01"=>led<="00000100";when "10"=>led<="00010000";when "11"=>led<="01000000"; end case;elsif choose="100" thenif clk'event and clk='0' thencnt5<=cnt5+1;end if;case cnt5 iswhen "00"=>led<="10000001";when "01"=>led<="11000011";when "10"=>led<="11100111";when "11"=>led<="11111111"; end case;elsif choose="101" thenif clk'event and clk='1' thencnt6<=cnt6+1;end if;case cnt6 iswhen "00"=>led<="01111110";when "01"=>led<="00111100";when "10"=>led<="00011000";when "11"=>led<="00000000";end case;elsif choose="110" thenif clk'event and clk='1' thencnt7<=cnt7+1;end if;case cnt7 iswhen "00"=>led<="11000000";when "01"=>led<="00110000";when "10"=>led<="00001100";when "11"=>led<="00000011";end case;elsif choose="111" thenif clk'event and clk='1' thencnt8<=cnt8+1;end if;case cnt8 iswhen "00"=>led<="10000001";when "01"=>led<="01000010";when "10"=>led<="00100100";when "11"=>led<="00011000";end case;end if;end if;end process;end architecture control;5.运行结果:1)运行代码2)波形图上可清楚的看出彩灯的移向。

EDA_多模式流水灯设计)

EDA_多模式流水灯设计)

EDA课程设计课题名称:多模式流水灯设计指导老师:姓名:专业:电子信息工程班级:日期:2011年05月16日评语:审阅成绩时间多模式的流水灯的设计()Multi-mode design of water lamp(Department of Electronic Engineering of University, China)Phone: Instructor:Abstrac t: EDA technology refers to the computer as the working platform, the integration of the application of electronic technology, computer technology, information processing and intelligent technology to the latest results, the automatic design of electronic products. This paper describes the design process of multi-mode water, simulation, debugging results, and summed up our feelings and experiences.Keywords: EDA technology, VHDL language, multi-mode water lamp摘要:EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

本文详细介绍了多模式流水的设计过程,仿真、调试结果,并总结出了我们的心得体会。

关键字:EDA技术、VHDL语言、多模式的流水灯1、引言:EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

eda流水灯实验工作原理

eda流水灯实验工作原理

eda流水灯实验工作原理
EDA流水灯实验是一种基础电子实验,旨在帮助学生理解数
字电子技术中的时序控制原理,实现流水灯效果。

它的工作原理如下:
1. 硬件部分:实验所需的硬件主要包括多个发光二极管(LED)、电阻、开关、以及一块微控制器芯片等。

每个LED都通过电
阻连接到芯片的输出引脚上。

2. 软件控制:在微控制器芯片上编写流水灯的控制程序。

程序中主要使用了一个循环结构来不断循环执行流水灯的效果。

3. 工作流程:当实验电路通电后,微控制器芯片开始执行流水灯的控制程序。

程序首先将某一位(LED)点亮,然后等待一段
时间后熄灭,接着点亮下一个位,循环进行。

这样,每个
LED在不同的时间段内依次点亮和熄灭,产生流动的灯光效果。

4. 时序控制原理:流水灯实验通过微控制器的程序实现了时序控制。

在程序中,通过控制延时时间和LED的点亮顺序,使
每个LED在一定时间后交替工作,从而呈现出流水灯效果。

而微控制器的高速运算能力和灵活性,使得流水灯的灯光切换可以更加精确和流畅。

总之,EDA流水灯实验通过硬件电路和软件控制相结合的方式,利用时序控制原理,实现了LED灯光的流水效果。

这个
实验简单易懂,可以帮助学生初步理解和掌握数字电子技术中的时序控制原理。

eda课程设计流水灯控制

eda课程设计流水灯控制

eda课程设计流水灯控制一、课程目标知识目标:1. 让学生掌握EDA(电子设计自动化)的基本概念和原理;2. 使学生了解流水灯控制的硬件设计原理,掌握相关的电路图绘制和仿真;3. 引导学生掌握C语言编程控制流水灯的方法,理解程序与硬件的关联。

技能目标:1. 培养学生运用EDA软件进行电路设计和仿真的能力;2. 培养学生运用C语言编写控制程序,实现流水灯功能;3. 提高学生动手实践能力,培养团队合作精神。

情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养创新意识和探索精神;2. 培养学生严谨、细心的学习态度,提高分析和解决问题的能力;3. 引导学生认识到科技对社会发展的贡献,增强社会责任感。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握基本理论知识的基础上,通过实践操作,培养实际设计和制作电子产品的能力。

课程目标具体、可衡量,有助于学生和教师在教学过程中明确预期成果,为教学设计和评估提供依据。

二、教学内容1. EDA基本概念与原理:介绍EDA的发展历程、基本概念、设计流程和常用软件工具。

相关教材章节:第一章 电子设计自动化概述。

2. 流水灯硬件设计:讲解流水灯的电路原理,引导学生学习如何绘制电路图并进行仿真。

相关教材章节:第二章 常用电子元器件;第三章 电路设计与仿真。

3. C语言编程控制流水灯:教授C语言基础知识,指导学生编写程序实现流水灯的控制。

相关教材章节:第四章 C语言基础;第五章 微控制器编程。

4. 实践操作:组织学生进行EDA软件操作,绘制电路图,编写程序,实现流水灯功能。

相关教材章节:第六章 实践操作与案例分析。

教学大纲安排:第一周:EDA基本概念与原理学习;第二周:流水灯硬件设计与电路图绘制;第三周:C语言基础学习;第四周:流水灯控制程序编写;第五周:实践操作与成果展示。

教学内容科学性和系统性较强,结合教材章节和教学实际,使学生能够循序渐进地掌握EDA流水灯控制的相关知识。

eda流水课程设计

eda流水课程设计

eda流水课程设计一、课程目标知识目标:1. 让学生掌握EDA(电子设计自动化)的基本概念,理解其在现代电子设计领域的重要作用。

2. 学会使用EDA工具进行简单电路设计与仿真,理解电路图与印制电路板(PCB)设计的流程。

3. 了解流水线设计原理,掌握流水线技术在电子设计中的应用。

技能目标:1. 培养学生运用EDA工具进行电路设计的能力,能够独立完成简单的电路设计与仿真。

2. 提高学生的团队协作能力,学会在团队中分工合作,完成复杂的流水线项目。

3. 培养学生的问题解决能力,能够针对设计过程中遇到的问题进行分析与优化。

情感态度价值观目标:1. 培养学生对电子设计的兴趣和热情,激发学生的创新意识和探索精神。

2. 培养学生的责任心和敬业精神,认识到电子设计在国家和经济发展中的重要性。

3. 培养学生的环保意识,了解并关注电子设计对环境的影响,遵循可持续发展的原则。

课程性质:本课程为实践性较强的学科,结合理论教学与实际操作,注重培养学生的动手能力和实际应用能力。

学生特点:学生具备一定的电子基础知识,对新技术和新工具充满好奇,喜欢动手实践,但可能缺乏系统性的设计经验和团队协作能力。

教学要求:教师需结合学生特点,采用案例教学、任务驱动等方法,引导学生主动参与,注重理论与实践相结合,提高学生的综合能力。

通过分解课程目标为具体学习成果,为教学设计和评估提供依据。

二、教学内容1. EDA基本概念:介绍EDA的定义、发展历程、主要功能及其在电子设计中的应用。

教材章节:第一章 EDA技术概述2. EDA工具使用:讲解常用EDA软件的功能、界面及基本操作,如原理图绘制、PCB设计、仿真等。

教材章节:第二章 EDA工具及其应用3. 流水线设计原理:阐述流水线设计的概念、分类、原理及其在电子设计中的应用。

教材章节:第三章 流水线设计基础4. 电路设计与仿真:通过实例讲解电路原理图绘制、仿真分析及PCB设计过程。

教材章节:第四章 电路设计与仿真5. 流水线项目实践:分组进行流水线项目设计,包括需求分析、方案设计、电路设计与仿真、PCB设计等。

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

《电子技术》课程设计报告设计课题: 彩灯控制系统设计姓名: 吴新旺专业: 电子信息工程学号: 0815241048 日期 20 年月日——20 年月日指导教师: 李国刚吴丽丽国立华侨大学信息科学与工程学院目录1.设计的任务与要求 (1)2.方案论证与选择 (1)3系统的VHDL语言 (3)4.经验体会 (6)5参考文献 (7)彩灯控制系统设计1. 设计的任务与要求此次设计彩灯控制系统就是为了了解如何运用VHDL语言来实现彩灯的循环控制,并且能改变彩灯循环的模式。

从而能为以后制作跑马灯,花样灯等打下基础。

更好的掌握对日常各式各样变幻灯的认识。

1.1设计指标1.彩灯跳动的频率约为3次/S2.有四种不同模式的循环,均为人控制。

1.2 设计要求1.画出仿真波形图2.写出VHDL语言3用LED灯模拟彩灯,循环模式不少于三种4编写设计报告,写出设计的全过程,附上有关资料和图纸(也可直接写在相关章节中),有心得体会。

2. 方案论证与选择2.1 彩灯控制系统的方案彩灯是由实验箱上的LED灯代替,有一下四种循环模式(1)彩灯从左到右逐次闪亮。

然后从右到左逐次熄灭。

(2)彩灯两边同时各亮一个,然后逐次向中间点亮。

(3)彩灯从左到右两个两个点亮,然后从右到左两个两个逐次熄灭。

(4)彩灯中间两个点亮。

然后同时向两边散开。

本控制电路采用VHDL语言设计。

运用自顶而下的设计思想,按功能逐层分割实现层次化设计。

根据多路彩灯控制器的设计原理,将整个控制器分为四个部分,分别对应彩灯的四种变化模式、利用VHDL语言实现该功能2.2 仿真后的波形图以下为四种循环模式的仿真波形图:3.系统的VHDL编译语言LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_ARITH.ALL;USE IEEE.std_logic_UNSIGNED.ALL;ENTITY CaiDeng ISport(CLK:IN std_logic;RST:in std_logic;SelMode:in std_logic_vector(1 downto 0);--彩灯花样控制 Light:out std_logic_vector(7 downto 0));END CaiDeng;ARCHITECTURE control OF CaiDeng ISSIGNAL clk1ms:std_logic:='0';SIGNAL cnt1:std_logic_vector(3 downto 0):="0000"; SIGNAL cnt2:std_logic_vector(1 downto 0):="00"; SIGNAL cnt3:std_logic_vector(3 downto 0):="0000"; SIGNAL cnt4:std_logic_vector(1 downto 0):="00"; BEGINP1:PROCESS(clk)BEGINif(clk'EVENT AND clk='1')thenif selmode="00" then --第一种彩灯花样的程序if cnt1="1111" thencnt1<="0000";elsecnt1<= cnt1+1;end if;case cnt1 iswhen "0000"=>light<="10000000";when "0001"=>light<="11000000";when "0010"=>light<="11100000"; when "0011"=>light<="11110000"; when "0100"=>light<="11111000"; when "0101"=>light<="11111100";when "0110"=>light<="11111110"; when "0111"=>light<="11111111";when "1000"=>light<="11111110"; when "1001"=>light<="11111100";when "1010"=>light<="11111000"; when "1011"=>light<="11110000";when "1100"=>light<="11100000"; when "1101"=>light<="11000000";when "1110"=>light<="10000000"; when others=>light<="00000000";end case;elsif selmode="01" then -- 第二种彩灯花样的程序if cnt2="11" thencnt2<="00";else cnt2<= cnt2+1;end if;case cnt2 iswhen "00"=>light<="10000001";when "01"=>light<="11000011";when "10"=>light<="11100111";when "11"=>light<="11111111";when others=>light<="00000000";end case;elsif selmode="10" then --第三种彩灯花样的程序if cnt3="1111" thencnt3<="0000";else cnt3<=cnt3+1;end if;case cnt3 iswhen "0000"=>light<="11000000"; when "0001"=>light<="01100000"; when "0010"=>light<="00110000";when "0011"=>light<="00011000"; when "0100"=>light<="00001100";when "0101"=>light<="00000110"; when "0110"=>light<="00000011";when "0111"=>light<="00000110"; when "1000"=>light<="00001100";when "1001"=>light<="00011000"; when "1010"=>light<="00110000";when "1011"=>light<="01100000"; when "1100"=>light<="11000000";when others=>light<="00000000"; end case;elsif selmode="11" then -- 第四种彩灯花样的程序if cnt4="11" thencnt4<="00";else cnt4<= cnt4+1;end if;case cnt4 iswhen "00"=>light<="00011000";when "01"=>light<="00111100";when "10"=>light<="01111110";when "11"=>light<="11111111";when others=>light<="00000000";end case;end if;end if;END PROCESS P1;--P2:PROCESS(clk) --分频进程--variable cnt:integer range 0 to 1000;--BEGIN--IF(RST='0')then--cnt:=0;--ELSIF(clk'EVENT AND clk='1')then--if cnt<999 then--cnt:=cnt+1;--clk1ms<='0';--else--cnt:=0;--end if;--end PROCESS P2;end control;5.经验体会通过本次设计让我明白了VHDL语言的实用性,同时让我对QuartusII有了进一步的了解。

相关文档
最新文档