EDA作业(3)

2020-05-12 11:51

REG:PROCESS(CLK1S,car,current_state,c) BEGIN

IF car ='0'THEN current_state <= s0;

c<=\

ELSE

IF CLK1S'EVENT AND CLK1S ='1' THEN --支干道有车开始计数

c <=c+1;

current_state <=next_state;

END IF;

END IF;

CASE current_state IS --状态转换

WHEN s0 => LED <=\支干道无车不减计时

TIME1H<=\TIME2H<=\

IF car = '1' THEN next_state <= s1; ELSE next_state <= s0; END IF;

WHEN s1 => LED <=\主干道绿灯,支干道红灯

IF c=\ELSE next_state <= s1; END IF;

WHEN s2 => LED <=\主干道黄灯,支干道红灯

IF c=\ELSE next_state <=s2; END IF;

WHEN s3 => LED <=\主干道红灯,支干道绿灯

IF c=\ELSE next_state <= s3; END IF;

WHEN s4 => LED <=\支干道黄灯,主干道红灯

IF c=\ELSE next_state <=s4; END IF;

WHEN OTHERS => LED <=\

END CASE;

IF c=\--系统时间为45,主干道黄灯计时5秒 END IF; IF

c=\

TIME1H<=\--系统时间为50,主干道计时30秒,支干道计时25秒 END IF;

IF c=\--系统时间为75,支干道黄灯计时5秒 END IF; IF

c=\

THEN

TIME1H<=\--系统时间为80,主干道计时45秒,支干道计时50秒 END IF;

IF c=\系统时间清零 END IF;

END PROCESS REG; count <=c; END one;

扫描显示译码器: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY xs IS

PORT(clk,CLK1S,car:IN STD_LOGIC;

TIME1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --主干道置数 TIME2H,TIME2L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --支干道置数 count:IN STD_LOGIC_VECTOR(6 DOWNTO 0); --计数信号 sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); --数码管位码 seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --数码管段码

END xs;

ARCHITECTURE one OF xs IS

SIGNAL num:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL numsel:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL numseg:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL Q1,Q2,Q3,Q4:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

SM:PROCESS (clk,num,numsel) --扫描 BEGIN

IF clk'EVENT AND clK='1' THEN numsel<=numsel+1;

IF numsel=\END IF;

END IF;

END PROCESS SM;

WX:PROCESS (numsel,Q1,Q2,Q3,Q4) --位选 BEGIN

CASE numsel IS

WHEN\WHEN\WHEN\

WHEN\WHEN OTHERS =>NULL;

END CASE; END PROCESS WX;

ZS:PROCESS(CLK1S,car,Q1,Q2,Q3,Q4,num,TIME1H,TIME1L,TIME2H,TIME2L) --数码管置数 BEGIN

IF car ='1' THEN

IF CLK1S'EVENT AND CLK1S='1' THEN

IF Q2>\ELSE

IF Q1>\减计时 END IF;

END IF;

IF Q4>\ELSE

IF Q3>\END IF;

END IF;

END IF;

IF Q1=\ Q1<=TIME1H;Q2<=TIME1L; END IF;

IF Q3=\ Q3<=TIME2H;Q4<=TIME2L; END IF;

ELSE Q1<=TIME1H;Q2<=TIME1L; --支路无车辆不减计时

Q3<=TIME2H;Q4<=TIME2L;

END IF;

END PROCESS ZS; YM:PROCESS (num,numseg) BEGIN CASE num IS

WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS=>NULL;

END CASE;

END PROCESS YM; sel<=numsel; seg<=numseg; END one; 顶层文件: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY jtd IS

PORT (clk:IN STD_LOGIC; -- car:IN STD_LOGIC; --

led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); --动态扫描时钟 支路车辆传感信号交通灯信号


EDA作业(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:商业银行概述 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: