交通灯控制器设计Verilog代码Quartus仿真

名称:交通灯控制器设计Verilog代码Quartus仿真 

软件:Quartus

语言:Verilog

代码功能:

基于 FPGA 的交通灯控制器

设计任务及具体要求: 要求设计一个基于 FPGA 的交通灯控制器。

1) 交通指示灯:LED 灯模块有 12 个 LED 灯,红黄绿三种颜色,纵向表示南北

方向,横向表示东西方向,输出高电平时,对应的 LED 灯亮。

2) 八个 七段数码管:动态显示方式,共阴极连接;

3) 个 0-1 开关:K1-K4,开关向上为 1,向下为 0

4) 外部输入脉冲信号时钟源 CLK1Hz),供计数器使用。

3、交通灯时序

1)东西、南北方向均有绿灯、黄灯、红灯指示,其持续时间由自己观察的结果自

定。(要求要合理可行,小于 100 秒)

2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。(八个数码管的左边

六位显示030506,右边两位显示东西和南北通行时间)

3)当东西或南北两路中任一路出现特殊情况时,系统可由交警手动控制立即进入

特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊

运行状态结束后,系统恢复工作,继续正常运行。(本次设计规定 K1 为“0”时自动运行,

K1 为“1”时手动控制)

数码管动态显示:设计中七段数码管采用动态扫描的方式显示,扫描需要一个比较高

频率的信号,本次设计选用 1000HZ 。为了得到 1000Hz 信号,必须对输入的时钟信号

50MHZ 进行分频。显示模块共用 11 个管脚,其中 个用于连接 个数码管的七段 LED

还有 个管脚用于选择点亮哪个数码管,每隔很短的一段时间 个数码管交替点亮,依次

循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。其原理

框图如图所示:


根据如上说明,本设计的主要任务和设计要求步骤是:

1、按照现代数字系统的 Top-Down 模块化设计方法,提出交通灯电 路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、

数码管显示、LED 显示等模块化子系统的设计方案。

2、在 QuartusⅡ13.0 的 EDA 设计环境中,完成系统的顶层设计、各子系统的模块化设

计。分别完成各个基于 Verilog 语言实现的子模块(包括控制器电路、计数器电路、数码管

显示、 LED 显示电路)的逻辑功能仿真。最后对顶层设计进行功能仿真。

3、在完成第 步的基础上,锁定管脚并全编译通过。

4、用下载电缆通过 JTAG 口将对应的 sof 文件加载到 FPGA 中,观察实验结果是否与自

己的编程思想一致。(有条件再进行)

5.电路设计与仿真,主要包括:总体方案设计,各个电路子模

块的 Verilog 源文件或者原理图,功能仿真波形;顶层设计的 Verilog 源文件或者 原理图、功能仿真波形;


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1. 工程文件


2. 程序文件






3. 程序编译


4. RTL图(原理图)


5. 管脚分配


6. 仿真图

整体仿真图



分频模块


红绿灯控制模块



数码管计数模块


显示模块



部分代码展示:

/*
红->绿 绿->黄 黄->红
1、红--计时main_red_times------------------------绿--计时main_green_times---main_yellow_times黄灯---------------红
2、绿--计时branch_green_times---branch_yellow_times黄灯--------------------红--计时branch_reg_times-------------------绿
*/
module traffic_light(
input clk,//时钟
input lock_key,//紧急按键--均为红灯,为1紧急状态,为0正常状态
//红绿灯 1亮0灭
output main_red,//主路灯
output main_green,//主路灯
output main_yellow,//主路灯
output branch_red,//支路灯
output branch_green,//支路灯
output branch_yellow,//支路灯
output [2:0] weixuan,//数码管位选
output [7:0] duanxian//数码管段选
);
 wire clk_1Hz;
 wire [7:0] main_green_BCD;
 wire [7:0] main_yellow_BCD;
 wire [7:0] main_red_BCD;
 wire [7:0] branch_green_BCD;
 wire [7:0] branch_yellow_BCD;
 wire [7:0] branch_red_BCD;
 wire [7:0] main_data;
 wire [7:0] branch_data;
 
wire main_red_led;//主路灯
wire main_green_led;//主路灯
wire main_yellow_led;//主路灯
wire branch_red_led;//支路灯
wire branch_green_led;//支路灯
wire branch_yellow_led;//支路灯
//led 1亮0灭
assign main_red=main_red_led;//主路灯
assign main_green=main_green_led;//主路灯
assign main_yellow=main_yellow_led ;//主路灯
assign branch_red=branch_red_led;//支路灯
assign branch_green=branch_green_led;//支路灯
assign branch_yellow=branch_yellow_led ;//支路灯 
//分频模块
div div100
(
. clk(clk),
. clk_out(clk_1Hz)
);

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 交通灯控制器设计Verilog代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员