基于FPGA的交通灯控制器设计论文_第1页
基于FPGA的交通灯控制器设计论文_第2页
基于FPGA的交通灯控制器设计论文_第3页
基于FPGA的交通灯控制器设计论文_第4页
基于FPGA的交通灯控制器设计论文_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要IV.z基于FPGA的交通灯控制器设计摘要超高速硬件描述语言VHDL,是对数字系统进展抽象的行为与功能描述到具体的部线路构造描述,利用EDA工具可以在电子设计的各个阶段、各个层系进展计算机模拟验证,保证设计过程的正确性,可大大降低设计本钱,缩短设计周期。本文介绍的数字秒表设计,利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。交通灯控制系统可以实现路口红绿灯的自动控制。基于FPGA设计的交通灯控制系统具有电路简单、可靠性强、实时快速擦写、运算速度高、故障率低、可靠性高,而且体积小的特点。本设计采用Altera公司Cyclone系列的EPlC3T1444C8芯片,在QuartusII软件平台上使用VHDL语言,采用自顶向下的设计方法对系统进展了模块化设计和综合,并进展了仿真。该系统可实现十字路口红绿灯及左转弯控制和倒计时显示,仿真结果结果说明系统能够自动控制交通灯转变。关键词:VHDL,交通灯,EDATHELIGHTCONTROLLERBASEDONFPGADESIGNABSTRACTWiththedevelopmentoftheeconomy,microelectronictechnology,putertechnologyandtheautomatictheoryaredevelopedrapidly.Itsapplicationisbeingmoreandmorewidely.Butthetrafficlightasanimportanttraffic,italsohasdevelopedquicklywiththeimprovingrequirementofthepeople.Onallthesystemofthetrafficlight,ThesystemoftrafficcontrolwhichdesignedbasedonFPGAisreceivedbymoreandmorepeople.Thesystemoftrafficcontrolcanrealizetheautomaticcontroloftrafficlightinaintersection.ThesystemoftrafficcontrolwhichdesignedbasedonFPGAhasmanycharacteristicssuchassimplecircuit,reliableoperation,toerasefunctionquicklywithreal-timeapplications,highspeed,highreliability,lowfailurerate,andsmallvolume.ByusingtheplatformofsoftwaredesignsystemQuartusIIandtheformoftheVHDLlanguage,wesimulatethesystembyusingEPlC3T1444C8Marsdeviceandtheresultshowthatthedownloadsystemcanautomaticallycontrolthetrafficlights.KEYWORDS:VHDL,trafficlight,EDA目录前言1第1章FPGA概述21.1FPGA的简介21.2FPGA的应用2第2章VHDL硬件描述语言32.1VHDL程序根本构造32.1.1实体32.1.2构造体42.1.3库42.2VHDL语言42.2.1VHDL文字规则42.2.2VHDL数据对象42.2.3VHDL数据类型52.2.4VHDL顺序语句52.2.5VHDL并行语句5第3章系统设计与仿真63.1系统介绍63.1.1设计任务63.1.2设计要求63.2系统设计仿真73.2.1顶层框图的设计73.2.2时序状态图的设计73.2.3工程设计流程框图:83.2.4芯片的选择83.2.5各个模块的设计与仿真8结论23辞24参考文献25附录26外文资料翻译28-.z前言当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断进展更新换代,随着微电子技术的开展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师更愿意自己设计专业集成电路〔ASIC〕芯片,而且希望设计周期尽可能短,最好在实验室里就能设计出适宜的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程器件〔FPLD〕。现场可编程门阵列〔FPGA〕即属其中应用最广泛的一种。随着电子技术的开展,特别是大规模集成电路和计算机技术的研制和开展,让电子产品设计有了更好的应用市场,实现方法也有了更多的选择,而电子电路的设计却变得越来越复杂,使用“语言〞进展电子设计已成为一种趋势。现代电子系统设计方法是设计师自己设计芯片来实现电子系统的功能,将传统的固件选用及电路板设计工作放在芯片设计中进展。在这些专业化软件中,EDA(ElectronicDesignAutomation)具有一定的代表性,EDA技术是一种基于芯片的现代电子系统设计方法。基于EDA技术的现场可编程门阵列(FPGA)电(ASIC),在数字系统设计和控制电路中越来越受到重视。VHDL语言是电子设计的主流硬件描述语言,它更适合进展行为描述,这种方式使得设计者专注于电路功能的设计,而不必过多地考虑具体的硬件构造。基于EDA技术的现场可编程门阵列(FPGA)电路,提出现场可编程门阵列(FPGA)是近年来迅速开展的大规模可编程专用集成电路(ASIC),在数字系统设计和控制电路中越来越受到重视。VHDL语言是电子设计的主流硬件描述语言,它更适合进展行为描述,这种方式使得设计者专注于电路功能的设计,而不必过多地考虑具体的硬件构造。第1章FPGA概述1.1FPGA的简介FPGA〔Field-ProgrammableGateArray〕,即现场可编程门阵列,它是在可编程器件的根底上进一步开展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的缺乏,又抑制了原有可编程器件门电路数有限的缺点。目前以硬件描述语言所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进展测试,是现代IC设计验证的技术主流。1.2FPGA的应用FPGA的应用可分为三个层面:电路设计,产品设计,系统设计。1.电路设计连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石。事实上在电路设计中应用FPGA要求开发者要具备相应的硬件知识〔电路知识〕和软件应用能力〔开发工具〕。2.产品设计把相对成熟的技术应用到*些特定领域开发出满足行业需要并能被行业客户承受的产品。这方面主要是FPGA技术和专业技术的结合问题,重点在性能,FPGA技术在这个领域是一个实现手段,FPGA因为具备接口,控制,功能IP,嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计。3.系统级应用系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用*ilin*V-4,V-5系列的FPGA,实现嵌POWERPCCPU,然后再配合各种外围功能,这个平台上跑LINI*等系统这个系统也就支持各种标准外设和功能接口了,这对于快速构成FPGA大型系统来讲是很有帮助的。第2章VHDL硬件描述语言2.1VHDL程序根本构造一个相对完整的VHDL程序通常包含实体、构造体、配置、程序包和库5个局部。程序模板如下:LIBRARYlibraryname;USElibraryname.packagename.all;ENTITYentitynameISGENERIC(parametername:string:=defaultvalue;parametername:integer:=defaultvalue);PORT(inputname,inputname:INSTD-LOGIC;Inputvectorname:INSTD_LOGIC_VECTOR(highDOWNTOlow);outputname,outputname:OUTSTD_LOGIC);ENDentityname;ARCHITECTUREaOFentitynameISSIGNALsignalname:STD_LOGIC;BEGIN--processstatement(optional):--generatestatement(optional)ENDa;2.1.1实体实体一般用来描述所设计的系统的外部接口信号,是可视局部;其中最重要的局部是端口说明。端口说明语句是对于一个设计实体界面的说明。端口名是赋予每个系统引脚的名称。一个实体通常有一个或多个端口,端口类似于原理图部件符合上的管脚。实体与外界交流的信息必须通过端口通道流入或流出。IEEE1064标准包中定义了四种端口模式,其功能及符号分别是IN、OUT、INOUT、BUFFER、LINKAGE。2.1.2构造体构造体用于描述系统部的构造和行为,建立输入输出之间的关系。在一个实体中,可以含有一个或一个以上的构造体,而在每一个构造体中又可以含有一个或多个进程以及其他的语句。其中,实体名必须是被设计的实体的名字。构造体中的说明语句是对构造体的功能描述语句中将要用到的信号、数据类型、常数、元件、函数和过程等加以说明的语句。构造体包含两类语句:并行语句和顺序语句。在PROCESS中的语句是顺序执行的,当PROCESS所带的敏感信号发生变化时,PROCESS中的语句就会执行一遍。2.1.3库库使用说明用于翻开〔调用〕本设计实体将要用到的库,库是专门存放预编译程序包的地方。IEEE库:在IEEE库中有一个STD_LOGIC的包,它是IEEE正式认可的包。STD库:STD库是VHDL的标准库,在库中有名为STANDARD的包。在使用库之前,一定要进展库说明,库的说明总是放在设计单元的前面。2.2VHDL语言2.2.1VHDL文字规则VHDL文字主要包括数值和标识符。数值型文字主要有数字型、字符串型和位串型。数字型文字有:整数文字〔十进制数〕、实数文字〔十进制数,必须带有小数点〕、以数字基数表示的文字。字符串型文字有:文字字符串、数位字符串、标识符。VHDL数据对象在VHDL中,数据对象类似于一种容器,承受不同数据类型的赋值。数据对象有3种:即常量、信号、变量。常量是固定值,不能在程序中被改变。变量时一个局部量,是一个临时数据,没有物理意义。它只能在Process和Function中定义,必须在进程和子程序的说明性区域说明,并只在其部有效。信号是描述硬件系统的根本数据对象,代表连接线,Port也是一种信号。2.2.3VHDL数据类型VHDL是一种强类型语言,要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参量都必须具有确定的数据类型,并且只有一样的数据类型的量才能互相传递和作用。VHDL的根本类型有:bit(位)、bit-Vector(位矢量)、Boolean、time、character、string、integer、real。2.2.4VHDL顺序语句VHDL有如下六类根本顺序语句:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句。赋值语句有信号赋值语句和变量赋值语句两种。流程控制语句共有五种:IF语句、CASE语句、LOOP语句、NE*T语句、E*IT语句。IF语句根据条件句产生的判断结果:TRUE或FALSE,有条件地选择执行其后的顺序语句。CASE语句根据满足的条件直接选择多项顺序语句中的一项执行。空操作语句不完成任何操作,它常用于CASE语句中,利用它来表示所余的不用条件下的操作行为——满足所有可能的条件。2.2.5VHDL并行语句构造体中的并行语句主要有七种:并行信号赋值语句、进程语句、块语句、条件信号赋值语句、元件例化语句〔其中包括类属配置语句〕生成语句、并行过程调用语句。第3章系统设计与仿真3.1系统介绍交通灯控制器用于自动控制十字路口交通灯和计时器,指挥各种车辆和行人平安通行。3.1.1设计任务设计一个十字路口交通控制器,方向分为东南西北四个方向。东西方向的红绿灯状态一样,南北方向的红绿灯状态一样。每个方向上,有四盏灯,分别是左转灯、红灯、绿灯和黄灯。左拐灯亮表示左转车辆可以通行;红灯亮表示左转和直行车辆禁行;绿灯亮表示直行车辆和右转的车辆可以通行;黄灯亮表示左转和直行的车辆即将禁行;倒计时显示器用来显示允许通行或制止通行的时间倒计时。3.1.2设计要求在十字路口东西方向和南北方向各设一组左转灯、;显示的顺序为:左转灯绿灯黄灯红灯。在东西方向和南北方向各设一组倒计时显示器。倒计时只显示对应方向上的红灯倒计时和绿灯倒计时。其余的状态不显示倒计时。左转灯、红灯、绿灯和黄灯亮的时间分别是15秒、80秒、45秒、5秒。状态表如表3-1所示:表3-1交通灯状态转换表状态S0S1S2S3S4S5东西方向红红红红左转绿黄亮灯1545515455南北方向红左转绿黄红红红亮2系统设计仿真对于交通灯控制器,可基于QuartusII软件,采用层次化混合输入方式进展设计,即顶层采用原理图设计,底层采用VHDL语言设计。3.2.1顶层框图的设计顶层原理图设计可以依据系统框图进展,有分频模块、控制模块、倒计时模块、红绿灯显示模块、译码模块、译码显示模块6六局部组成,如图3-1所示:图3-1顶层原理图系统框图3.2.2时序状态图的设计图3-2交通灯时序状态图3.2.3工程设计流程框图:新建工程新建工程新建原理图文件或VHDL文件输入程序或编辑原理图编译,假设有错,修改程序,直至无错建立波形文件,导入管脚编译波形文件,查看仿真结果,保存图3-3工程设计流程框图3.2.4芯片的选择在这次毕业设计中,我们选用的FPGA芯片是Altera公司的Cyclone〔飓风〕系列的芯片,型号为:EP1C3T144C8。它是基于1.5V的,采用0.13um全铜SRAM工艺、TQFP封装,有5980个逻辑单元,2个锁相环,20个M4KRAM块,其中每个RAM为4kbit,可以另加一位奇偶校验位。3.2.5各个模块的设计与仿真1.模块设计该模块可将频率为1KHZ的脉冲波,经过分频变为频率为1HZ的脉冲波,这样我们就得到了周期为1S的脉冲波。分频器程序清单如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenpinqiis port(clk1khz:instd_logic; clk1hz:outstd_logic);endfenpinqi;architectureaoffenpinqiis begin process(clk1khz) variableq:integer:=0; variabler:std_logic:='0'; begin ifclk1khz'eventandclk1khz='1'then ifq=512thenr:=notr;q:=0; elseq:=q+1; endif; clk1hz<=r; endif; endprocess; enda;分频器程序仿真结果如图3-4所示:图3-4分频器程序仿真结果图在分频器程序仿真结果图中,clk1khz为输入脉冲信号,频率为1khz;clk1hz为输出脉冲信号,频率为1hz。从图中,我们可以看出clk1hz的周期为1s。这说明程序确实把1khz的信号分频成1hz的信号。2.模块设计control模块可根据clk的脉冲信号输出S的值,下游模块根据S的值来决定红绿灯的状态。同时对倒计时的信号赋初值。control模块程序清单:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycontrolis port(clk:instd_logic; s:outstd_logic_vector(2downto0); loadat,loadbt:outstd_logic; at,bt:outintegerrange0to80);endcontrol;architectureaofcontrolissignalt:integer;beginprocess(clk)begin ifclk'eventandclk='1'then loadat<='0';loadbt<='0'; ift=0thens<="000";at<=80; loadat<='1'; elsift=15thens<="001";bt<=45;loadbt<='1'; elsift=60thens<="010"; elsift=65thens<="011";bt<=80;loadbt<='1'; elsift=80thens<="100";at<=45;loadat<='1'; elsift=125thens<="101"; endif; t<=t+1; endif; ift=130thent<=0;endif;endprocess; enda;control模块程序仿真结果如图3-5所示:图3-5control模块程序仿真结果图在control模块程序仿真结果图中,只有一个输入信号clk,它是一个频率为1hz的时钟脉冲信号,输出信号有3个分别是s、at、bt。程序中,通过变量t的值来确定输出信号s的值,并由此确定将要赋得倒计时的初值,然后赋给at,bt。在每次给at,bt赋值时,都会使另一个输出信号loadat,loadbt变成高电平,从而可以触发下一模块的装载。3.daojishi模块设计该模块用来接收control模块的输出作为初值,并进展减一操作,最后把减一得结果输出。程序里每检测到一个脉冲clk,就进展一次减一操作。atdaojishi模块程序清单:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityatdaojishiis port(clk,loadat:instd_logic; atin:inintegerrange0to80; atout:outintegerrange0to80);endatdaojishi;architectureaofatdaojishiis signalcountat:integerrange0to80; begin process begin waituntilrising_edge(clk); ifloadat='1'thencountat<=atin; elsecountat<=countat-1; endif; endprocess; atout<=countat;enda; atdaojishi模块程序仿真结果如图3-6所示:图3-6atdaojishi模块程序仿真结果图在atdaojishi模块程序仿真结果图中,clk为1hz的输入信号,loadat为at计数器的装载信号,当loadat为高电平时,将输入信号atin的值装载到计数器中,开场执行减一操作,每承受一次clk,执行一次,并将结果输出。4.daojishi模块设计该模块用来接收control模块的输出作为初值,并进展减一操作,最后把减一得结果输出。程序里每检测到一个脉冲clk,就进展一次减一操作。btdaojishi模块程序清单:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitybtdaojishiis port(clk,loadbt:instd_logic; btin:inintegerrange0to80; btout:outintegerrange0to80);endbtdaojishi;architectureaofbtdaojishiis signalcountbt:integerrange0to80; begin process begin waituntilrising_edge(clk); ifloadbt='1'thencountbt<=btin; elsecountbt<=countbt-1; endif; endprocess; btout<=countbt;enda; btdaojishi模块程序仿真结果如图3-7所示:图3-7btdaojishi模块程序仿真结果图在btdaojishi模块程序仿真结果图中,clk为1hz的输入信号,loadbt为bt计数器的装载信号,当loadbt为高电平时,将输入信号btin的值装载到计数器中,开场执行减一操作,每承受一次clk,执行一次,并将结果输出。5.Main模块设计libraryieee;useieee.std_logic_1164.all;ll;entitymainis port(s:instd_logic_vector(2downto0); lrgy:outstd_logic_vector(7downto0));endmain;architectureaofmainisbegin process(s) variableb:std_logic_vector(7downto0); begin casesis when"000" =>b:="01001100"; when"001" =>b:="01000010"; when"010" =>b:="01000001"; when"011" =>b:="11000100"; when"100" =>b:="00100100"; when"101" =>b:="00010100"; whenothers=>b:="00000000"; endcase; lrgy<=b; endprocess;enda; main模块程序仿真结果如图3-8所示:图3-8main模块程序仿真结果图Main模块可根据输入的S信号,输出对应的红绿灯信号。直接改变并驱动红绿灯的亮和灭。在main模块程序仿真结果图中,S为输入信号,用来说明整个红绿灯的状态〔一共6个状态:S0~S5〕;lrgy为输出信号,代表整个红绿灯的亮和灭的情况,灯的排序从高位到低位排列,方向上是先东西方向,后南北方向。也就是说,序列为:东西方向左转灯、红灯、绿灯、黄灯,然后南北方向左转灯、红灯、绿灯、黄灯。从图中我们可以看出S的状态从“000〞到“101〞,共六个状态,每一个状态都对应相应的红绿灯亮灭的状态,仿真结果完全正确,符合预期。6.码模块设计译码程序将输入的用来显示的两位倒计时数值,分解成四个整形的数值,以供后面的译码显示模块继续译码显示。译码程序清单如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityto8421bcdis port(at,bt:inintegerrange0to80; aout1,aout2,bout1,bout2:outintegerrange0to9);endto8421bcd;architectureaofto8421bcdis begin process(at,bt) begin ifat>=70then aout1<=7; aout2<=at-70; elsifat>=60then aout1<=6; aout2<=at-60; elsifat>=50then aout1<=5; aout2<=at-50; elsifat>=40then aout1<=4; aout2<=at-40; elsifat>=30then aout1<=3; aout2<=at-30; elsifat>=20then aout1<=2; aout2<=at-20; elsifat>=10then aout1<=1; aout2<=at-10; elsifat>=0then aout1<=0; aout2<=at; endif; ifbt>=70then bout1<=7; bout2<=bt-70; elsifbt>=60then bout1<=6; bout2<=bt-60; elsifbt>=50then bout1<=5; bout2<=bt-50; elsifbt>=40then bout1<=4; bout2<=bt-40; elsifbt>=30then bout1<=3; bout2<=bt-30; elsifbt>=20then bout1<=2; bout2<=bt-20; elsifbt>=10then bout1<=1; bout2<=bt-10; elsifbt>=0then bout1<=0; bout2<=bt; endif; endprocess;enda; 译码程序仿真结果如图3-9所示:图3-9译码程序仿真结果图在译码程序仿真结果图中,at,bt为输入信号,at,bt的围为0~80。这包含了所有倒计时的围;aout1,aout2,bout1,bout2为输出信号,值的围为0~9,涵盖了数码管显示数字的围。图中at,bt的值不断变化,而aout1,aout2都能将at的值分解成个位和十位,其中aout1代表十位,aout2代表个位;bout1,bout2都能将bt的值分解成个位和十位,其中bout1代表十位,bout2代表个位。仿真结果完全正确,符合预期。7.译码显示模块设计译码显示模块将上一个模块输出四个一位数译码成相对应的七位数码管段码,完成倒计时的译码和显示。译码显示程序清单如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityyima*ianshiis port(at1,at2,bt1,bt2:inintegerrange0to9; aout1,aout2,bout1,bout2:outstd_logic_vector(7downto0));endyima*ianshi;architectureaofyima*ianshiisbegin process(at1,at2,bt1,bt2) begin caseat1is when0=>aout1<="00111111"; when1=>aout1<="00000110"; when2=>aout1<="01011011"; when3=>aout1<="01001111"; when4=>aout1<="01100110"; when5=>aout1<="01101101"; when6=>aout1<="01111101"; when7=>aout1<="00000111"; when8=>aout1<="01111111"; when9=>aout1<="01101111"; whenothers=>aout1<="00000000"; endcase; caseat2is when0=>aout2<="00111111"; when1=>aout2<="00000110"; when2=>aout2<="01011011"; when3=>aout2<="01001111"; when4=>aout2<="01100110"; when5=>aout2<="01101101"; when6=>aout2<="01111101"; when7=>aout2<="00000111"; when8=>aout2<="01111111"; when9=>aout2<="01101111"; whenothers=>aout2<="00000000"; endcase; casebt1is when0=>bout1<="00111111"; when1=>bout1<="00000110"; when2=>bout1<="01011011"; when3=>bout1<="01001111"; when4=>bout1<="01100110"; when5=>bout1<="01101101"; when6=>bout1<="01111101"; when7=>bout1<="00000111"; when8=>bout1<="01111111"; when9=>bout1<="01101111"; whenothers=>bout1<="00000000"; endcase; casebt2is when0=>bout2<="00111111"; when1=>bout2<="00000110"; when2=>bout2<="01011011"; when3=>bout2<="01001111"; when4=>bout2<="01100110"; when5=>bout2<="01101101"; when6=>bout2<="01111101"; when7=>bout2<="00000111"; when8=>bout2<="01111111"; when9=>bout2<="01101111"; whenothers=>bout2<="00000000"; endcase; endprocess;enda; 译码显示仿真结果如图3-10所示:图3-10译码显示模块仿真结果图在译码显示模块仿真结果图中,at1,at2,bt1,bt2为输入信号,它们的值的围为0~9;aout1,aout2,bout1,bout2为输出信号,它们的围为数字0~9对应的七位数码管显示段码的值。图中,输出信号的值随着输入信号的变化而相应的变化。仿真完全正确,符合预期。8.顶层文件设计交通灯的顶层文件是一个原理图文件,它包含7个元件,每一个元件均是由一个模块程序生成。7个元件分别为:fenpinqi模块、control模块、main模块、atdaojishi模块、btdaojishi模块、yima模块和yima*ianshi模块。这些模块均经过设计、编译、仿真,结果正确。最后生成可视化元件。然后将各个模块用具有电气性质的导线连接起来,这样原理图文件就建好了。保存编译。在建立一个.vwf波形文件,保存并仿真。原理图如图3-11所示:仿真结果如图3.12所示:实验证明,仿真结果正确,符合预期。图3-11顶层文件设计原理图图3-12顶层文件波形仿真结果图在顶层文件波形仿真结果图中,有一个频率为1khz输入信号clk1khz,它是外部的信号对整个系统设计的输入端口。作为一个脉冲,经过分频变成频率为1hz的脉冲,由于1hz的脉冲的周期是1s,所以我们可以用它来控制整个系统的步调,而这个步调与现实生活通灯的步调是一致的。1hz的信号经过control模块的处理,通过计数使s变化为不同的值,s代表的是交通灯时序图的状态,一共有6个状态〔s0——s5〕。同时对应不同的s的状态赋不同的初值给at,bt。at,bt分别是东西方向和南北方向的倒计时初值。Control模块还有一个功能是提供倒计时模块的置数的触发脉冲。接下来,main模块直接承受s的值来输出相应的红绿灯亮灭状态。例如:lrgy的值为01000010,这说明交通灯的亮灭情况为:东西左转灯灭,东西红灯亮,东西绿灯灭,东西黄灯灭,南北左转灯灭,南北红灯灭,南北绿灯亮,南北黄灯灭。即一一对应。倒计时局局部为两个模块:atdaojishi和btdaojishi。两个模块分别倒计时东西方向和南北方向。每个倒计时模块都有相似的端口:clk、loadat、atin、atout和clk、loadbt、btin、btout。我们只举其中一个为例子:clk为倒计时的时钟脉冲,当loadat为高电平时,将atin传递给atout,clk的上升沿每来一次,atout减一次。此前,时间的值都是整形的,要想将倒计时实时显示出来,就需要将两位的整数分解成个位和十位,yima模块就是这样的。将一个倒计时分解成两个一位数,例如将54分解成5和4。然后经过yima*ianshi模块将对应的数字译成相应的段码,例如将5和4译码为01101101和01100110。在这个系统设计中,所有的数码管和二极管均为共阴极显示。结论从4月份接到毕业设计任务到现在,已有两个月的时间,回想自己在这两个月的时间里的付出,看着手中这份劳动果实,我真正体会到了收获的喜悦。在此期间,我在网上搜集一些相关信息,但由于上班时间的限制,我更多的时间是自己研究。同时,我还和军政一起研究交流,利用回校的一点时间,到图书馆查阅有关资料,最后终于顺利完成了此次毕业论文设计。此次毕业论文设计让我了解了GFPA的相关知识,并且加深了对VHDL语言的认识,熟悉了VHDL语言在交通灯中的运用。这也使我将原来所学的知识系统化、理论化、实用化,对如何使用已有知识及获取相关资料方面的能力又有了提高。设计到达了预定的设计目的,实现了利用现场可编程门阵列(VHDL〕自动控制十字路口交通灯和计时器,各交通灯及计时器均按设计任务要求正常运行,指挥各种车辆和行人平安通行。通过这次设计,我还认识到无论做什么,都需要踏实、勤奋、严谨的工作态度,这对我以后的工作产生深远的影响。辞刚上大学就听说毕业时每位学生都要做一份毕业论文,经过辩论才可以顺利毕业。把大学三年所学的知识综合到一份论文中,应该是一份很艰巨的任务,但是这也是我们三年学习的一个考验,毕竟这样的时机很少。想到这,我便全身心投入到毕业设计中去。交通灯控制技术是一项专业技术,它涉及到电气专业的诸多课程。通过此次设计我对自己所学根底理论、专业知识和根本技能进展了综合的检验。培养了分析与解决实际问题的能力,本文是在指导教师卢教师的悉心指导下完成的,由于工作关系,我更多的是和军政一起讨论。在此,我要感军政,感卢教师,并队对其他给予帮助的教师们表示我诚挚的意,对给予帮助的同学们表示衷心的感谢。最后,还要感理工学院的所有教师在这大学期间给我的培养。不仅使我学到了很多新知识,更重要的是,使我建立起了一套完整的科学思考观,正是有了这样科学的分析和思考问题的方式,才能使我解决毕业设计中遇到的一系列问题,同时这在我以后的生活、学习和工作中也将起到举足轻重的作用。鉴于本人所学知识有限,经历缺乏,又是初次研究这种复杂的设计。在此过程中难免存在一些错误和缺乏之处,恳请各位教师给予批评和指正。参考文献[1]邹彦,庄严.EDA.技术与数字系统设计.:电子工业,2007.4[2]辉.PLD与数字系统设计.:电子科技大学,2005[3]廖超平.EDA技术与VHDL实用教程.:高等教育,2021.5[4]新民.微型计算机控制技术实用教程.:电子工业,2021.7[5]黄仁欣.EDA技术实用教程.:清华大学著,2006.9[6]路明礼.数字电子技术.:理工大学,2021.8[7]朝青.单片机原理与接口技术.:航空航天大学,2021[8]松,王国栋.VHDL实用教程.:电子科技大学,1999.12[9]国厚.自动化专业英语.:大学中国林业,2006.1[10]黄智伟.全国大学生电子设计竞赛电路设计.:航空航天大学,2006[11]承毅.电子技能实训根底.:人民邮电,2005[12][13]bbs.vibesic./[14]王丹,童如松.电子设计自动化〔EDA〕手册.:电子工业,2005.3[15]辛春艳.VHDL硬件描述语言.:国防工业,2002[16]王建坤.MA*+PLUSII入门与提高.:清华大学,2004[17]谭会生,昌凡.EDA技术及应用.:电子科技大学,2004[18]景华,杜王远.可编程逻辑器件与EDA技术.东北大学,2000附录1.FPGA简介1.1FPGA工作原理FPGA采用了逻辑单元阵列LCA〔LogicCellArray〕这样一个概念,部包括可配置逻辑模块CLB〔ConfigurableLogicBlock〕、输出输入模块IOB〔InputOutputBlock〕和部连线〔Interconnect〕三个局部。1.2FPGA的根本特点1〕采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2〕FPGA可做其它全定制或半定制ASIC电路的中试样片。3〕FPGA部有丰富的触发器和I/O引脚。4〕FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最正确选择之一。2.VHDL简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用围较小的设计语言。VHDL主要用于描述数字系统的构造,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序构造特点是将一项工程设计,或称设计实体〔可以是一个元件,一个电路模块或一个系统〕分成外部〔或称可视局部,及端口)和部〔或称不可视局部〕,既涉及实体的部功能和算法完成局部。在对一个设计实体定义了外部界面后,一旦其部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成外局部的概念是VHDL系统设计的根本点2.1VHDL系统设计的特点功能强大、设计灵活支持广泛、易于修改强大的系统硬件描述能力独立于器件的设计、与工艺无关易于共享和复用3.EDA简介EDA是电子设计自动化〔ElectronicDesignAutomation〕的缩写,在20世纪90年代初从计算机辅助设计〔CAD〕、计算机辅助制造〔CAM〕、计算机辅助测试〔CAT〕和计算机辅助工程〔CAE〕的概念开展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极提高了电路设计的效率和可*性,减轻了设计者的劳动强度。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进展了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件〔如CPLD、FPGA〕的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件构造和工作方式进展重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速开展。外文资料翻译AnalogAmplifiersAtthemostbasiclevel,asignalamplifierdoese*actlywhatyoue*pect–itmakesasignalbigger!However,thewayinwhichitisdonedoesvarywiththedesignoftheactualamplifier,thetypeofsignal,andthereasonwhywewanttoenlargethesignal.[1].Wecanillustratethisbyconsideringthemone*ampleofa“Hi-Fi〞audiosystem.InatypicalmodernHi-Fi:system,thesignalswillefromaunitlikeaCDplayer,FMtuner,oraTape/Minidiskunit.Thesignalstheyproducehavetypicallevelsoftheorderof100mVorsowhenthemusicismoderatelyloud.Thisisareasonablylargevoltage,easytodetectwithsomethinglikeanoscilloscopeoravoltmeter.However,theactualpowerlevelsofthesesignalsarequitemodest.Typically,thesesourcescanonlyprovidecurrentsofafewmilliamps,whichbyP=VImeanspowersofjustafewmilliwatts.AtypicalloudspeakerwillrequirebetweenafewWattsandperhapsover100Wattstoproduceloudsound.HencewewillrequiresomeformofPowerAmplifier(PA)to“boost〞thesignalpowerlevelfromthesourceandmakeitbigenoughtoplaythemusic.Fig.1.1showsfoure*amplesofsimpleanalogamplifierstagesusingvarioustypesofdevice.Ineachcasethea.c.voltagegainwillusuallybeappro*imatedbyprovidedthattheactualdevicehasaninherentgainlargeenoughtobecontrolledbytheresistorvalueschosen.Notethenegativesignine*pression1-1whichindicatesthatthee*amplesallinvertthesignalpatternwhenamplifying.[2]Inpractice,gainsoftheorderofuptohundredarepossiblefromsimplecircuitslikethis,althoughitisusuallyagoodideatokeepthevoltagegainbelowthis.Notealsothatvacuumstatedevicestendtobecalled“valves〞intheUKand“tubes〞intheUSA.Fig.1.1E*amplesofvoltageamplifiers

