张哲 郭昭利 段品凡 曾健 王彦博 朱志刚
摘要:为实现智能交通控制灯的功能,以FPGA应用设计为基础,使用Verilog HDL 语言编写并且使用Quartus Ⅱ进行仿真。本设计包含主控模块、电源模块、时钟模块、LED显示模块,实现设计功能且验收效果良好。
关键词:FPGA;Verilog;Quartus;Ⅱgfdg
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)10-0204-02
开放科学(资源服务)标识码(OSID):
在当下,人们生活水平的提高,越来越多的人拥有车辆,交通事故成为社会难题,在这样的背景下,智能交通灯应运而生。
1 原理
1.1 FPGA简介
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它于80年代中期Xilinx推出,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。FPGA是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺序操作有很大区别,FPGA开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手。
1.2 Verilog 语言简介
Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。
2 总体设计
本设计总体框图如下:
3 详细设计
3.1 设计要求
交通控制灯的东西方向用R1、Y1、G1示意,南北方向用R2、Y2、G2示意,时钟周期CLK为1秒。本设计分为6种状态,状态0:R2、G1亮,其他灭,持续20秒;状态1:R2亮,G1闪烁,其他灭,持续5秒;状态2:R2、Y1亮,其他灭,持续5秒;状态3:G2、R1亮,其他灭,持续20秒;状态4:R1亮,G2闪烁,其他灭,持续5秒;状态5:Y2、R1亮,其他灭,持续5秒;后返回状态1。
3.2 设计原理
开始,由时钟输入端输入频率为50MHZ的系统时钟脉冲,后经分频器得到周期为1秒的系统时钟CLK,再将CLK送给主控模块,由主控模块内部程序处理,划分6种状态,最后由LED显示电路显示。
3.3 软件流程图
本设计要求各个干道都有红绿黄三色的指示灯控制,并实现其交替闪烁,其中东西干道用R1、Y1、G1表示,南北干道用R2、Y2、G2表示,具体控制图如下:
4 仿真
主控设计是整个的核心,其具体仿真如下:
上图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重复执行。
5 验收
根据设计要求各个干道都用红绿黄三色指示灯,其中东西方向用R1、Y1、G1示意,南北方向用R2、Y2、G2示意验收表及显示结果如下:
6 總结
本设计采用Verilog HDL 语言编写,进行分层设计,实现红绿黄三种指示灯的交替点亮。除了掌握了本次设计,也对QuartusII软件的操作更加熟练。在实验的进行当中,也遇到了很多问题,通过与同学探讨和请教老师,最终成功做出实验,并加深了对交通灯原理和设计思路的认知。通过本次的学习进一步加深了对电子产品设计的了解。同时也掌握了做课程设计的一般流程,为以后的设计积累了经验。
参考文献:
[1] 陈赜,邹道胜,朱如琪.CPLD/FPGA与ASIC设计实践教程[M].2版.科学出版社出版,2010.
【通联编辑:唐一东】