资源描述:
《eda交通灯控制器课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、交通灯控制器课程设计该交通信号控制器控制十字路甲、乙两条道路的红、黄和绿三色灯,指挥车辆和行人安全通行。功能要求如下:1.只有在小路匕发现汽车时,高速公路上的交通灯才可能变成红灯。2.当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的时间。(20s)3.高速公路灯转为绿色后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持绿灯。(60s)。设计如下:lhz分频器libraryieee;useieee.stdjogic_1164.all;useieee.std_log
2、ic_unsigned.all;useieee.std_logic_arith.all;entityfen_pinlisport(clkl00hz:instd」ogic;clklhz:outstdjogic);endfen_pinl;architecturebhvoffen^pinlissignalqan:std」ogic_vector(3downto0);signalqbn:stdJogic_vector(3downto0);signalcin:std」ogic;beginprocess(cl
3、klOOhz)beginif(clklOOhz'eventandclkl00hz='l')thenifqan="1001"thenqan<="0000";cin<='1';elseqanv二qan+l;ci二O;endif;endif;endprocess;process(clkl00hz,cin)beginif(clkl00hz'eventandclkl00hz='l')thenifcin='l'thenifqbn=,,100rthenqbn<=,,0000H;elseqbnv二qbn+1;e
4、ndif;endif;endif;endprocess;process(qan,qbn)beginif(qan="1001"andqbn=',1001")thenclklhz<='l';elseclklhz<='0';endif;endprocess;endbhv;—2hz分频器libraryieee;useieee.stdjogic_1164.all;entityfen_pin2isport(clklOOhz:instdjogic;clk2hz:outstd_logic);endfen_pin
5、2;architecturebhvoffen_pin2isbeginprocess(clklOOhz)variablecnt:integerrange0to24;variabletmp:stdJogic;beginif(clklOOhz'eventandclklOOhz二T)thenifcnt=24thencnt:=O;tmp:二nottmp;elsecnt:=cnt+1;endif;endif;clk2hz<=tmp;endprocess;endbhv;—主干道控制libraryieee;us
6、eieee.stdjogic_1164.all;useieee.std_logic_unsigned.all;entitycontralzisport(clk:instd」ogic;ra,ga“a:outstd」ogic;timeah.timeakoutstd」ogic_vector(3downto0));endcontralz;architecturebhvofcontralzistypergis(green/red/yellow2);beginprocess(clk)variablea:st
7、d」ogic;variablethztl:stdJogic_vector(3downto0);variablestate:rg;beginifelk1eventandclk='l,thencasestateiswhengreen=>ifa二'O'thenth:=,,0101M;ti='ioor;a:=r,ga<=T;ra<='0';ya<='0';elseifnot(th=H0000"andtl=n0001H)theniftl=HOOOO,,thentl:二”1001”;th:=th-l;els
8、etl:=tl-l;endif;elseth:=,,0000";tl:=,,0000M;a:二O;state:=red;endif;endif;whenred=>ifa='0'thenth:二“0001“;tl:二”1001";a:='L;ra<='r;ya<='0';ga<二'O';elseifnot(th=,,0000,,andtl二”000T')theniftl=H0000"thenti:="ioor;th:=th-l;elsetl:=tl-l;endif;elseth:二”0000”;t