• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于FPGA的交通灯控制器设计Verilog代码Quartus仿真

09/30 09:00
482
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24103119394c55.doc

共1个文件

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

软件:Quartus

语言:Verilog

代码功能:

基于?FPGA?的交通灯控制器

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

(1) 交通指示灯:LED?灯模块有?12?个?LED?灯,红黄绿三种颜色,纵向表示南北方向,横向表示东西方向,输出高电平时,对应的?LED?灯亮;

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

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

(4) 外部输入脉冲信号时钟源?CLK(1Hz),供计数器使用。

3、交通灯时序

(1)东西、南北方向均有绿灯、黄灯、红灯指示,其持续时间由自己观察的结果自定。(要求要合理可行,小于?100?秒)

(2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。(八个数码管的左边六位显示030506,右边两位显示东西和南北通行时间)

(3)当东西或南北两路中任一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。(本次设计规定?K1?为“0”时自动运行,K1?为“1”时手动控制)

数码管动态显示:设计中七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用?1000HZ?。为了得到?1000Hz?信号,必须对输入的时钟信号50MHZ?进行分频。显示模块共用?11?个管脚,其中?8?个用于连接?8?个数码管的七段?LED,还有?3?个管脚用于选择点亮哪个数码管,每隔很短的一段时间?8?个数码管交替点亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。

其原理框图如图所示:

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

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

2、在?QuartusⅡ13.0 的?EDA?设计环境中,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于?Verilog?语言实现的子模块(包括控制器电路计数器电路、数码管显示、?LED?显示电路)的逻辑功能仿真。最后对顶层设计进行功能仿真。

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

4、用下载电缆通过?JTAG?口将对应的?sof?文件加载到?FPGA?中,观察实验结果是否与自己的编程思想一致。(有条件再进行)

5、电路设计与仿真,主要包括:总体方案设计,各个电路子模块的?Verilog?源文件或者原理图,功能仿真波形;顶层设计的?Verilog?源文件或者 原理图、功能仿真波形;

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

演示视频:

设计文档:

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)
);

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1307

  • 2-24103119394c55.doc
    下载

相关推荐