跪求一个交通灯控制器的verilog代码

要求:1.东西方向为主干道,南北方向为副干道;2.主干道通行40秒后,若副干道无车,仍主干道通行,否则转换;3.换向时要有4秒的黄灯期;4.南北通行时间为20秒,到时间则... 要求:
1. 东西方向为主干道,南北方向为副干道;
2. 主干道通行40秒后,若副干道无车,仍主干道通行,否则转换;
3. 换向时要有4秒的黄灯期;
4. 南北通行时间为20秒,到时间则转换,若未到时南北方向已无车,也要转换。
5. 用数码管显示计时
展开
 我来答
搞吓米飞机
2010-06-30 · TA获得超过510个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:135万
展开全部
module traffic (clock, reset, sensor1, sensor2,

red1, yellow1, green1, red2, yellow2, green2);

input clock, reset, sensor1, sensor2;

output red1, yellow1, green1, red2, yellow2, green2;

// Define the states

parameter st0 = 0, st1 = 1, st2 = 2, st3 = 3,

st4 = 4, st5 = 5, st6 = 6, st7 = 7;

reg [2:0] state, nxstate ;

reg red1, yellow1, green1, red2, yellow2, green2;

// state update
always @(posedge clock or posedge reset)

begin

if (reset)

state = st0 ;

else

state = nxstate;

end

// Calculate the next state and the outputs,

always @(state or sensor1 or sensor2)

begin

red1 = 1'b0; yellow1 = 1'b0; green1 = 1'b0;

red2 = 1'b0; yellow2 = 1'b0; green2 = 1'b0;

case (state)

st0: begin

green1 = 1'b1;

red2 = 1'b1;

if (sensor2 == sensor1)

nxstate = st1;

else if (~sensor1 & sensor2)

nxstate = st2;

else

nxstate = st0;

end

st1: begin

green1 = 1'b1;

red2 = 1'b1;

nxstate = st2;

end

st2: begin

green1 = 1'b1;

red2 = 1'b1;

nxstate = st3;

end

st3: begin

yellow1 = 1'b1;

red2 = 1'b1;

nxstate = st4;

end

st4: begin

red1 = 1'b1;

green2 = 1'b1;

if (~sensor1 & ~sensor2)

nxstate = st5;

else if (sensor1 & ~sensor2)

nxstate = st6;

else

nxstate = st4;

end

st5: begin

red1 = 1'b1;

green2 = 1'b1;

nxstate = st6;

end

st6: begin

red1 = 1'b1;

green2 = 1'b1;

nxstate = st7;

end

st7: begin

red1 = 1'b1;

yellow2 = 1'b1;

nxstate = st0;

end

endcase

end

endmodule
艺世飞机
2010-07-02
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
初学者,路过参观一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式