- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog交通灯(模块化).doc
本交通灯由四个模块组成: 1、 顶层例化模块(traffic)
2、 同步时钟模块(mast_clk)
3、 东西方向(traffic_x)
4、 南北方向(traffic_y)
module traffic(
RESET,
CLK,
num_x,
red_x,
green_x,
yellow_x,
num_y,
red_y,
green_y,
yellow_y
);
input RESET;
input CLK;
output red_x;
output green_x;
output yellow_x;
output red_y;
output green_y;
output yellow_y;
output [4:0] num_x,
num_y;
wire [6:0] num;
mast_clk clk(
.CLK(CLK),
.RESET(RESET),
.num(num)
);
traffic_x Xx(
.CLK(CLK),
.RESET(RESET),
.NUM(num),
.red_x(red_x),
.green_x(green_x),
.yellow_x(yellow_x),
.num_x(num_x)
);
traffic_y Yy(
.CLK(CLK),
.RESET(RESET),
.NUM(num),
.red_y(red_y),
.green_y(green_y),
.yellow_y(yellow_y),
.num_y(num_y)
);
endmodule
module mast_clk(
CLK,
RESET,
num
);
input CLK;
input RESET;
output reg [6:0] num;
always @(posedge CLK,negedge RESET)
begin
if(!RESET)
num=0;
else if(num==59)
num=0;
else num=num+1b1;
end
endmodule
module traffic_x(
CLK,
RESET,
NUM,
red_x,
green_x,
yellow_x,
num_x
);
input CLK;
input RESET;
input [6:0] NUM;
output reg red_x;
output reg green_x;
output reg yellow_x;
output [6:0] num_x;
reg [6:0] num_x;
parameter [2:0] red =3b001,
green =3b010,
yellow=3b100;
reg [2:0] state,next_state;
always @(posedge CLK,negedge RESET)
begin
if(!RESET) state=red;
else state=next_state;
end
always @(NUM)
begin
case(state)
red:begin
if(NUMd29) begin next_state=green;
red_x=0;
green_x=1;
yellow_x=0;
num_x=7d54-NUM;
end
else begin
next_state=red;
文档评论(0)