当前位置:   article > 正文

十字路口交通灯控制器带左转灯Verilog代码Quartus仿真_verilog十字路口红绿灯程序

verilog十字路口红绿灯程序

名称:十字路口交通灯控制器带左转灯Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

 (1)设计任务—交通灯控制器

利用VerilogHDL语言设计一个十字路口交通灯控制器,其示意图如下图1所示,A方向与B方向各设红(R),黄(Y),绿(G),和左拐(L)四种灯,四种灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来。

  两个方向这种灯亮的时间应该能够非常方便地进行设置和修改,此外假设A方向是主干路,车流量大,因此A方向同行的时间应该比B方向长一些。

  

                                    图1

(2)交通的控制器状态表

  交通灯控制器的状态转换表如表1所示,表中1表示灯亮,0表示灯灭。A方向和B方向的红、黄、绿和左拐灯分别用R1、Y1、G1、L1和R2、Y2、G2、L2来表示。

               A方向

               B方向

绿灯

(G1)

黄灯

(Y1)

左拐灯

(L1)

红灯

(R1)

绿灯

(G2)

黄灯

(Y2)

左拐灯

(L2)

红灯

(R2)

1

0

0

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

1

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

0

1

1

0

0

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

1

0

0

0

0

1

0

1

0

0

从状态转换表中可以看出,每个方向四种灯依次按如下顺序点亮,并不断循环:

绿灯- 黄灯 左拐灯 黄灯 红灯。

并且没个方向红灯亮的时间与另一方向绿、黄、左拐、黄灯亮的时间相等。黄灯所起的作用是用来在绿灯和左拐灯后进行缓冲,以提醒行人该方向马上要禁行了。

其中A方向红、绿、黄、左拐灯亮的时间分别为:55秒、40秒、5秒和15秒,B方向红、绿、黄、左拐灯亮的时间分别为:65秒、30秒、5秒和15秒。要求输出的灯亮时间用BCD码。

A是55秒,B是65秒(因为A是主干路)

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench(仿真代码)

6. 仿真图

整体仿真图

分频模块仿真图

状态机控制模块仿真图

显示模块仿真图

部分代码展示:

//交通灯
module trafic(
input clk,//50M
input key,//复位
output main_red,//主干道红灯
output main_green,//主干道绿灯
output main_yellow,//主干道黄灯
output main_left,//主干道左转灯
output branch_red,//支干道红灯
output branch_green,//支干道绿灯
output branch_yellow,//支干道黄灯
output branch_left,//支干道左转灯
output [7:0] HEX0,//数码管0
output [7:0] HEX1,//数码管1
output [7:0] HEX2,//数码管2
output [7:0] HEX3//数码管3
);
wire clk_1Hz;
wire [7:0] main_cnt;
wire [7:0] branch_cnt;
//分频模块
div i_div(
. clk(clk),//时钟
. clk_1Hz(clk_1Hz)//1Hz
);
源代码

 扫描文章末尾的公众号二维码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/796728
推荐阅读
相关标签
  

闽ICP备14008679号