【正文】
lgt1_yellow: OUT STD_LOGIC。 lgt1_green: OUT STD_LOGIC。 lgt2_red: OUT STD_LOGIC。 lgt2_yellow: OUT STD_LOGIC。 lgt2_green: OUT STD_LOGIC )。END ENTITY traffic_ctrl。ARCHITECTURE rtl OF traffic_ctrl ISTYPE states IS(st0,st1,st2,st3)。SIGNAL state:states:=st0。SIGNAL t:integer range 0 to 30:=1。SIGNAL t_enb:std_logic:=39。039。BEGINPROCESS(clk,rst)BEGIN IF(rst=39。139。)THEN state=st0。 t=1。 ELSIF(rising_edge(clk))THEN IF(t_enb=39。139。)THEN t=t+1。 ELSE t=1。 END IF。 CASE state IS WHEN st0= IF(t=green1_t) THEN state=st1。 ELSE state=st0。 END IF。 WHEN st1= IF(t=yellow1_t) THEN state=st2。 ELSE state=st1。 END IF。 WHEN st2= IF(t=green2_t)THEN state=st3。 ELSE state=st2。 END IF。 WHEN st3= IF(t=yellow2_t) THEN state=st0。 ELSE state=st3。 END IF。 END CASE。 END IF。 END PROCESS。PROCESS(state)BEGIN CASE state IS WHEN st0= lgt1_red=39。039。 lgt1_yellow=39。039。 lgt1_green=39。139。 lgt2_red=39。139。 lgt2_yellow=39。039。 lgt2_green=39。039。 t_enb=39。139。 IF(t=green1_t)THEN t_enb=39。039。 END IF。 WHEN st1= lgt1_red=39。039。 lgt1_yellow=39。139。 lgt1_green=39。039。 lgt2_red=39。139。 lgt2_yellow=39。039。 lgt2_green=39。039。 t_enb=39。139。 IF(t=yellow1_t)THEN t_enb=39。039。 END IF。 WHEN st2= lgt1_red=39。139。 lgt1_yellow=39。039。 lgt1_green=39。039。 lgt2_red=39。039。 lgt2_yellow=39。039。 lgt2_green=39。139。 t_enb=39。139。 IF(t=green2_t)THEN t_enb=39。039。 END IF。 WHEN st3= lgt1_red=39。139。 lgt1_yellow=39。039。 lgt1_green=39。039。 lgt2_red=39。039。 lgt2_yellow=39。139。 lgt2_green=39。039。 t_enb=39。139。 IF(t=yellow2_t)THEN t_enb=39。039。 END IF。 END CASE。 END PROCESS。END r