EDA交通灯控制器课程设计报告书Word文件下载.docx
《EDA交通灯控制器课程设计报告书Word文件下载.docx》由会员分享,可在线阅读,更多相关《EDA交通灯控制器课程设计报告书Word文件下载.docx(18页珍藏版)》请在冰点文库上搜索。
endfen_pin1;
architecturebhvoffen_pin1is
signalqan:
std_logic_vector(3downto0);
signalqbn:
signalcin:
std_logic;
begin
process(clk100hz)
if(clk100hz'
eventandclk100hz='
1'
)then
ifqan="
1001"
thenqan<
="
0000"
;
cin<
='
elseqan<
=qan+1;
0'
endif;
endprocess;
process(clk100hz,cin)
ifcin='
then
ifqbn="
thenqbn<
elseqbn<
=qbn+1;
endif;
process(qan,qbn)
if(qan="
andqbn="
)thenclk1hz<
elseclk1hz<
endbhv;
——2hz分频器
entityfen_pin2is
port(clk100hz:
clk2hz:
endfen_pin2;
architecturebhvoffen_pin2is
variablecnt:
integerrange0to24;
variabletmp:
ifcnt=24then
cnt:
=0;
tmp:
=nottmp;
else
=cnt+1;
clk2hz<
=tmp;
——主干道控制
entitycontralzis
port(clk:
ra,ga,ya:
outstd_logic;
timeah,timeal:
outstd_logic_vector(3downto0));
endcontralz;
architecturebhvofcontralzis
typergis(green,red,yellow2);
process(clk)
variablea:
variableth,tl:
variablestate:
rg;
ifclk'
eventandclk='
then
casestateis
whengreen=>
ifa='
th:
0101"
tl:
a:
ga<
ra<
ya<
else
ifnot(th="
andtl="
0001"
iftl="
tl:
th:
=th-1;
=tl-1;
a:
state:
=red;
whenred=>
ra<
ga<
=yellow2;
whenyellow2=>
=green;
endcase;
timeah<
=th;
timeal<
=tl;
——支路控制
entitycontralxis
rb,gb,yb,chu:
endcontralx;
architecturebhvofcontralxis
typergyis(red,yellow1,green,yellow2);
rgy;
whenyellow1=>
0100"
yb<
gb<
rb<
chu<
=yellow1;
chu<
——反馈器
entitysmenis
port(sm,re,gr,ye:
jinji:
endsmen;
architectureseofsmenis
processis
if(sm='
andre='
andgr='
andye='
)thenjinji<
else
jinji<
endse;
——消抖电路
entityxiaodouis
port(jinji,clk1hz:
b:
endxiaodou;
architecturebhvofxiaodouis
signaltemp1:
process(clk1hz,jinji)
variabletemp2:
if(clk1hz'
eventandclk1hz='
temp1<
=jinji;
temp2:
=nottemp1;
b<
=temp1andtemp2andclk1hz;
——状态转换
entitynois
port(a:
en:
endno;
architectureno_arcofnois
process(a)
if(a'
eventanda='
en<
endno_arc;
——mux4l
entitymux41is
port(sel:
instd_logic_vector(2downto0);
d0,d1,d2,d3:
instd_logic_vector(3downto0);
q:
outstd_logic_vector(3downto0);
so:
outstd_logic_vector(1downto0));
endmux41;
architecturebhvofmux41is
process(sel)
caseselis
when"
100"
=>
q<
=d2;
so<
00"
101"
=d3;
01"
000"
=d0;
10"
whenothers=>
=d1;
11"
——译码器
entitydec7sis
port(d:
q0,q1,q2,q3,q4,q5,q6:
enddec7s;
architecturebhvofdec7sis
process(d)
variableq:
std_logic_vector(6downto0);
casedis
0111111"
0000110"
0010"
1011011"
0011"
1001111"
1100110"
1101101"
0110"
1111101"
0111"
0100111"
1000"
1111111"
1101111"
1111001"
q0<
=q(0);
q1<
=q
(1);
q2<
=q
(2);
q3<
=q(3);
q4<
=q(4);
q5<
=q(5);
q6<
=q(6);
仿真图如下:
Ya,ra,ga表示主干道黄红绿灯;
yb,rb,gb表示乡村小路黄红绿灯。
下图表示:
主路绿灯60s,红灯20s,黄灯5s,即使中途来车也不发生跳转。
下图说明:
175s之后再无车来,则保持主路绿灯,支路红灯
1~200s仿真图如下;