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花样流水灯的课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握花样流水灯的设计原理;2. 学生能描述流水灯电路的工作原理,了解相关电子元件的功能和连接方式;3. 学生掌握C语言编程基础,能编写简单的程序控制流水灯的显示效果。
技能目标:1. 学生能运用所学知识,设计出具有创意的花样流水灯电路;2. 学生通过实践操作,提高焊接和电路调试的能力;3. 学生通过团队协作,学会沟通和解决问题,提高项目实践能力。
情感态度价值观目标:1. 学生对电子设计产生兴趣,培养创新意识和探索精神;2. 学生认识到科技发展对社会进步的重要性,增强社会责任感和使命感;3. 学生在团队协作中,学会尊重他人、分享成果,培养良好的团队合作精神。
分析课程性质、学生特点和教学要求:本课程为电子技术与应用的实践课程,适用于初中或高中年级学生。
学生在之前的学习中已经掌握了基本的电路知识和C语言编程基础。
课程注重实践操作,鼓励学生创新设计,培养学生的动手能力和团队协作能力。
课程目标具体、可衡量,旨在让学生通过实践,掌握EDA技术的基本应用,提高电子设计能力,同时注重培养学生的情感态度价值观,为今后的学习和发展奠定基础。
二、教学内容本课程教学内容主要包括以下三个方面:1. 电子设计自动化(EDA)基础理论- 了解EDA的基本概念、发展历程和应用领域;- 学习流水灯的设计原理和电路组成;- 掌握相关电子元件的功能、符号和连接方式。
2. 流水灯电路设计与编程- 学习流水灯电路的设计方法,分析不同显示效果的实现原理;- 掌握C语言编程基础,编写控制流水灯的程序;- 结合教材相关章节,实践操作,调试电路。
3. 团队协作与项目实践- 分组进行项目设计,明确分工,培养团队协作能力;- 制定项目进度计划,按计划完成电路设计、编程、调试和展示;- 教师指导,学生互评,总结项目实施过程中的经验教训。
教学内容安排和进度:第一周:EDA基础理论学习和流水灯设计原理了解;第二周:学习C语言编程基础,编写简单的流水灯程序;第三周:分组项目实践,进行电路设计和调试;第四周:项目总结与展示,交流学习心得。
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流水灯论文(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实验设计报告姓名:张炫学号: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课设__音乐流水灯
1 绪论1.1 EDA简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物等各个领域,都有EDA的应用。
1.2 硬件描述语VHDL硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。
例如一个32位的加法器,利用图形输入软件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C” 即可。
而且VHDL语言可读性强,易于修改和发现错误。
早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。
为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL 为硬件描述语言标准(IEEE-STD-1076)。
VHDL 是一种全方位的硬件描述语言,包括系统行为级。
寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL 几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用VHDL 来完成。
基于EDA的流水灯实验
万年历的设计一、实验目标1. 巩固对基本的开发流程的掌握2. 复习对QUARTUS II软件的使用3. 复习NIOS II软件的使用4.在训练掌握相关软件使用的基础上,完成课题的设计二、设计要求用Nios II DE2开发楹的LCD(或8个七段数码管)显示电子钏的日期和时间。
LCD 分两行显示,第1行显示年、月和日(例如显示:20080101);第2行显示时、分和秒(例如显示:00152545)。
用输入按钮BUTTON[0]来控制LCD行修改,同时让Nios II DE2开发板上的绿色发光二极管LDG3的亮与灭来表示这个选择。
当BUTTON[0]按下一次后,LDG3亮,可以修改年、月和日的数字;再按一次BUTTON[0]后,LDG3灭,可以修改时、分和秒的数字。
另外和输入按钮BUTTON[3]来控制日期和时间的修改,当处于日期修改方式时,每按动一次BUTTON[3]按钮,依次更换“年”、“月”和“日”的修改。
当处于时间修改方式时,每按动一次BUTTON[3]按钮,依次更换“时”、“分”和“秒”的修改。
修改对象被选中后,按动BUTTON[2]输入按钮可以增加显示的数字;按动BUTTON[1]输入按钮可以减少显示的数字。
三、实验原理与步骤⑴在QUARTUS II 中建立工程⑵用SOPC BUILDER建立NIOS系统模块⑶在QUARTUS II 中的图形编辑界面中进行管脚连接、锁定工作⑷编译工程后下载到FPGA中⑸在NIOS II IDE中根据硬件建立软件工程⑹编译后,经过简单设置下载到FPGA中进行调试、验证下面根据以上的步骤进行进行一次全程开发:第一步:硬件部分设计1. 在自己的文件目录下建立一个hello_led文件夹,注意目录中不能有空格或中文;2. 打开QUARTUS II,点击FILE菜单下的New Project Wizard…会弹出如图2-1所示的对话框:图2-1 建立工程3. 然后输入工程存放目录,或点击工程路径右面的按钮设置工程存放目录,在第二栏中输入工程名称,我们这里输入为led;之后点击Finish,对话框消失,此时已经建立好了LED工程文件;4. 点击Assignment菜单中的Device,选择芯片为Cyclone II系列的EP2C35F672C6,如下图2-2所示:图2-2 选择器件5. 确认后。
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流水灯课程设计
流水灯程序设计
编程语言:C语言 编译工具:Keil C51
开发环境:Keil uVision 调试工具:Keil Debugger
初始化:设置流水灯的初始状态,如关闭所有灯 循环控制:设置循环条件,如循环次数或循环时间 灯状态更新:根据循环条件,更新流水灯的状态,如依次点亮或熄灭 延时处理:在灯状态更新后,添加延时处理,使流水灯效果更加明显 结束处理:循环结束后,关闭所有灯,结束程序
EDA流水灯课程设计
汇报人:
目录
EDA流水灯概计
流水灯程序设计
流水灯硬件实现
流水灯系统优化与 扩展
EDA流水灯概述
流水灯是一种常见 的电子设备,用于 显示各种信息
流水灯通常由多个 LED灯组成,可以 显示不同的颜色和 亮度
流水灯可以通过 编程控制,实现 各种动态效果
流水灯的工作原理是通过控制LED灯的亮灭时间,使LED灯按照一定的顺序依次亮 起和熄灭。
流水灯的控制方式有多种,包括硬件控制和软件控制。硬件控制通常使用定时器 或计数器,软件控制通常使用微控制器或单片机。
流水灯的应用广泛,可以用于广告牌、指示灯、装饰灯等领域。
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流水灯设计报告
:EDA流水灯设计报告姓名:余帅学号:2011128076专业:电子信息工程年级:11电工一.实验目的1掌握EDA编程的基本步骤2学会用EDA编写简单的程序3熟悉EDA实验箱的使用方法二.实验程序设计流水灯的源程序:module ysLED(input clk, input reset,input[1:0] mod, output reg[15:0] led,input ting);//定义输入输出);reg [31:0]counter; //计数器always @(posedge clk or negedge reset)beginif(!reset)begincounter <= 0;//归零endelse if(counter == 20)begincounter <= 0;endelsecounter <= counter + 1;//循环计数endalways @(posedge clk)beginif(!reset)beginled <= 16'b0000000000000001;//置初值endelse if(ting==1'b1)beginif(counter==20)begincase(mod)2'b00:led<={led[0],led[15:1]};2'b01:led<={led[14:0],led[15]};2'b10:beginled=led|16'b0000000110000000;led={led[14:8],1'b1,1'b1,led[7:1]};end2'b11:beginled=led|16'b1000000000000001;led={led[8],led[15:9],led[6:1],led[0],led[7]};enddefault:led<=16'b1111111111111111;endcase//实现循环移位。
eda流水灯课程设计
eda流水灯课程设计一、教学目标本课程旨在通过eda流水灯的设计,让学生掌握基本电子设计原理和技能,培养学生的创新能力和实践能力。
知识目标:使学生了解eda流水灯的工作原理,掌握基本的电子电路设计方法,了解电子器件的使用和调试。
技能目标:培养学生使用eda工具进行电子设计的能力,提高学生的电路调试和优化技能,培养学生的创新设计思维。
情感态度价值观目标:培养学生对电子科技的兴趣和热情,引导学生正确使用电子设备,注意安全,培养学生的团队合作意识和沟通能力。
二、教学内容本课程的教学内容主要包括eda流水灯的基本原理、设计方法和实践操作。
首先,介绍eda流水灯的工作原理和相关电子器件的使用方法。
然后,讲解使用eda工具进行电子设计的基本方法,包括电路图的绘制、元件的选型和电路的仿真。
最后,进行eda流水灯的实践操作,包括电路的搭建、调试和优化。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。
首先,通过讲授法,使学生了解eda流水灯的基本原理和相关知识。
然后,通过讨论法,引导学生进行思考和交流,提高学生的理解能力。
接下来,通过案例分析法,分析实际案例,使学生了解eda流水灯的设计方法和流程。
最后,通过实验法,进行eda流水灯的实践操作,培养学生的动手能力和实践能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源。
教材:选用权威、实用的教材,为学生提供基本的学习资料。
参考书:提供相关的参考书籍,帮助学生深入了解eda流水灯的相关知识。
多媒体资料:制作精美的多媒体课件,生动展示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工具的使用,了解数字电路的基本原理和设计思想。
教学内容: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流水灯的设计
一.流水灯控制的设计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技术》课程设计报告项目名称:多模式流水灯设计专业年级:电子信息工程2010级学号: ************ 学生姓名:指导教师:**报告完成日期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课程实践报告基于verilog的流水灯设计学院:物理与电气工程学院专业:11级电子信息工程姓名:蒋美菊学号:111102088基于verilog的流水灯设计一、摘要随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。
随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。
因此学好EDA技术对我们有很大的益处。
EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。
流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。
课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。
在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。
在此过程中培养从事设计工作的整体观念。
课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面:·独立工作能力和创造力。
·综合运用专业及基础知识,解决实际工程技术问题的能力。
·查阅图书资料、产品手册和各种工具书的能力。
·写技术报告和编制技术资料的能力。
·实际动手能力。
利用学到的电子技术知识,通过布置具有一定难度的设计题目,帮助学生熟悉课程设计任务和设计方法。
二、设计目的1,学习使用EDA集成设计软件Quartus II,电路描述,综合,模拟过程。
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课程设计流水灯控制一、课程目标知识目标: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流水灯设计姓名:简讯学号: 09325210专业: 电子信息工程班级: 093252指导教师:黄河2012年11月9日目录一设计任务与要求 (2)二设计的基本内容 (2)三EDA和verilog简介 (3)3. 1 EDA简介 (3)3. 2 verilog简介 (4)3. 3 verilog硬件描述语言的主要能力 (4)四设计过程 (6)4.1程序设计 (6)4.2程序分析 (7)4.3设计电路图 (8)4. 4仿真结果与分析 (9)五心得体会 (10)六参考文献 (11)一.设计任务与要求随着大规模集成电路技术和EDA技术的迅速发展,使得数字系统的硬件设计如同软件设计那样方便快捷,而Verilog HDL 是当前应用最广泛的并成为IEEE 标准的一种硬件描述语言。
Verilog HDL是在C语言的基础上演化而来,具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点。
此次课程设计通过使用Verilog HDL硬件描述语言设计了一个程序,使得流水灯可以根据自己所期望的方式点亮,并能在、Quartus II进行仿真测试,得出出仿真结果。
通过课程设计深入理解VHDL语言的精髓,加深对数字电路和VHDL基本单元的理解,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
二.设计的基本内容此次课程设计是对流水灯的设计,通过在verilog HDL中书写程序,实现八盏流水灯点亮,点亮方式首先八盏灯从左到右循环点亮,再奇数个点亮,偶数个点亮,再1,2灯;3,4灯;5,6灯,7,8灯依次点亮,再1,2,3,4灯,5,6,7,8灯依次点亮,总共十六个不同状态,转换为二进制表示为:l0=1;l1=0;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0;l0=0;l1=1;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0;l0=0;l1=0;l2=1;l3=0;l4=0;l5=0;l6=0;l7=0;l0=0;l1=0;l2=0;l3=1;l4=0;l5=0;l6=0;l7=0;l0=0;l1=0;l2=0;l3=0;l4=1;l5=0;l6=0;l7=0;l0=0;l1=0;l2=0;l3=0;l4=0;l5=1;l6=0;l7=0;l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=1;l7=0;l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=0;l7=1;l0=1;l1=0;l2=1;l3=0;l4=1;l5=0;l6=1;l7=0;l0=0;l1=1;l2=0;l3=1;l4=0;l5=1;l6=0;l7=1;l0=1;l1=1;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0;l0=0;l1=0;l2=1;l3=1;l4=0;l5=0;l6=0;l7=0;l0=0;l1=0;l2=0;l3=0;l4=1;l5=1;l6=0;l7=0;l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=1;l7=1;l0=1;l1=1;l2=1;l3=1;l4=0;l5=0;l6=0;l7=0;l0=0;l1=0;l2=0;l3=0;l4=1;l5=1;l6=1;l7=1;其中10~17表示的是八盏流水灯的代号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项事意注计设、六
计设程课 ADE 冰冯
5002�社版出业工子电 �礼潘�琼陈》践实与计设统系 AGPF《 0002�社版出学大北东�远玉杜�华景李》术技 ADE 与件器辑逻程编可《 社版出业工子电�松如童、丹王� 》册手�ADE�化动自计设子电《 社版出业工子电�著等瑾正黄� 》用应与门入术技计设统系 DLPC《 7.1002�社版出学科�业继黄、松潘� 》程教用实术技 ADE《
评 实
分 满
计设灯水流�目题计设程课 60241370�号学 241370�级班 冰 冯�名姓生学
表分评计设程课 院学江长学大工理华东
表分评计设程课、九
计设程课 ADE 冰冯
结总计设程课、七
。计设响影会不脚管的用使有没�贝拷部全以可也�然当 �配分脚管的到用贝拷只以可�时脚管分部用使只当。高要率效脚管配分一逐 中 II sutrauQ 在比这�置配的脚管改修中件文该在接直以可也户用�然当。段 同相的中件文 fsq.*的下夹件文程工 IIsutrauQ 户用代替并贝拷段 stnemngissA noitacoL & niP #将�件文 txt.配分脚管 CPOSkciuQ 开打具工辑编本文用使以 可 �去进入输确准后然�号标的件器个每找查意注要们我�块这配分脚管在 。误错致导乱混的序程他其和时行运止 防以�序程的编所放存来夹件文的己自立建要们我�时序程存保在次其。序程 的求要所到得难很也�础基程编 golireV 的实扎有没以所�的格严很是也码代 序程的求要 II sutrauQ 为因�确正否是写拼及以式格意注�时序程写编在
要摘、一
计设程课 ADE 冰冯
干所周一这们我将是就了白说�了步一后最的计设程课们我是也告报计设�5� 。作运 的它解了也我是但�试调去手亲有没然虽我�同不务任的人个每们我�中程过 此在�了计设程课的次这过通以可便们我么那。光灯的样一水流像示显会�灭 亮其制控被能灯示显 DEL 只 8�遍一示演后然�下一理整序程的们我将表代个一 需只中人组一们我�示演来都学同位每们我证保能不以所�限有材教验实为因 �步一的键关最是这�了象现示演该是就后完做作工备准切一这的有所当�4� 。的单简挺也说该 应段阶一这以所�可便询查需只�们我诉告已也号脚管且而�过说有师老上课 验实在些这为因�脚管置设件器个每为要们我�后误无入输序程的有所当�3� 。码代的入输所们我出不示显以所�误有方地的放存们我而�起一 在放存一统后然�夹件文的己自建创先该应们我�时作操在为因是�现发于终 �力努的体集们我过通是但�误错有序程示显�难困小点了到遇们我中程过此 在�入输序程的好编将后然�试调�装安�手应心得较比也说来们我对段阶一 这在以所�法方用使的 II sutrauQ 绍介细详有师老中程课验实 ADE 在�的现实 件软个这过通是象现的求要为因�法用的 II sutrauQ 握掌要需们我�次其�2� 。绍介细详有面 下在码代序程�制编的序程了成完同共组小们我�识知关相的索搜所上网及以 �籍书考参关有的阅查馆书图去间时段近合结再�识知础基的学所课上们我过通 �序程编得先首们我�期初验实在�灭亮的灯只八这制控来码代序程过通�的现 实来灯示显 DEL 只八由是计设灯水流。果结的求要所们我示显来码代序程些这 用使及以�序程 golireV 制编来,程课 ADE 的习学过通们我求要验实次此�1�
程流计设、三
。惯习验实的好良成养生学助帮�5 。 。象现示演及以试调�错改行进序程验实对 II sutrauQ 用使练熟�4 法方计设和路思计设的灯水流计设具工 ADE 用使握掌�3 。法方计设的统系用应 ADE 于基解了�2 。程过拟模�合综�述描路电,II sutrauQ 件软计设成集 ADE 用使习学�1
计设程课 ADE 冰冯
日 月 年 �名签师教导指
�语评师教导指 001 5 01 51 51 51 01 01 01 01 5 分 总
字 00051 过超不�字 0002 于少不数字 量 求要文论合符�确准范规等图插、格表、图 绘、式格 。全齐号编、一统号符�理合、全齐分部要主文论 质 晰清面版、谨 果 严构结、畅流言语、明分理条、学科理处题问�理合谨严论结 、确准语用学数 、确正析分题问 、理合设假 �整完练简述叙要摘 成 。求要合符标指术技项各�理合、确正型模
献文考参、八
。浅匪益获我让的真计设程课的 次这说以所�谊友的们我了进增步一进也�助帮相互的间之学同有还。谢感示 表师老对 �的益裨有大是们我对导指心悉的师老 �中程过的计设程课的个整 。议建的计设程课 次这对。备准的分充好做�路出作工的业毕将即为�力能作操践实的体具高提 �作操手动多续继�识知论理的关相实夯续继要�里间时学大的后最在求要就这 。件器些一计设是只 ADE 过通 何如习学是就那�路出条一了明指接直就�计设程 课的次这过通。力能的料资索搜了强增。向走业毕了清认步一进。计设程课导 指地力有�等籍书料资关相寻借�馆书图从�上络网从�中程过的计设程课在 求要就这�验经践实的人前取吸去须必是�车造门闭能可不都�动活践实的何 任�然显很。程流作操的 IIsutrauQ 了实夯�程流和法方计设的计设术技子电 了解理�验实的次这过通。习学的识知础基对视重要�己自醒提在不无�性要 重的识知础基了明证地力有不无 �计设程课的次这及以 �验实课业专的有所 。强增力能 务任成完立独们我使。象现的工怠极消和赖依了脱摆上度程定一在也这�面里 在想思的己自入融要需但�心中个一�组一人五求要计设程课次这。工怠极消 的务任对和确明不工分的作合在现体其尤�的端弊在存然必�务任成完体集人 个几。高提显明量质的计设程课成完。识知论理的学所了固巩�力能的务任成 完己自了强增地步一进�度速和量质的务任计设程课次这了高提�行进的计设 程课次这了导指地力有�导指的心悉师老及以�验经的来下淀积所计设程课的 次几前上加再。跃飞的上质有面方作操手动在己自觉感我让�计设程课的次这 过经。助帮有很计设�习学的后以对�起一到合融块模的节章个各把的好很以
的目计设、二
计设程课 ADE 冰冯
配分脚管计设灯水流、五
eludomdne dne dne ;11111111b'8=<DEL )0000000b'8==DEL(fi ;0=<retnuoc ;1<<DEL=<DEL nigeb 0000_0010_0001_1110_1011_1110_1 // M52// )0000_0010_0001_1110_1011_1110_1b'52==retnuoc(fi ;1+retnuoc=<retnuoc nigeb )KLC egdesop(@syawla ;11111111b'8=DEL laitini ;retnuoc ]0:42[ ger ;DEL ]0:7[ ger ;teser,KLC tupni ;DEL ]0:7[tuptuo ;)teser,KLC,DEL(1golireV eludom
计设程课 ADE 冰冯
。法方计设和务任计设程课悉熟 生学助帮�目题计设的度难定一有具置布过通�识知术技子电的到学用利 。力能手动际实· 。力能的料资术技制编和告报术技写· 。力能的书具工种各和册手品产、料资书图阅查· 。力能的题问术技程工际实决解�识知础基及业专用运合综· 。力造创和力能作工立独· �面方下以括包要主�高提与养培的力能面方 多意注时同务任作制及计设成完立独在�主为养培力能以调强应计设程课 。念观体整的 作工计设事从养培中程过此在。力能手动的生学强加以试调、装安行进路电的 计设将要还�后成完计设在。的目的用应活灵到达、容内习学的往以固巩、习 复于助有也计设过通、法方计设的体具和容内作工的成完应、求要计设、程过 计设合综路电般一解了�计设合综的路电一某过通是的目的要主计设程课 。的遍普很是 也计设灯水流的术技 ADE 于基�言而器制控程编可代现对但�现实法方种多用 可制控灯水流。用适样同也域领术技制控业工在想思制控其�用应个一的器制 控程编可是制控灯水流�亮闪续连样一水流像律规的定一按串一是灯水流 。载下及以�线布局布或�配适 、合综、化优、真仿、译编括包�计设的统系成完动自� �件文图形波或件文言语 述描件硬、件文图理原�件文源的述描社计设据根�上台平件软 ADE 在�具工 为机此因。来中域领研科和 域领学教到映反会 然必也求要的场市术技和求需场市的品产�高提断不求需的 ADE 对场市才人与场市术技着随。出突性要重的域领等用应机算计及制控动自 、讯通、息信子电在术技 ADE�入深与大扩的域领用应和展发术技 ADE 着随
52-11-0102
斌 龙文黄 圆圆胡
张:师老导指
厚达黄 超郭�人组同 :号 :级 学 班 专 姓
60241370 241370
程工息信子电 :业 冰 冯 :名
计设灯水流
计设程课 ADE 冰冯
8〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃表分评计设程课、九 7〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃献文考参、八 6〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃结总计设程课、七 6〃 〃 〃 〃 〃 〃 〃 〃 〃 〃项事意注计设灯水流、六 5〃 〃 〃 〃 〃 〃 〃 〃 〃 〃配分脚管计设灯水流、五 5〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃序程计设灯水流、四 4〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃程流计设灯水流、三 4〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃的目计设灯水流、二 3〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃 〃要摘、一
序程计设灯水流、四
。束结满圆就计设 程课的次这么那。明说的细详西东的有所这。象现示显�行运�试调�误错正 改及�序程入输 II sutrauQ 在�序程编 golireV 用使始开从�下一结总情事的
计设程课 ADE 冰冯
可�计设程课次这过通。间时多很掉费浪�弯转打方地些一在会己自能可�点 指的学同有没果如 。性要重的作操际实了到会体分充 �中程过的件课此做在 。固牢够不也握掌的识知础基 ADE�穿贯会联有没点识 知个各�弱薄的识知面方 ADE 在己自了到看地楚清�作制的灯水流对过通�内 期星一的果成习学收验这在�束结经已程课�ADE�术技计设子电的月个两