Av≈-R1/R2(1-1)

Manypracticalamplifierschaintogetheraseriesofanalogamplifierstagestoobtainahighoverallvoltagegain.Fore*ample,aPAsystemmightstartwithvoltagesoftheorderof0.1mVfrommicrophones,andboostthistoperhaps10to100Vtodriveloudspeakers.Thisrequiresanoverallvoltagegainof109,soanumberofvoltagegainstageswillberequired.Inmanycaseswewishtoamplifythecurrentsignallevelaswellasthevoltage.Thee*amplewecanconsiderhereisthesignalrequiredtodrivetheloudspeakersina“Hi-Fi〞system.Thesewilltendtohaveatypicalinputimpedanceoftheorderof8Ohms.Sotodrive,say,100Wattsintosuchaloudspeakerloadwehavetosimultaneouslyprovideavoltageof28Vrmsand3.5Arms.Takingthee*ampleofamicrophoneasaninitialsourceagainatypicalsourceimpedancewillbearound100Ohms.Hencethemicrophonewillprovidejust1nAwhenproducing0.1mV.Thismeansthattotakethisanddrive100Wintoaloudspeakertheamplifiersystemmustamplifythesignalcurrentbyafactorofover109atthesametimeasboostingthevoltagebyasimilaramount.[3]Thismeansthattheoverallpowergainrequiredis1018–i.e.180dB!Thishighoverallpowergainisonereasonitismontospreadtheamplifyingfunctionintoseparatelybo*edpre-andpower-amplifiers.Thesignallevelsinsidepoweramplifiersaresomuchlargerthantheseweakinputsthateventheslightest‘leakage’fromtheoutputbacktotheinputmaycauseproblems.Byputtingthehigh-power(highcurrent)andlowpowersectionsindifferentbo*eswecanhelpprotecttheinputsignalsfromharm.Inpractice,manydeviceswhichrequirehighcurrentsandpowerstendtoworkonthebasisthatitisthesignalvoltagewhichdeterminesthelevelofresponse,andtheythendrawthecurrenttheyneedinordertowork.[4]Fore*ample,itistheconventionwithloudspeakersthatthevolumeofthesoundshouldbesetbythevoltageappliedtothespeaker.Despitethis,mostloudspeakershaveanefficiency(theeffectivenesswithwhichelectricalpowerisconvertedintoacousticalpower)whichishighlyfrequencydependent.Toalargee*tentthisarisesasanaturalconsequenceofthephysicalpropertiesofloudspeakers.Fig.1.2showsatypicale*ample.Inthiscase,theloudspeakerhasanimpedanceofaround12Ohmsat150Hzand5Ohmsat1kHz.Soovertwicethecurrentwillberequiredtoplaythesameoutputlevelat1kHzthanisrequiredat150Hz.Thepoweramplifierhasnowayto“knowinadvance〞whatkindofloudspeakeryouwilluse,sosimplyadoptstheconventionofassertingavoltageleveltoindicatetherequiredsignallevelateachfrequencyinthesignalandsupplyingwhatevercurrenttheloudspeakerthenrequires.Fig1.2Impedancepropertiesofatypical“8Ohms〞loudspeakerThiskindofbehaviorisquitemoninelectronicsystems.Itmeansthat,ininformationterms,thesignalpatternisdeterminedbythewaythevoltagevarieswithtime,andideallythecurrentrequiredisthendrawn.Althoughtheaboveisbasedonahigh-powere*ample,asimilarsituationcanarisewhenasensorisabletogenerateavoltageinresponsetoaninputstimulusbutcanonlysupplyaverylimitedcurrent.Inthesesituationswerequireeitheracurrentamplifierorabuffer.Thesedevicesarequitesimilar,andineachcaseweareusingsomeformofgaindeviceandcircuittoincreasethesignalcurrentlevel.However,acurrentamplifieralwaystriestomultiplythecurrentbyasetamount.Henceitissimilarinactiontoavoltageamplifierwhichalwaystriestomultiplythesignalcurrentbyasetamount.Thebufferdiffersfromthecurrentamplifierasitsetsouttoprovidewhatevercurrentlevelisdemandedfromitinordertomaintainthesignalvoltagetoldtoassert.Alongwiththedevelopmentoftheages,thetechniquethatisnowadaysisalsograduallyperfect,thepetitionplaysmorestrong;theoperationthatlistdependstheartificialhasalreadycan'tsatisfiedwiththecurrentmanufacturingindustryforeground,alsocan'tguaranteetherequestofthehigherquantityandhighnewtheimageofthetechniquebusinessenterprise.Thepeopleseeinproducepractice,automatebroughtthetremendousconvenienceandtheproductquantitiesforpeopleupofassurance,alsoeasedthepersonnel'slaborstrength,reducetheestablishmentonthepersonnel.Thetargetcontrolofthehardrealizationinmanyplicatedproductionlines,wholeande*cellentturn,thebestdecisionetc.,well-trainedoperationwork,technicalpersonnelore*pert,governorbutcanjudgeandoperateeasily,canacquirethesatisfiedresult.Theresearchtargetoftheartificialintelligencemakesuseofthecalculatore*actlytocarryout,imitatetheseintelligencesbehavior,moderatingtheworkthroughperson'sbrainandcalculators,withthemodethatperson'smachinebine,forresolvetheveryplicatedproblemtolookforthebestpathWeeinsightofthecontrolthatlinksaftertheelectricappliancesinvarioussituation,thatisalreadythethattimegenerationpast,nowofafteruseinthemoldaperhapssimpleequipmentsofgrass-rootscontrolthattheelectricappliancescandoforthelowlevelonly;AndthePLCemergencealsobecametheepoch-makingtopic,addingthev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论