EDA技术与应用实践案例6 带数码显示的流水灯
EDA课程设计---流水灯设计
EDA课程设计流水灯设计目录一、摘要··3二、流水灯设计目的··4三、流水灯设计流程··4四、流水灯设计程序··5五、流水灯设计管脚分配··7六、功能仿真图··8七、原理图波形图··9八、设计注意事项··10九、课程设计总结··11十、参考文献··12十一、评分表··13一、摘要随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。
随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。
因此学好EDA技术对我们有很大的益处。
EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。
流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。
课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。
在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。
在此过程中培养从事设计工作的整体观念。
课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面:·独立工作能力和创造力。
·综合运用专业及基础知识,解决实际工程技术问题的能力。
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实验流水灯控制
彩灯控制器一、设计内容及要求:设计一个彩灯控制器,要求: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实验设计报告姓名:张炫学号: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工具的使用,了解数字电路的基本原理和设计思想。
教学内容: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课程实验报告——LED流水灯及数码管动态显示设计姓名:学号:指导教师:院系:电子信息工程日期:2012、5、17实验一LED流水灯设计一、实验目的:掌握对LED的控制及流水灯的实现、锻炼VHDL语言的分析和使用能力。
学会对实验板上的FPGA进行编程下载,硬件验证自己的设计项目。
二、实验要求1.使用VHDL语言及Quartus软件实现LED流水灯的软件仿真,要实现前六位LED根据自己意愿闪烁;2.对照FPGA开发板的原理图,将编好的程序下载到开发板上,对之前写好的程序进行验证。
三、实验原理下图为FPGA开发板上对应LED的原理图:如图所示,若想控制LED的亮灭只需将对应的LED的管脚置低电平,若用软件实现则要将6位LED定义为6位的地址,各个状态延时切换即可。
四、实验步骤1.建立工程文件,设计程序使六位流水灯来回滚动(程序在报告后面);2.对写好的程序进行编译排错;3.选好开发板上得芯片驱动,对照电路原理图对工程分配管脚,设置JTAG口选好需要下载的文件;各LED对应的管脚号如下:LED0~PIN113LED1~PIN114LED2~PIN115LED3~PIN116LED4~PIN117LED5~PIN1184.连接好JTAG下载器,为开发板供电,将程序载入开发板观察。
五、验证结果可以看见开发板上六位LED来回滚动的效果,实现了预期的功能。
六、实验程序主要程序代码:P1:process(clk) --产生一个对clk延时的时钟clk1 variable count:integer range 0 to 999999;beginif clk'event and clk='1' thenif count<=499999 thenclk1<='0';count:=count+1;elsif count>=499999 and count<=999999 thenclk1<='1';count:=count+1;else count:=0;end if;end if;end process P1;P3:process(clk1) --clk2对clk1分频beginif clk1'event and clk1='1'thenclk2<=not clk2;end if;end process P3;P2:process(clk2) --设置16个六位LED的显示状态,variable count1:integer range 0 to 16; --用clk2上升沿控制,使16个状态begin --循环显示if clk2'event and clk2='1'thenif count1<=16 thenif count1=15 thencount1:=0;end if;case count1 iswhen 0=>led1<="111110";when 1=>led1<="111100";when 2=>led1<="111000";when 3=>led1<="110000";when 4=>led1<="100000";when 5=>led1<="000000";when 6=>led1<="000000";when 7=>led1<="000000";when 8=>led1<="111111";when 9=>led1<="111111";when 10=>led1<="011111";when 11=>led1<="001111";when 12=>led1<="000111";when 13=>led1<="000011";when 14=>led1<="000001";when 15=>led1<="000000";when others=>led1<="111111";end case;count1:=count1+1;end if;end if;end process P2;end light;实验二动态扫描数码管显示电路的设计一、实验目的:掌握动态扫描数码管显示的工作原理,会对每位数码管进行编码,会用VHDL语言实现八位数码管的编码,学会对实验板上的FPGA进行编程下载,硬件验证自己的设计项目。
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:流水灯实验
end process;
led_8bit<=tmp;
end keyboard1;
在完成流水灯源程序的编辑后,执行”Processing”菜单下的“Start Compilation”命令,对keyboard1.vhd进行编译。
在完成对源文件的编译后,执行“File”菜单的“New”命令,或者直接按主窗口上的“创建新的文本文件”按钮,在弹出的新文件类型选择对话框中,选择“Vector Waveform File”生成仿真文件。
对引脚进行锁定。
执行”Assignments”菜单下的“Pins”命令,根据下图进行引脚设置。
用电缆连接电脑与设备箱,执行”Tools”菜单下的“Programmer”命令,在弹出的对话框中,单击“Hardware Setup”并在新弹出的对话框中选择驱动,然后退出至上一层对话框,单击“Start”进行下载烧录。
【实验数据整理与归纳】
keyboard11.vhd 实际效果图
keyboard11.vwf
【实验结果与分析】
计数译码系统电路的仿真波形如图keyboard11.vwf所示,键值为"1110"时,LED0~LED7的状态应为"11000000";键值为"1101"时,LED0~LED7的状态应为"00110000",依此类推。
仿真结果验证了设计的正确性。
而实际情况与仿真结果相吻合。
【实验中遇到的问题及解决方案】
1.不知道如何对引脚进行锁定。
解决方案:上网搜寻教程。
2.驱动安装失败。
解决方案:根据老师发的教程,更换别的方法进行安装。
eda流水灯实验工作原理
eda流水灯实验工作原理
EDA流水灯实验是一种基础电子实验,旨在帮助学生理解数
字电子技术中的时序控制原理,实现流水灯效果。
它的工作原理如下:
1. 硬件部分:实验所需的硬件主要包括多个发光二极管(LED)、电阻、开关、以及一块微控制器芯片等。
每个LED都通过电
阻连接到芯片的输出引脚上。
2. 软件控制:在微控制器芯片上编写流水灯的控制程序。
程序中主要使用了一个循环结构来不断循环执行流水灯的效果。
3. 工作流程:当实验电路通电后,微控制器芯片开始执行流水灯的控制程序。
程序首先将某一位(LED)点亮,然后等待一段
时间后熄灭,接着点亮下一个位,循环进行。
这样,每个
LED在不同的时间段内依次点亮和熄灭,产生流动的灯光效果。
4. 时序控制原理:流水灯实验通过微控制器的程序实现了时序控制。
在程序中,通过控制延时时间和LED的点亮顺序,使
每个LED在一定时间后交替工作,从而呈现出流水灯效果。
而微控制器的高速运算能力和灵活性,使得流水灯的灯光切换可以更加精确和流畅。
总之,EDA流水灯实验通过硬件电路和软件控制相结合的方式,利用时序控制原理,实现了LED灯光的流水效果。
这个
实验简单易懂,可以帮助学生初步理解和掌握数字电子技术中的时序控制原理。
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技术及应用》实验报告系部:指导教师:学号:姓名:实验一点亮LED设计一、实验目的通过此实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及Verilog HDL的编程方法。
本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用,从而快速入门并激起读者对EDA技术的兴趣。
二、实验容SmartSOPC实验箱上有8个发光二极管LED1~8,并分别与FPGA的50、53~55、176和47~49引脚相连。
本实验的容是建立可用于控制LED亮/灭的简单硬件电路,要求点亮SmartSOPC实验箱上的4个发光二极管(LED1、LED3、LED5和LED7)。
三、实验原理FPGA器件同单片机一样,为用户提供了许多灵活独立的输入/输出I/O口(单元)。
FPGA每个I/O口可以配置为输入、输出、双向I/O、集电极开路和三态门等各种组态。
作为输出口时,FPGA的I/O口可以吸收最大为24mA的电流,可以直接驱动发光二极管LED等器件。
所以只要正确分配并锁定引脚后,在相应的引脚上输出低电平“0”,就可以实现点亮该发光二级管的功能。
四、实验步骤1、启动Quarters II建立一个空白工程,命名为led_test.qpf。
然后分别建立图形设计文件,命名为led_test.bdf,以及文本编辑文件led1.v,将他们都添加进工程中。
2、对工程进行设计。
在led1.v中输入程序代码,并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。
从设计文件中创建模块,由led1.v生成名为led1.bsf的模块符号文件。
在led_test.bdf中任意空白处双击鼠标左键,将symbol对话框中libraries:project下的led1模块添加到图形文件led_test.bdf中,加入输入、输出引脚,双击各管脚符号,进行管脚命名。
完整的顶层模块原理图如下图所示。
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实验设计报告流水灯
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的流水灯实验
万年历的设计一、实验目标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流水灯的设计
一.流水灯控制的设计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流水灯实验报告
1. 实验目的1.通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及VHDL的编程方法,熟悉以Herilong HDL文件为顶层模块的设计。
2.学习和体会分支条件语句casc的使用方法及FPGA I/O口的输出控制。
2. 实验内容SmartSOPC实验箱上有8个按键KEY1~KEY8和8个发光二极管LED1~LED8。
在SmartSOPC实验箱上KEY1~KEY8通过跳线JP6的LED1~LED8分别于芯片的121~124、143、141、158、和156引脚相连。
本实验的内容是要求在SmartSOPC实验箱上完成对8个键盘KEY1~KEY8进行监控,一旦有键输入判断其键值,并点亮相应的发光二极管,如若KEY3按下,则点亮LED1~LED3发光管并且在放开时也能保持亮的状态。
3. 实验原理FPGA的所有I/O控制块允许每个I/O引脚单独置为输入口,不过这种配置是系统自动完成的,一旦该I/O口被设置为输入口使用时,该I/O控制模块将直接使三态缓冲区的控制端接地,使得该I/O引脚对外呈高阻态,这样改I/O引脚即可用作专用输入引脚。
只要正确分配并锁定引脚后,一旦在KEY1~KEY8中有键输入,在检测到键盘输入的情况下,继续判断其键盘值并作出相应的处理。
最后拿出跳线短接帽跳接到JP6的LED1~LED7、KEY1~KEY8使LED1~LED8和KEY1~KEY8和芯片对应的引脚相连。
拿出Altera ByteBlasterⅡ下载电缆,并将此电缆的两端分别接到PC机的打印机并口和QuickSOPC核芯板上的JTAG下载口上,打开电源,执行下载命令,把程序下载到FPGA器件中,按下KEY1~KEY8的任意键,观察LED1~LED8的状态。
4. 实验步骤1.启动QuartusⅡ建立一个空白工程,然后命名为keyboard 。
2.源程序文件命名为keyboard ,并选择器件为Altera公司Cyclone系列的EPIC12Q240C8芯片,如图1—1图1—13.新建Veriog HDL源程序文件,输入程序代码并保存。
EDA流水灯课程设计
流水灯程序设计
编程语言:C语言 编译工具:Keil C51
开发环境:Keil uVision 调试工具:Keil Debugger
初始化:设置流水灯的初始状态,如关闭所有灯 循环控制:设置循环条件,如循环次数或循环时间 灯状态更新:根据循环条件,更新流水灯的状态,如依次点亮或熄灭 延时处理:在灯状态更新后,添加延时处理,使流水灯效果更加明显 结束处理:循环结束后,关闭所有灯,结束程序
EDA流水灯课程设计
汇报人:
目录
EDA流水灯概计
流水灯程序设计
流水灯硬件实现
流水灯系统优化与 扩展
EDA流水灯概述
流水灯是一种常见 的电子设备,用于 显示各种信息
流水灯通常由多个 LED灯组成,可以 显示不同的颜色和 亮度
流水灯可以通过 编程控制,实现 各种动态效果
流水灯的工作原理是通过控制LED灯的亮灭时间,使LED灯按照一定的顺序依次亮 起和熄灭。
流水灯的控制方式有多种,包括硬件控制和软件控制。硬件控制通常使用定时器 或计数器,软件控制通常使用微控制器或单片机。
流水灯的应用广泛,可以用于广告牌、指示灯、装饰灯等领域。
EDA软件介绍
添加标题 添加标题 添加标题 添加标题 添加标题 添加标题
编写流水灯程序:根据硬件电路和功能需求,编写相应的程序代码 调试流水灯程序:通过仿真软件或实际硬件设备,对编写的程序进行调试,确保其正确运行 优化流水灯程序:根据调试结果,对程序进行优化,提高运行效率和稳定性 编写流水灯程序的注意事项:注意硬件接口的匹配,避免出现硬件冲突等问题
流水灯硬件实现
发展趋势:智能 化、集成化、小 型化、低功耗
技术挑战:提高 稳定性、可靠性、 安全性
市场前景:随着 物联网、人工智 能等技术的发展, 流水灯系统将有 更广泛的应用前 景
电子线路实习报告_流水灯
电子线路实习报告:流水灯设计一、实习目的本次电子线路实习的主要目的是学习和掌握基本电子元件的使用方法,了解电子电路的组装和调试过程,培养动手能力和团队协作精神。
通过本次实习,我深入了解了流水灯的工作原理,提高了自己的实际操作能力。
二、实习内容1. 设计思路本次实习的流水灯电路采用595移位寄存器为核心,通过编程控制LED灯的亮灭,实现流水灯效果。
电路主要由电源、595移位寄存器、LED灯、电阻等元件组成。
2. 电路原理595移位寄存器具有8位输出,可以控制8个LED灯的亮灭。
当移位寄存器接收到一个脉冲信号时,数据会从 serial input(串行输入)端口进入,然后依次移位到各个输出端口。
通过控制移位寄存器的时序,可以实现LED灯的流水灯效果。
3. 电路组装首先,将595移位寄存器、LED灯、电阻等元件焊接在实验板上。
焊接过程中要注意焊接顺序和焊接质量,确保电路连接可靠。
然后,为电路板供电,检查电路是否正常。
4. 程序设计根据595移位寄存器的时序图,编写程序控制LED灯的亮灭。
程序主要分为初始化部分、移位部分和闪烁部分。
初始化部分设置595移位寄存器的初始状态;移位部分通过循环语句控制数据逐位移位;闪烁部分通过循环语句控制LED灯的闪烁速度。
5. 调试与优化在实际运行过程中,发现LED灯的闪烁速度较慢。
经过分析,发现是因为电阻值过大导致的。
于是,将电阻值减小,使闪烁速度达到预期效果。
同时,对程序进行优化,提高电路的稳定性和可靠性。
三、实习心得通过本次实习,我深刻认识到电子线路设计不仅仅是理论知识的学习,更是动手实践的过程。
在实习过程中,我学会了如何查阅资料、分析问题、解决问题,培养了团队协作精神。
同时,本次实习使我掌握了基本电子元件的使用方法,提高了自己的实际操作能力。
在今后的工作中,我将继续努力学习电子线路知识,不断提高自己的实践能力,为我国的电子科技事业贡献自己的力量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
案例6带数码显示的流水灯
6.1 预习内容
(1)流水灯的实现方式:单片机,那么采用FPGA技术能否实现呢?
(2)实验开发系统只能提供20MHZ的时钟频率,能否用此时钟来控制流水灯?肉眼能否观察到实验现象?怎么解决?
6.2 案例目的
熟悉在实际硬件条件下如何利用QuartusⅡ设计出简单的实用电路。
6.3 案例环境
LED流水灯又叫跑马灯,是最基础的时序逻辑,使用VHDL语言设计,循环点亮每个LED。
6.4 案例原理
本实验使用分频器,因为实验板上的时钟为25M,如果不分频,人眼不可能观察到LED循环点亮。
图1 流水灯原理框图
6.5 案例步骤
(1)首先用代码设计能满足肉眼分辨要求的分频器。
(2)设计显示部分电路,当流水灯跑完一周后数码管计数字加一。
(3)把设计的电路部分都创建为一个符号,在顶层原理图中调用以组成电路系统。
(4)完成电路的引脚锁定,分别将各输入引脚锁定到按键或者跳线上,时钟输入端锁定在开发试验系统的时钟输出引脚上,将计数的输出通过译码电路(CPLD)连接到7段数码管上进行显示。
6.6 案例报告
(1)详细叙述流水灯的设计流程;给出原理图及其对应的仿真波形图;给出电路的时序分析情况;最后给出硬件测试流程和结果。
(2)需要思考总结的问题:实际实验中往往要用到频率很低的时钟(比如1Hz,10Hz),这时往往要用到20M的分频,考虑如何用比较简练的形式写出高效的程序。
6.7 附录
6.7.1 设计代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNTFEN IS
PORT (CLK,RST,EN:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR( 30 DOWNTO 0);
COUT: OUT STD_LOGIC);
END CNTFEN;
ARCHITECTURE behav OF CNTFEN IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLE CQI: STD_LOGIC_VECTOR(30 DOWNTO 0);
BEGIN
IF RST='1'THEN CQI:=(OTHERS =>'0');--计数器异步复位
ELSIF CLK'EVENT AND CLK='1'THEN --检测时钟上升沿
IF EN='1'THEN --检测是否允许计数(同步使能) IF CQI<9999999 THEN CQI := CQI + 1;--允许计数,
ELSE CQI:=(OTHERS =>'0');--检测是否小于9 大于9,计数值清零
END IF;
END IF;
END IF;
IF CQI=9999999 THEN COUT <='1';--计数大于9999999,输出进位信号
ELSE COUT<='0';
END IF;
CQ <= CQI;--将计数值向端口输出
END PROCESS;
END behav;
分频器VHDL描述
图2 顶层电路图
6.7.2 仿真结果。