verilog 程序问题,初学者,请见谅,程序代码如下

2024-12-04 07:27:22
推荐回答(3个)
回答1:

修改了一下,加了输入输出端口,以及触发条件
module test(red,amber,green ,able);
input able;
output red,amber,green;
reg clock,red,amber,green;
parameter on=1,off=0,red_tics=350,green_tics=200,amber_tics=30;
//交通灯初始化
initial red=off;
initial amber=off;
initial green=off;
//交通灯控制时序
always
wait(able)
begin
red=on;//开红灯
light(red,red_tics);//调用等待任务
green=on;//开绿灯
light(green,green_tics);//等待
amber=on;//开黄灯
light(amber,amber_tics);//等待
end
//定义交通灯开启时间的任务
task light;
output color;
input [31:0]tics;
begin
repeat(tics)
@(posedge clock);
color=off;
end
endtask
always
begin
#100 clock=0;
#100 clock=1;
end
endmodule

回答2:

module traffic_lights/                       *(端口说明)????;

reg clock, red, amber, green;

parameter  on=1, off=0, red_tics=350,

amber_tics=30,green_tics=200;

//交通灯初始化

initial  red=off;



initial  amber=off;


initial  green=off;



//交通灯控制时序

always                                           /  *控制条件????

begin

red=on;    //开红灯

light(red,red_tics);//调用等待任务

green=on;//开绿灯

light(green,green_tics);//等待

amber=on;//开黄灯

light(amber,amber_tics);

end

//定义交通灯开启时间的任务

  • task light(color,tics) ;           括号没有任何意义 可以删去 直接写task light 即可

output  color;

input[31:0] tics;

begin

repeat(tics) @(posedge clock);//等待tics个时钟的上升沿

color=off;//关灯

end

endtask

//产生时钟脉冲的always块

always

begin

#100 clock=0;

#100 clock=1;

end

endmodule

回答3:

现在的一半过去的NI棋塔拉外的は雪が降っていたのに気支付き马した。今年ての雪です上から本の初め嬉しかったです。
しばらくして,友达と学校の食堂に行き马した。したの的メニュは在うどんで今天。美味しかったです。からそれ,新闻纸を买って学费をき马したけに教室に行。私人たち的は歩いて学校に行きますが,学校的の雪の景色も美丽で的した。から8个晚上9:00的までの之间的に図库で勉强しました。アルバLITEもしています。今日のおわた客户SAN区さんいますので嬉しいです上。的大学生活は负责米卡されてて,到楽しいです上。高古の大学生活が出色的棋です。