硬件课程设计彩色LED组跑马灯的设计与仿真Word文件下载.docx
《硬件课程设计彩色LED组跑马灯的设计与仿真Word文件下载.docx》由会员分享,可在线阅读,更多相关《硬件课程设计彩色LED组跑马灯的设计与仿真Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
(3)通过课程设计培养学生严谨的科学态度和团队协作精神。
(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现,给出个人分析、设计以及实现。
应当提交的文件:
(1)课程设计报告。
(2)课程设计附件(源程序、各类图纸、实验数据、仿真截图等实证材料)。
课程设计成绩评定
学院计通学院专业
班级学号
学生姓名指导教师
完成日期2015年1月8日
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字年月日
学生姓名:
***指导老师:
***
摘要:
本设计是基于VHDL设计的一个彩色LED组跑马灯,学习利用CPLD控制彩色LED跑马灯,本次设计基于EDA使用VHDL语言设计和实现彩色LED组跑马灯,彩色LED组跑马灯具有多种工作模式,并对与不同工作模式,播放不同的音乐。
通过时钟信号来设定工作模式,从而运行特定的彩灯效果,采用自顶向下的模块化设计。
这次设计以VHDL语言和MAX+PLUSII为工具,实现彩色LED组跑马灯的设计。
系统分模块进行分析和设计,系统给出相应的设计原理图和VHDL源程序,通过仿真实现预定功能。
关键词:
彩色LED组跑马灯;
EDA;
VHDL;
MAX+plusⅡ;
DesignandImplementationcolorLEDMarqueeGroup
StudentName:
***Supervisor***
Abstract:
ThisdesignisbasedonasetofcoloredLEDMarqueeVHDLdesign,learntouseCPLDtocontrolcolorLEDmarquee,thisdesignisbasedontheuseofVHDLlanguageEDAdesignandimplementationgroupcolorLEDmarquee,colorLEDmarqueegroupwithmultipleoperatingmodes,andwithdifferentmodes,differentmusicplayback.Byclocksignalstosettheoperatingmode,whichrunsaspecificlanterneffect,usingtop-down,modulardesign.ThedesignofVHDLandMAX+PLUSIIasatooltoachieveMetroautomaticticketingsystem.Systemanalysisanddesignofthemodule,thesystemgivesthecorrespondingdesignschematicsandVHDLsourcecode,toachievetheintendedfunctionthroughsimulation.
Keywords:
ColorLEDmarqueegroup;
EDA;
VHDL;
MAX+plusⅡ;
1引言
人类社会已进入到高度发达的信息化社会。
信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。
电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。
实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,ElectronicsDesignAutomation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。
为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。
目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。
EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个彩色LED组跑马灯,使其具有针对不同的信号来显示不同效果的跑马灯,并播放不同的音乐的功能。
1.1课题背景及意义
随着EDA[1]仿真技术的发展,数字系统的设计技术和设计工具发生了深刻的变化。
利用硬件描述语言(VHDL)[2]对数字系统的硬件电路进行描述是EDA的关键技术之一。
VHDL语言是目前主流的硬件描述语言,它具有很强的电路描述和建模能力,具有与具体电路无关和与设计平台无关的特性,在语言易读性和层次化结构方面表现出强大的生命力和应用潜力。
随着科学的日益进步,我们对数字钟的需求也越来越大。
因为人们也越来越忙,时刻都在受着时间的影响,我们。
我们采用了先进的EDA技术,MAX+plusⅡ工作平台和VHDL语言[3],设计了多功能数字钟系统,并对系统进行了仿真验证。
通过仿真及验证的结果分析,完全适应智能化发展要求。
不但实现的报时定时各种的功能,大大提高了时间的准确度,而且提高了系统的先进性和可靠性。
能实现控制器的系统编程。
采用这种器件开发的数字系统其升级与改进非常方便。
这一控制电路,结构简单、性能稳定、操作方便、抗干扰能力强。
将它应用于校园与各地,稳定性高,准确性强。
1.2设计目的
系统设计采用自顶向下的设计方法,使用简单的EDA程序实现跑马灯显示效果设计。
并且熟悉可编程逻辑器件的使用,通过制作来了解跑马灯控制系统。
主要具有以下几点目的:
1、熟练掌握VHDL文本输入设计方法。
2、初步掌握VHDL语言中时序逻辑的设计实现。
3、掌握原理图的制作和连线及模块的整合。
4、熟练掌握根据波形仿真结果进行验证设计的过程。
1.3设计意义
近年来,集成电路技术迅猛发展,特别是可编程逻辑器件的告诉发展,电子设计自动化EDA以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。
电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,修改设计也比较方便,利用EDA工具可以极大提高设计效率。
利用硬件描述语言(VHDL)对数字系统的硬件电路进行描述是EDA的关键技术之一。
我们采用了先进的EDA技术,MAX+plusⅡ工作平台和VHDL语言,设计了彩色LED组跑马灯,并对系统进行了仿真验证。
通过仿真及验证的结果分析,判断设计的正确性。
2设计的依据
现代电子设计技术的核心是EDA技术。
基于EDA技术开发的实现三层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。
硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。
使用VHDL语言进行程序的设计,在MAX+plusⅡ软件上对程序进行编译、仿真。
在MAX+plusⅡ平台上的开发具有编程软件具有采自易学易懂的梯形图语言、控制灵活方便、抗干扰能力强、运行稳定可靠等优点。
2.1EDA技术介绍
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作[4]。
EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
2.2VHDL语言介绍
(1)VHDL的简介
VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage),即超高速集成电路硬件描述语言。
因此它的应用主要是应用在数字电路的设计中。
诞生于1982年。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。
现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
(2)VHDL语言的特点
与其他硬件描述语言相比,VHDL具有以下特点[5]:
A功能强大、设计灵活
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
B支持广泛、易于修改
由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。
在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。
C强大的系统硬件描述能力
VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。
而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。
另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。
D独立于器件的设计、与工艺无关
E很强的移植能力,易于共享和复用
VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。
VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块[6]。
这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用。
2.3MAX+plusⅡ软件
MAX+plusⅡ(MultipleArrayandProgrammingLogicUserSystem)开发工具是美国Altera公司推出的一种EDA工具,具有灵活高效,使用便捷,易学易用的特点。
使用MAX+plusⅡ软件,设计者无需精通器件内部的复杂结构,只需熟悉所用的设计输入工具,如硬件描述语言、原理图等进行输入,MAX+plusⅡ自动将设计转换成目标文件下载到器件中去。
MAX+plusⅡ设计步骤:
步骤1:
为本项工程设计建立文件夹
任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的文件的文件夹,此文件夹将被EDA软件默认为工作库(WorkLibrary)。
一般不同的设计项目最好放在相应的文件夹中,注意,一个设计项目可以包含多个设计文件,文件夹名不能用中文,且不可带空格。
步骤2:
输入设计项目和存盘
设计者将所设计的系统或电路以开发软件要求的某种形式表现出来,并送入计算机的过程称为设计输入。
设计输入通常有以下几种方式。
步骤3:
将设计项目设置成工程文件
为了使MAX+plusII能对输入的设计项目按设计者的要求进行各项处理,必须将设计文件设置成当前Project。
步骤4:
选择目标器件并编译
这是器件设计中的核心环节。
在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动进行适配,最后产生编程用的编程文件。
步骤5:
时序仿真
步骤6:
建立元件
步骤7:
引脚锁定
步骤8:
编程下载
3设计步骤
3.1设计功能及分析
本系统主要具有以下两大点功能:
1、实现8个红色LED的亮、灭、交错显示等,其显示如下
(1)复位时,8个灯全灭;
(2)从左到右第一个开始亮,依次亮到最后一个;
(3)从右到左第一个开始亮,依次亮到最后一个;
(4)从中间亮到两边;
(5)从两边亮到中间;
2、随着彩灯显示图案的变化,发出不同的音响声。
由上述的具有的功能可知,本系统主要需要五大模块组成,分别是集成分频模块、32进制计数器模块、彩灯控制模块、4选1选择器模块、4进制计数器模块。
对与每个模块的具体功能介绍请看第四节。
3.2系统总体框架结构
这次的跑马灯设计采用的是分模块来完成的,包括分频器、计数器、选择器、彩灯控制器。
其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个32进制的计数器来控制,如图3.1所示。
扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个4选一的选择器来控制,如图3.2所示。
图3.1跑马灯的输出原理方框图
图3.2扬声器输出原理方框图
3.3MAX+plusII应用与程序调试
(1)首先在maxplus下建立一个工程目录,然后打开MAX+plusⅡ软件,其初始界面如图3.3所示:
图3.3MAX+plusⅡ软件初始化界面
(2)在工具栏中选择“新建”按钮。
在选择输入路径时,选择“TextEditorFile”以进行文本输入,如图3.4所示:
图3.4输入路径选择为文本输入
(3)在文本输入界面内进行程序输入,如图3.5所示:
图3.5程序输入界面
(4)输入完毕后,需要对程序进行保存。
文件名和实体定义的符号必须保持一致,即文件名为flift。
因为是使用VHDL语言,所以文件后缀名须改成vhd。
(5)保存以后,对程序进行编译。
在编译前,需要把文件设置为顶层文件,或称工程文件Project。
选择菜单“File”→“Project”→“SetProjecttoCurrentFile”,当前的文件即被指定。
详见图3.7所示:
图3.7设置顶层文件
(6)在“MAX+plusⅡ”下拉按钮里选择“Compiler”,对程序进行编译,此时,MAX+plusⅡ软件会对程序进行纠错等处理。
当程序被确认无误以后会出现如下界面,如图3.8所示:
图3.8编译完成图
(7)在编译完成以后,打开程序页面,选择“File”→“EditSymbol”,出现引脚图,如下图3.9所示:
图3.9引脚图
4硬件电路的设计与软件设计
4.1集成分频器模块
(1)功能说明和设计
设计要求显示不同的跑马灯的时候要伴随不同的音乐,所以设计分频器来用不同的频率控制不同的音乐输出。
元器件如图4.1所示。
模块说明:
rst:
输入信号复位信号用来复位集成分频器的输出使输出为“0”,及没有音乐输出。
clk:
输入信号模块的功能即为分频输入的频率信号。
clk_4、clk_6、clk_8、clk_10:
输出信号即为分频模块对输入信号clk的分频,分别为1/4分频输出、1/6分频输出、1/8分频输出、1/10分频输出。
图4.1集成分频器
(2)分频器VHDL程序编写
程序VHDL源代码请见附录一。
(3)仿真结果
仿真结果如图4.2所示。
由上述的功能分析可知,本模块主要是进行分频的。
在仿真时,clk的时钟周期是100ns。
当clk产生4个上升沿信号时,1/4分频将会输出一个高电平;
当clk产生6个上升沿信号时,1/6分频将会输出一个高电平;
当clk产生8个上升沿信号时,1/8分频将会输出一个高电平;
当clk产生10个上升沿信号时,1/10分频将会输出一个高电平。
图4.2中,在50ns时,a=1,b=1,c=1,d=1,各分频输出均为0;
在150ns时,a=2,b=2,c=2,d=2,各分频输出均为0;
在250ns时,a=3,b=3,c=3,d=3,各分频输出均为0;
在350ns时,此时1/4分频器将会输出1,并且a=0,a=0,b=4,c=4,d=4,其余分频输出均为0;
在450ns时,a=1,b=5,c=5,d=5,分频输出均为0;
在550ns时,此时1/6分频器将会输出1,并且b=0,a=2,b=0,c=6,d=6,分频输出均为0;
在650ns时,a=2,b=1,c=7,d=7,分频输出均为0;
在750ns时,此时1/4分频器将会输出1,并且a=0,1/8分频器将会输出1,并且c=0,a=0,b=1,c=0,d=8,分频输出均为0;
在850ns时,a=1,b=2,c=1,d=9,分频输出均为0;
在950ns时,此时1/10分频器将会输出1,并且d=0,a=1,b=2,c=1,d=9,分频输出均为0;
所以此仿真图的结果完全符合设计要求。
图4.2集成分频器仿真波形
4.232进制计数器模块
(1)功能说明和设计
32进制模块用来控制彩灯输出模块,即确定跑马灯控制器的不同的输出。
元器件如图4.3所示。
Rst:
输入信号复位信号用来复位32进制使其输出为“00000”。
Clk:
输入信号用来给模块提供工作频率。
Count_out[4..0]:
输出信号即为32进制计数器的输出。
图4.332进制计数器
(2)32进制计数器VHDL程序编写
程序VHDL源代码请见附录二。
仿真结果如图4.4所示。
由上述的功能设计可以知道,本模块主要是在时钟信号产生上升沿时,输出为0到31的值。
在本此仿真实验中,clk的时钟周期为50ns。
所以在下图可以看到,在25ns时,产生一个上升沿信号,计数器输出1。
在625ns时,产生一个上升沿信号,计数器输出13,即二进制的01101。
所以本次仿真结果符合功能设计要求。
图4.432进制计数器仿真波形
4.3彩灯控制模块
彩灯控制模块用来直接控制跑马灯的输出,使彩灯表现出不同的花样。
元器件如图4.5所示。
输入信号使彩灯控制模块的输出为“00000000”,即让彩灯无输出。
Input[4..0]:
输入信号不同的输入使彩灯控制模块有不同的输出即彩灯显示出不同的花样。
Output[7..0]:
输出信号直接与彩灯相连来控制彩
图4.5彩灯控制模块
(2)彩灯控制模块VHDL程序编写
程序VHDL源代码请见附录三。
仿真结果如图4.6所示。
由上述的功能设计说明可知,本模块将对输入的信号input产生相应的输出信号,从而实现彩灯的控制和实现。
如图4.6所示,在0ns——200ns时,输入信号为00000,rst输入信号为0,此时输出信号output为10000000,sm为0000110,所以符合该程序的设计要求。
在1.2us时间里,rst信号为1,即产生复位信号,此时输出均为
图4.6跑马灯控制模块仿真波形
4.44选1选择器模块
本模块的主要功能是对与输入的选择信号,选择对于的分频输入信号作为输出信号。
即产生不同的音乐。
元器件如图4.7所示。
输入信号复位信号使选择器的输出为“0”。
a、b、c、d:
输入信号接分频器的输出。
s[1..0]:
输入信号接4进制计数器的输出用来控制选择器的选择不同的输入选择不同的输出。
y:
输出信号直接接扬声器即输出的是不同的频率来控制扬声器播放音乐。
图4.74选1选择器
(2)4选1选择器模块VHDL程序编写
程序VHDL源代码请见附录四。
仿真结果如图4.8所示。
由上述的功能设计可以知道,当输入片选信号是00时,则输出a的信号;
当输入片选信号是01时,则输出b的信号;
当输入片选信号是10时,则输出c的信号;
当输入片选信号是11时,则输出d的信号;
如图4.8可知,每50ns选择四个输入信号作为输出信号。
所以每200ns完成一次a、b、c、d的选择。
在150ns到200ns时,选择信号选择d作为输出信号,所以输出为1,由图可知,输出信号并没有马上输出而是有延迟,这是由于元器件之间的竞争产生的。
图4.84选1选择器仿真波形
4.54进制计数器模块
4进制计数器作为选择器的输入来控制选择器选择不同的频率作为输出控制扬声器工作。
元器件如图4.9所示。
输入信号来为计数器提供工作频率。
输入信号复位信号使计数器的输出为“00”。
count_out:
输出信号,输出选择信号,输出值有00,01,10,11。
图4.94进制计数器
(2)4进制计数器模块VHDL程序编写
(3)仿真结果
仿真结果如图4.10所示。
由上述的功能设计可知,本模块主要是根据输入的时钟信号的上升沿产生计数输出。
如图4.10所示,在0ns到250ns之间,每产生一个上升沿,计数器的输出就变化一次,所以在25ns到75ns之间,输出的是01;
在75ns到125ns之间输出的是10;
在125ns到175ns之间输出的是11;
在175ns到225ns之间输出的是10;
在225ns到300ns之间由于复位信号为有效电平,所以产生置位,输出为00;
图4.104进制计数器仿真波形
5系统结构及仿真
5.1系统模块建