基于VHDL的交通灯设计实验报告.docx
长沙理工大学基于VHDL交通灯设计实验报告学院名称:班级:姓名:2023年1月目录序言3-实验目的3二实验要求3三实验步骤4四实验设计4.1 端口描述模块44.2 计数模块的设计54.3 控制模块的设计54.3.1 时间状态的转换54+3J信号灯的状态显示-6五、实验电路波形图8六、实验心得9参考文献10附录10序言VHDL的英文全写是:VHSlC(VeryHighSpeedIntegratedCircuit)HardwareDescription1.anaUae.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。VHDL主要用于描述数字系统的结构,行为,功能和接口VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视局部,及端口)和内部(或称不可视局部),既涉及实体的内部功能和算法完成局部。随着基于VHDL的EDA技术的开展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。作为一个学电子信息专业的学生,我们必须不断地了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。本程序设计的是交通灯的设计。采用EDA作为开发工具,VHDL语言为硬件描述语言,quartusll作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标在一个交通繁忙的十字路口,没有交通灯来控制来往车辆和行人的通行,假设也没有交警,那会发生什么事情呢?后果是难以想象的,可能会陷入一片混乱,甚至瘫痪。当然我们每个人都不希望这样。我们作为社会的一员,每人都有责任为它的更加先进和快捷做出力所能及的事情。我们设计的这个信号控制系统可以通过交通灯控制东西方向车道和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都可以根据实际情况预设,用以减少交通事故的发生概率。并且经过些次实验使得我们对电子技术课程内容的理解和掌握有了更深一层的认识,掌握电子电路的根本分析方法和设计方法。一、实验目的设计一个基于EDA的十字路口交通控制器,假设南北方向和东西方向,两个方向分别设置红灯、绿灯、黄灯,每个方向设置一组倒计时显示器,用以指挥车辆和行人有序的通行。红灯亮表示直行车辆禁行;绿灯亮表示直行车辆可以通行;黄灯亮表示直行车辆即将禁行;二、实验要求在十字路口南北和东西两个方向各设一组红灯、绿灯、黄灯。显示顺序:绿灯一黄灯红灯黄灯f红灯。南北方向绿灯、黄灯和红灯显示时间分别是40*tdk、5*tdk,南北方向红灯显示时间为东西方向黄绿灯显示时间的总和;东西方向绿灯、黄灯和红灯显示时间亦为40*tcik、5*tck,东西方向红灯显示时间为南北方向黄绿灯显示时间的总和。(tclk为时钟周期)三、实验步骤在VHDL设计描述中,采用自顶向下的设计思路,该思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的外部时钟信号elk,输出信号:east_green_led:east_yellowed;eastredled;SoUthgreenIed;SOUthyellowled;SOUthredIedO在自顶向下的VHDL设计描述中,通常把整个设计的系统划分为几个模块,然后采用结构描述方式对整个系统进行描述。根据实验设计的结构功能,来确定使用哪些模块以及这些模块之间的关系。通过上面的分析,不难得知可以把交通灯控制系统划分为3个模块:端口描述模块,计数模块,控制模块。端口描述模块:定义实验要求的输入输出信号和灯亮时间;计数器横块:这里需要的计数器的计数范围为O150。计到150后,下一个时钟沿升为1时,开始下一轮计数0.控制模块:通过计数器的计数控制东西南北方向灯的亮灭。四、实验设计:1 .1端口描述模块实体:entityjiaotongdengisgeneriC(一定义灯亮的时间east_green_cnt:integer:=40;东西方向主干道绿灯east_yeIlow_cnt:integer:=5;东西方向主干道黄灯south_green_cnt:integer:=40:南北方向支干道绿灯south_yeIIow_cnt:integer:=5);南北方向支干道黄灯port(elk:instd_logic;east_green_Ied:outstd_logic;east_yeIIow_Ied:outstd_logic;east_red_led:outstd_logic;south_green_led:outstd_logic;south_yeIIow_Ied:outstd_logic;south_red_Ied:outstd_logic);endjiaotongdeng;功能:实现输出端口、外部时钟的定义4 .2计数模块的设计signaIent:integerrange0to150;ifclk'eventandcIk='1,thenifenable-cnt='1,thencnt<=cnt+1;eIsecnt<三1;endif:功能:实现0到150的计数4.3控制模块的设计4.3.1时间状态的转换u1:process(elk)信号灯的时间状态的转换ifclk'eventandcIk='1,thenifenable_cnt=,1'thencnt<=cnt÷1;eIsecnt<=1;endif;casestateiswhens=>if(cnt=east_green_cnt)thenstat<三s1;eIsestate<=s;endif;whens1=>if(cnt-east_yeIlow_cnt)thenstate<=s2;eIsestate<=s1;endif;whens2=>if(cnt=south_green_cnt)thenstat<=s3;eIsestate<=s2;endif;whens3=>if(cnt=south_yeIIow_cnt)thenstate<=s;eIsestat<=s3;endif;whens4=>endcase;endif;endprocessu1;4.3.2信号灯的状态显示u2:process(state)begincasestateiswhens=>east_green_Ied<=T;east_ye11ow_led<=,0,;east_red_led<='Or;south_green_led<='0,;south_yellow-led<="0,;south_red_led<=,1,;enable-cnt<='1':;if(cnt=east_green_cnt)thenenable-cnt<='O,;endif;whens1=>-信号灯的状态显示已到达东西方向绿灯亮时间,暂停计数east_green_Ied<=,0'east_yeIlow_led<=,1,;east_red_led<=*0*;SOUth_green_led<='O'south_yellow-led<='0,;south_red_led<='1,;enable_cnt<=,1,;if(cnt=east_yeIlow_cnt)thenenablecnt<='O,;endif;whens2=>east_green_led<='0;east_yeIIow_Ied<=fO,;east-redled<=11,south_green_Ied<=,;south_yeIIow_Ied<=,O,;southredled<=,0,;enable_cnt<='1,;if(cnt三southgreencnt)thenenabIe_cnt<=,0,;endif;whens3=>east-green-led<=,O,;east_ye11ow_Ied<=,0,;east_red_led<='1,south_green_led<='0'south_yellow-led<=11,;south-redled<=,0,;enablecnt<='1,;if(cnt=southyeIlow_cnt)thenenable_cnt<='0,;endif;whens4=>east_green_led<=,0'east_ye11ow_Id<=,0,;east_red_led<='1'south_green_led<='0'south_yellow-led<='0,;south_red_led<=,;enable-cnt<=t1'endcase;endprocessu2;endex;五、实验电路波形图六、实验心得课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容,本学期我们进行了数字电路课程设计,老师命题,两人一小组进行设计。趣味性强,同时也可以学到很多东西。我们做的是交通灯控制器的设计。在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。通过这个程序设计让我学会一种新的语言,对数字系统结构也有了更进一步的了解和认识,对我以后的学习有很大的帮助.希望其他人在看再做类似设计时有所借鉴。通过儿天的课程设计,我对数据库软件EDA技术、VHDL、等系列知识都有了一定的了解。使用EDA技术开发页面的能力也有了很大提高。另外,我还学到了一个人的力量毕竟有限,但是团队的力量势不可挡,我们不能只靠自己,遇到不会的要多多求助同学,这次课程设计虽然结束了,也留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,开展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!快乐至上,享受过程,而不是结果!认真对待每一个实验,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在实时测量技术试验上学到的最重.要的东西,也是以后都将受益匪浅的!参考文献1,VHDL设计初步.王虹现2,VHDL程序设计(第二版),曾繁泰等.清华大学出版社附录总程序Iibraryieee;useieee.std_logic_1164.aII;useieee.std_Iogic_unsigned.all;useieee.std_logic_arith.aII;entityaisgeneriC(east_green_cnt:integer:=40;east_yeIIow_cnt: