资源描述:
《交通灯报告及vhdl源程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、系统功能概述利用VHDL语言设计一个十字路口交通灯控制器,分成两个方向,六个灯。三个灯按合理的顺序亮灭。两个方向的灯亮时间可以进行调节。二、系统组成以及系统各部分的设计1、系统结构描述2)用VHDL语言实现的,报告需包含以下内容:libraryieee;useieee.stdJogic_l164.all;useieee.std_logic_unsigned.all;-调用库文件entitytraffic_ctrlis-定义实体generic(greenl_cnt:infeger:=25;—定义变暈yellowl_cnt:integer:=5;green2_cnt:
2、integer:=15;yellow2_cnt:integer:=5);port(-定义输入输出节点elk:instd_logic;—时钟信号rst:instd」ogic;-复位lgtl_red:outstdjogic;—1号红灯lgtl.yellow:outstd_logic;~一号黄灯lgtl_green:outs(d」ogic;—一号绿灯lgt2_red:outstdjogic;—2号红灯lgt2_yellow:outstd_logic;~2号黄灯lgt2_green:outstd_logic~2号绿灯);endentitytraffic_ctrl;archit
3、ecturertloftraffic_ctrlis-定义结构体typestatesis-定义四个状态(stO,stl,st2,st3);signalstate:states:=stO;signalcnt:integerrange0to30;-定义计数器的范围signalcnt_end:std」ogic=0‘;-定义计数器的使能beginprocess(clk.rst)beginif(rst=T)then-定义复位的含义state<=stO;cnt<=l;elsif(rising_edge(clk))then■•定义程序开始的条件if(cnt_end='1')thenc
4、nt<=cnt+l;-计算器T作的原理elsecnt<=l;endif;casestateiswhenst0=>-0状态是1号绿灯亮,2号红灯亮if(cnt=greenl_cnt)thenstate<=stl;elsestate<=stO;endif;whenstl=>—1状态是1号黄灯亮,2号红灯亮if(cnt=yellow1_cnt)thenstate<=st2;elsestate<=stl;endif;whenst2=>-2状态是1号红灯亮,2号绿灯亮if(cnt=green2_cnt)thenstate<=st3;elsestate<=st2;endif;wh
5、enst3=>3—状态是1号红灯亮,2号黄灯亮if(cnt=yellow2_cnt)thenstale<=stO;elsestate<=st3;endif;endcase;endif;endprocess;--程序结束process(state)-定义4个状态begincasestateiswhenstO=>lgtl_red<=rOf;lgtl_yellowv=‘0:lgtl_greenV=T;lgt2_red<=,r;lgt2_yellow<='0';lgt2_green<='0,;cnt_end<-T;if(cnt=greenl_cnt)thencnt_end<=
6、'0';endif;whenstl=>lgtl_red<=,Or;lgtl_yellowv=T;lgtl_green<=,0,;lgt2_red<='r;lgt2_yellow<=,0';lgt2_green<=,0,;cnt_end<=*r;if(cnt=yellow1_cnt)thencnt_end<=,0,;endif;whenst2=>lgtl」ed<=,T;lgtl_yellow<=,0,;lgtl_green<=,Ot;lgt2_red<=,0r;Igt2_yellow<=,0';lgt2_green<=,1:cnt_end<='r;if(cnt=gree
7、n2_cnt)lhencnt_end<=,0,;endif;whenst3=>lgtl_red<-1';lgtl_yellow<=,0,;lgtl_green<-0';lgt2_red<=,0,;lgt2_yellow<=,r;lgt2_green<='0,;cnt_end<=,r;if(cnt=yellow2_cnt)thencnt_endv=O;endif;endcase;endprocess;endrtl;-全部程序结束2、系统以及各个模块的仿真波形OIgt2_yellowQlgT2_r«d2Igt2』eenPIgdyllow9Igd」”Plg