一.实验目的
设计一个用于十字路口的交通灯控制器,能显示十字路口东西、南北两个方向的红、黄、绿的指示状态;
具有倒计时的功能,用两组数码管作为东西和南北方向的倒计时显示,主干道直行(绿灯)60秒后,左转(绿灯)40秒;支干道直行(绿灯)45秒后,左转(绿灯)30秒,在每次绿灯变成红灯的转换过程中,要亮黄灯5秒作为过渡。黄灯每秒闪亮一次。
只考虑直行和左转车辆控制信号灯,右转车辆不受信号灯控制, 南北向车辆与东西向车辆交替方向,同方向等待车辆应先方向直行车辆而后放行左转车辆。
二.实验代码
主代码
module traffic_fsm (lights, clk, rst);
input clk, rst;
output [5:0] lights;
wire clk, rst;
reg [5:0] lights;
// define reg
reg [2:0] curr_st;
reg [2:0] next_st;
reg [3:0] count;
// define state
parameter s0 = 3'b000;
parameter s1 = 3'b001;
parameter s2 = 3'b010;
parameter s3 = 3'b011;
parameter s4 = 3'b100;
parameter s5 = 3'b101;
// define lights
parameter light0 = 6'b100_001;
parameter light1 = 6'b100_010;
parameter light2 = 6'b100_100;
parameter light3 = 6'b001_100;
parameter light4 = 6'b010_100;
parameter light5 = 6'b100_100;
// define time delay
parameter delay5 = 5;
parameter delay1 = 1;
// 产生一个可能的状态变化
always @ (posedge clk or negedge rst) begin
if (!rst) begin
curr_st <= s0;
count <= 0;
end
else
// curr_st = next_st;
begin
if (curr_st == s0 | curr_st == s3)
if (count < delay5 - 1)
count <= count + 1;
else begin
curr_st <= next_st;
count <= 0;
end
else if (curr_st == s1 | curr_st == s2 | curr_st == s4 | curr_st == s5) begin
curr_st <= next_st;
count <= 0;
end
end
end
// 产生下一个状态的组合逻辑
always @ (curr_st) begin
case (curr_st)
s0:
next_st <= s1;
s1:
next_st <= s2;
s2:
next_st <= s3;
s3:
next_st <= s4;
s4:
next_st <= s5;
s5:
next_st <= s0;
default: begin
next_st <= s0;
end
endcase
end
// 产生输出lights的组合逻辑
always @ (posedge clk or negedge rst) begin
if (!rst) lights = light0;
else
case (curr_st)
s0: lights = light0;
s1: lights = light1;
s2: lights = light2;
s3: lights = light3;
s4: lights = light4;
s5: lights = light5;
default: lights = light0;
endcase
end
endmodule
测试文件代码(代码二)
// testbench of ‘traffic_fsm’
module traffic_fsm_tb;
reg clk, rst;
wire [5:0] lights;
traffic_fsm u1 (.lights(lights), .clk(clk), .rst(rst));
initial begin
clk = 0;
rst = 0;
#10 rst = 1;
#80 rst = 0;
#20 rst = 1;
end
always #5 clk = ~clk;
endmodule
三.实验相关图片
1. 代码运行波形图
2. 代码运行逻辑图
3. 代码运行引脚图
四.交通灯控制系统
五.实验结果
完成了课题设置,设计了解了相关的设计代码,自我知识的能力得到了扩充,一门有意义、有效果的课程。文章来源:https://www.toymoban.com/news/detail-502753.html
具体操作视频链接如下
modsim或quartus交通灯设计实验(视频详解)文章来源地址https://www.toymoban.com/news/detail-502753.html
到了这里,关于交通灯控制系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!