基于FPGA的交通控制灯设计
2019-05-22郭昭利张哲曾健王彦博段品凡王颖
郭昭利 张哲 曾健 王彦博 段品凡 王颖
摘要:为实现智能交通控制灯的功能,以FPGA应用设计为基础,使用Verilog HDL 语言编写并且使用Quartus Ⅱ进行仿真。本设计包含主控模块、电源模块、时钟模块、LED显示模块,实现设计功能且验收效果良好。
关键词:FPGA;Verilog;Quartus Ⅱ
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)06-0252-01
在当今社会上,车流量的高速增长,加重了交通安全事故的发生,人、车、路三者之间的协调关系成为交通部门首要难题。而一个智能控制的交通灯能有效地控制车流量,减少交通事故的发生。
1 原理
1.1 FPGA简介
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它于80年代中期Xilinx推出,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。FPGA是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺序操作有很大区别,FPGA开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手。
1.2 主控模块介绍
主控模块使用Verilog HDL 语言编写,并用Quartus Ⅱ仿真,模拟交通十字路口的红绿灯使用情况。
2 总体设计
3 仿真
主控模块为整个设计的核心,其仿真图如下:
上图CPA为分频器输出1秒的时鐘脉冲,CPB在5个时钟脉冲后置1,并累加一次。此时执行状态0:R2、G1为1,其他为0,持续4个CPB脉冲;当CPB第5个脉冲来临时,执行状态1:R2为1,G1闪烁,其他为0,持续1个CPB脉冲;当CPB第6个脉冲来到,执行状态2:R2、Y1为1,其他为0,持续1个CPB脉冲;当CPB第7个脉冲来到,执行状态3:G2、R1为1,其他为0,持续4个CPB脉冲;当CPB第11个脉冲来到时,执行状态4:R1为1,G2闪烁,其他为0,持续1个CPB脉冲;当CPB第12个脉冲来临时,执行状态5:Y2、R1为1,其他为0,持续1个CPB脉冲,后返回状态1重复执行。
4 验收
根据设计要求交通控制系统的各个干道都有红绿黄三色指示灯,并实现其交替闪烁,其中东西方向干道用R1、Y1、G1示意,南北方向干道用R2、Y2、G2示意验收表如下:
5 总结
本设计采用Verilog HDL 语言编写,进行分层设计,实现红绿黄三种指示灯的交替点亮。通过本次的学习我进一步加深了对电子产品设计的了解。并能够较为熟练地对QuartusII软件进行操作。在编写程序的过程中,虽然遇到了很多问题,但通过与同学探讨和请教老师,最终成功地把问题都解决了,并加深了对交通灯原理和设计思路的认知。同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。总之,通过本次的设计,较系统地了解EDA技术,收获颇大,对软件编程、调试排错及相关仪器设备的使用等方面得到较全面的锻炼与提高。
参考文献:
[1] 陈赜,邹道胜,朱如琪.CPLD/FPGA与ASIC设计实践教程[M].2版.北京:科学出版社,2010.
[2] 蒋小燕,俞伟钧,张立臣.EDA技术及VHDL[M].南京:东南大学出版社,2008.
[3] 吴延海.EDA技术及应用[M].陕西:西安电子科技大学出版社,2012.
【通联编辑:唐一东】