[Verilog实验报告交通灯x]
时间:2022-01-06 23:26:20 来源:网友投稿
Verilog 实验报告
第四次 交通灯
班级:集电 0802 班
姓名: 张鹏
学号:序号: 16
一、规范
(1) 具有开关功能:当 reset=0 时 红绿灯关闭,使主支干道六个灯全灭;
(2) 具有四个功能:当 reset=1 且 func=2’b00 时,主干道和支路正常计数;
且 func=2 ’ b01 时,支干道一直绿灯,主干道一直红
灯;
且 func=2 ’ b10 时,主干道一直绿灯,支干道一直红
灯;
且 func=2 ’b11 时,主干道和支干道一直黄灯闪;(3) 计数器频率:运行频率 2Hz 计数器;
(4) 信号灯种类:红、黄、绿;
(5) 信号灯计执行时间关系:主干道:绿灯常亮
+绿灯闪 +黄灯 =支干道:红灯常亮;
此设计中:
主干道:绿灯常亮 =57s,T绿灯闪 =3s,T黄灯亮 =3s
支干道:绿灯常亮 =15s,T绿灯闪 =3s,T黄灯亮 =3s
(6) 信号灯到计时功能:信号灯预置后,开始执行
2Hz 计数器;
(7) 信号灯跳转功能:当各信号灯计时至 T 时在下一个时钟信号上升沿到来时自动转
为下一状态;
(8) 信号灯各状态跳转关系:绿 -黄-红-绿;
二、输入输出定义
reset,clk, func[1:0] ,green[1:0],red[1:0],yellow[1:0]
信号名
宽度
输入/输出
管脚
描述
reset
1
input
L13
红绿灯总开关
clk
1
input
C9
freq:50MHz
func
2
input
N17/H18
控制红绿灯功能
green[1]
1
output
D11
主绿
green[0]
1
output
E11
支绿
red[1]
1
output
F11
主红
red[0]
1
output
F12
支红
yellow[1]
1
output
C11
主黄
yellow[0]
1
output
E12
支黄
三、模块设计
状态转移图:
四、测试代码
module frequency_divider_small(reset,clk,out); // 重写一个小分频模块测试交通灯主
模块功能
input reset,clk;
output out;
reg [1:0] temp;
reg out;
always @ (posedge clk or negedge reset)
if (!reset)
temp<=2'b00;
else
temp<=(temp==2'b11)?2'b00:temp+2'b01;
always @ (temp)
out=(temp==2'b11);
endmodule
module test_traffic_light;
reg reset,clk;
reg [1:0] func;
wire [1:0] green;
wire [1:0] red;
wire [1:0] yellow;
traffic_light
simulation(.reset(reset),.clk(clk),.func(func),.green(green),.red(red),.yellow( yellow));
always #10 clk=~clk;
initial
begin
reset=0;
clk=1;
func=2'b00;
#20 reset=1;
#21000 func=2'b01;
#10000 func=2'b10;
#10000 func=2'b11;
end
endmodule
波形:
五、源代码
module frequency_divider(reset,clk,out);// 分频模块,把 50MHz时钟分成半秒计时器 input reset,clk;
output out;
reg [5:0] mol1,mol2;
reg [6:0] mol3,mol4;
reg out1,out2,out3,out;
always @ (posedge clk or negedge reset)// 把分成 40*40*125*125
if(!reset)
mol1<=6'd0;
else
mol1<=(mol1==6'd39)?6'd0:mol1+6'd1;
always @ (posedge clk or negedge reset)
if(!reset)
mol2<=6'd0;
else if(out1)
mol2<=(mol2==6'd39)?6'd0:mol2+6'd1;
always @ (posedge clk or negedge reset)
if(!reset)
mol3<=7'd0;
else if(out2)
mol3<=(mol3==7'd124)?7'd0:mol3+7'd1;
always @ (posedge clk or negedge reset)
if(!reset)
mol4<=7'd0;
else if(out3)
mol4<=(mol4==7'd124)?7'd0:mol4+7'd1;
always @ (mol1 or mol2 or mol3 or mol4)
begin
out1=(mol1==6'd39);
out2=((mol2==6'd39)&&out1);
out3=((mol3==7'd124)&&out2);
out=((mol4==7'd124)&&out3);
end
endmodule
module traffic_light(reset,clk,func,green,red,yellow);// 交通灯主模块
input reset,clk;
input [1:0] func;
output [1:0] green,red,yellow;
reg [1:0] green,red,yellow;
reg [2:0] state;
reg [6:0] cnt;
wire in;
parameter greentime1=6'd57;// 主干道绿灯时间
parameter greentime0=6'd27;// 支干道绿灯时间
parameter yellowtime=3'd3;// 黄灯时间,绿灯闪时间
frequency_divider fenpin(.reset(reset),.clk(clk),.out(in));// 调用分频模块
always @ (posedge clk or negedge reset)
begin
cnt<=7'd0;
state<=3'd1;
green<=2'b00;
red<=2'b00;
yellow<=2'b00;
end
else
if(in)// 分频器结果当主模块始能
if(func==2'b00)// 选择不同功能控制开关
if(cnt==7'd0)
case(state)// 选择不同状态
3'd1:begin
cnt<=greentime1<<1;
state<=3'd2;
green<=2'b10;
red<=2'b01;
yellow<=2'b00;
end
3'd2:begin
cnt<=yellowtime<<1;
state<=3'd3;
end
3'd3:begin
cnt<=yellowtime<<1;
state<=3'd4;
green<=2'b00;
red<=2'b01;
yellow<=2'b10;
end
3'd4:begin
cnt<=greentime1<<1;
state<=3'd5;
green<=2'b01;
red<=2'b10;
yellow<=2'b00;
end
3'd5:begin
cnt<=yellowtime<<1;
state<=3'd6;
end
3'd6:begin
cnt<=yellowtime<<1;
state<=3'd1;
green<=2'b00;
red<=2'b10;
yellow<=2'b01;
end
endcase
else
begin
cnt<=cnt-7'd1;//
倒计数,计数结束进入下一状态
case(state)
3'd3:green[1]<=cnt[0];//
3'd6:green[0]<=cnt[0];//
主干道绿灯闪
支干道绿灯闪
endcase
end
else if(func==2'b10)//
主干道常绿,支干道常红
begin
cnt<=0;
state<=3'd1;
green<=2'b10;
red<=2'b01;
yellow<=2'b00;
end
else if(func==2'b01)//
主干道常红,支干道常绿
begin
cnt<=0;
state<=3'd1;
green<=2'b01;
red<=2'b10;
yellow<=2'b00;
end
else if(func==2'b11)//
主干道,支干道黄灯一直闪
begin
cnt<=0;
state<=3'd1;
green<=2'b00;
red<=2'b00;
yellow[1]<=~yellow[1];
yellow[0]<=~yellow[1];
end
endmodule
推荐访问:实验报告 交通灯 实验 报告 Verilog实验报告交通灯x
[[Verilog实验报告交通灯x] ]相关文章
- 土壤水分溶质动力学实验报告实验报告-20210411001316x_
- 【[理科实验报告]陶瓷公司管理信息系统实验报告】
- [理科实验报告]陶瓷公司管理信息系统实验报告x
- 实验报告信与控制综合实验报告-20210414072703x:
- 中山大学有机化学实验报告有机化学实验报告2x|
- [会计实验报告及会计实训实验报告]
- 土壤水分溶质动力学实验报告实验报告:
- 土壤水分溶质动力学实验报告实验报告x:
- 南京大学实验报告 ABO血型鉴定实验报告x
- [生理学实验报告分析【生理学实验报告写作】x]
- 2023年度交通灯的心得体会参考7篇【优秀范文】
- [加强实验教学突出能力培养]实验教学的发展
- 换热器综合实验实验六
- 土壤水分溶质动力学实验报告实验报告-20210411001316x_
- 【[理科实验报告]陶瓷公司管理信息系统实验报告】
- [理科实验报告]陶瓷公司管理信息系统实验报告x
- 实验报告信与控制综合实验报告-20210414072703x:
- 中山大学有机化学实验报告有机化学实验报告2x|
- [会计实验报告及会计实训实验报告]
- 土壤水分溶质动力学实验报告实验报告:
- 土壤水分溶质动力学实验报告实验报告x:
- 两篇党风廉政建设2021年情况报告、党风廉政主体责任落实情况自查报告
- 文创产品设计论文 故宫博物院文创产业发展本科毕业论文(设计)开题报告书
- 学习报告
- 2021年某单位政治生态建设情况报告分析研判报告
- 学校安全自查报告书
- 精品教师述职报告书 2019教师个人述职报告范文
- 两篇政法队伍教育整顿查纠整改环节自评情况报告、自查自纠报告
- 第十五届全国企业管理现代化创新成果推荐报告书共6页
- _失控报告分析报告-20210411005435x
- 检测报告报告样式
- 上一篇:证券投资学实验报告总结计划x|
- 下一篇:[统计学实验报告使用]