有紧急通道功能的交通灯的VHDL程序.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:5 大小:35KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

有紧急通道功能的交通灯的VHDL程序.doc

有紧急通道功能的交通灯的VHDL程序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityjiaotongdengisport(rst:instd_logic;clk:instd_logic;emg:instd_logic;s_w_r:outstd_logic;s_w_g:outstd_logic;s_w_y:outstd_logic;e_n_r:outstd_logic;e_n_g:outstd_logic;e_n_y:outstd_logic;cnt_out:outstd_logic_vector(11downto0));endentity;architectureoneofjiaotongdengistypestatesis(s0,s1,s2,s3,s4);signalcur_state,next_state:states;signalsave_cnt:std_logic_vector(11downto0);signalcnt0:std_logic_vector(3downto0);signalcnt1:std_logic_vector(3downto0);signalcnt2:std_logic_vector(3downto0);signalena_cnt:std_logic;constants_w_r_t:std_logic_vector(11downto0):="000000100101";constants_w_g_t:std_logic_vector(11downto0):="000001010101";constants_w_y_t:std_logic_vector(11downto0):="000000000101";constantemg_t:std_logic_vector(11downto0):="000100100000";beginreg:process(rst,clk,ena_cnt)beginifrst='1'thencur_state<=s0;elsifclk'eventandclk='1'thenifena_cnt='1'thenifcnt2="1001"andcnt1="1001"andcnt0="1001"thencnt2<="0000";cnt1<="0000";cnt0<="0000";elsifcnt2/="1001"andcnt1="1001"andcnt0="1001"thencnt2<=cnt2+1;cnt1<="0000";cnt0<="0000";elsifcnt2/="1001"andcnt1/="1001"andcnt0="1001"thencnt2<=cnt2;cnt1<=cnt1+1;cnt0<="0000";elsecnt2<=cnt2;cnt1<=cnt1;cnt0<=cnt0+1;endif;elsecnt0<="0000";cnt1<="0000";cnt2<="0000";endif;casecur_stateiswhens0=>ifemg='1'thensave_cnt<=cnt2&cnt1&cnt0;cur_state<=s4;next_state<=s0;elsecur_state<=s1;endif;whens1=>ifemg='1'thensave_cnt<=cnt2&cnt1&cnt0;cur_state<=s4;next_state<=s1;elseif(cnt2&cnt1&cnt0=s_w_g_t)thencur_state<=s2;elsecur_state<=s1;endif;endif;whens2=>ifemg='1'thensave_cnt<=cnt2&cnt1&cnt0;cur_state<=s4;next_state<=s2;elseif(cnt2&cnt1&cnt0=s_w_y_t)thencur_state<=s3;elsecur_state<=s2;endif;endif;whens3=>ifemg='1'thensave_cnt<=cnt2&cnt1&cnt0;cur_state<=s4;next_state<=s3;elseif(cnt2&cnt1&cnt0=s_w_r_t)thencur_state<=s1;elsecur_state<=s3;endif;endif;whens4=>if(cnt2&cnt1&cnt0=emg_t)th