一个交通灯的Verilog 程序,仿真不正确,望大家指正 10

moduletrafficlight(clk,rst,c,red_o,blue_o,green_o,red_1_o,blue_1_o,green_1_o);inputcl... module trafficlight (clk,rst,c,red_o,blue_o,green_o,
red_1_o,blue_1_o,green_1_o);

input clk,rst,c; //c=1,表示有车

output red_o,blue_o,green_o,red_1_o,blue_1_o,green_1_o;

reg red_o,blue_o,green_o,red_1_o,blue_1_o,green_1_o;

reg cnt;

`define DA_LIGHT {red_o,blue_o,green_o}
`define XIAO_LIGHT {red_1_o,blue_1_o,green_1_o}

parameter b_g_n=20; //绿灯转黄灯的计数时间
parameter g_r_n=10; //黄灯装红灯的计数时间

parameter stt=30; //小马路上的行车时间

//公路上的红绿灯
always @ (posedge clk or negedge rst)begin
if(!rst)begin
`DA_LIGHT<=3'b010;
`XIAO_LIGHT<=3'b100;
end
else begin
case ({`DA_LIGHT,`XIAO_LIGHT})
6'b010100:
begin
if (c==1) begin
delay (b_g_n,cnt);
wait (cnt)
`DA_LIGHT<=3'b001;
`XIAO_LIGHT<=3'b100;
end
end
6'b001100:
begin
delay (g_r_n,cnt);
wait (cnt);
`DA_LIGHT<=3'b100;
`XIAO_LIGHT<=3'b010;
end
6'b100010:
begin
delay(stt,cnt);
wait(cnt);
`DA_LIGHT<=3'b100;
`XIAO_LIGHT<=3'b001;
end
6'b100001:
begin
delay(g_r_n,cnt);
wait(cnt);
`DA_LIGHT<=3'b010;
`XIAO_LIGHT<=3'b100;
end
default:
begin
`DA_LIGHT<=3'b010;
`XIAO_LIGHT<=3'b100;
end
endcase
end
end

// 延时的程序

task delay;
input tics;
output cnt;
reg cnt;

begin
repeat (tics)
@(posedge clk);
cnt<=1;
end
endtask

endmodule
是一个过马路交通灯的程序。
C=1表示有人要过马路,red_o,blue_o,green_o分别表示马路上的红绿黄灯;red_1_o,blue_1_o,green_1_o表示人行道的红绿黄灯。
展开
 我来答
狂飆20碼
2010-05-16
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
难道这个例子只是要做仿真吗? 功能上我没有仔细看,但是程序根本无法综合啊,怎麼上FPGA,或者怎麼应用呢?没办法综合成芯片或者烧入FPGA啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式