基于VHDL的交通灯控制系统设计

2017-11-15 08:38涂文元
科技视界 2017年20期

涂文元

【摘 要】依据EDA自顶向下的设计流程进行交通灯控制系统设计,采用VHDL语言编写各功能模块,生成各模块符号图,把各模块符号图以原理图的形式连在一起得到系统顶层设计。并在QuartusII9.0集成开发环境里进行编译、仿真和综合,最后下载到实验箱进行调试,调试结果表明:交通灯的状态切换,倒计时时间显示均可实现。

【关键词】EDA;VHDL语言;QuartusII

中图分类号: TP273 文献标识码: A 文章编号: 2095-2457(2017)20-0073-002

Design of Traffic Light Control System Based on

TU Wen-yuan

(Department of Physics and Electronic Information Engineering,Minjiang University,Fuzhou Fujian 350108,China)

【Abstract】Based on EDA's top-down design flow,the traffic light control system is designed.The function modules are written in VHDL language,and the module symbol maps are generated.The symbol diagrams are connected together in the form of schematics to get the top design of the system The And in QuartusII9.0 integrated development environment for compilation,simulation and synthesis, and finally downloaded to the experimental box for debugging,debugging results show that:traffic lights state switch, countdown time display can be achieved.

【Key words】EDA;VHDL language;QuartusII

0 引言

随着可编程逻辑器件应用的日益广泛,以大规模可编程逻辑器件为基础的 EDA 技术打破了软硬件之间的设计界限,使硬件系统软件化,这已成为现代电子系统设计的发展趋势[1]。VHDL语言,语法结构严谨,描述功能强大,可用简洁明了的代码实现复杂的逻辑电路设计;而且VHDL语言支持从系统级到门级所有层次的设计,支持自顶向下的模块化设计方法,在电子设计领域,已被广泛使用[2]。本文详述了使用 VHDL语言实现对交通灯控制系统的层次化设计,将VHDL文本输入和图形输入两种方式混合使用,实现交通灯控制系统的设计。

1 交通灯控制系统的设计要求

交通灯控制系统实现如下要求[3]:(1) 主、支干道各设有一个绿、黄、红指示灯,两位数码管用于显示倒记时时间。(2) 主干道处于常允许通行状态,而支干道有车来才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。而支干道允许通行亮绿灯时,主干道亮红灯。(3) 当主、支干道都有车流时,两者交替允许通行。主干道每次放行时间45秒,支干道每次放行时间25秒。在每次由亮绿灯变为亮灯的转换过程中,要亮5秒的黄灯作为过渡,并进行倒计时显示。

2 交通灯控制系统各模块设计与实现

2.1 状态控制模块

控制模块电路clk为输入时钟,sm为主干道传感信号,sb为支干道传感信号,mg为主干道绿灯输出,mr为主干道上的红灯输出,my为主干道的黄灯输出,bg为支干道的绿灯输出,br为支干道上红灯输出,by为支干道黄灯输出。

控制模块主要根据外部送来的sb、sm信号的状态去控制交通灯输出状态的切换并输出信号灯驱动信号。当sm=1、sb=1,即主干道和支干道都有车辆通过时,初始处于S1状态,主干道显示绿灯,支干道显示红灯,倒计时45秒后转入S2状态,则控制器使主干道切换为黄灯,支干道为红灯;此后按照表1的状态循环。控制模块的仿真图如图2所示。

2.2 定时单元模块

1)45秒定时单元

45秒定时单元输入端口为clk、en45和支干道传感信号sb,输出端口为八位主干道时间数据dout45m和支干道时间数据dout45b,当sb=1且en45=1时,执行45秒倒计时功能。

2)25秒定时单元

25秒定时单元符输入端口为clk、en25、主干道传感信号sm和支干道传感信号sb,输出端口为八位主干道时间数据dout25m和支干道时间数据dout25b。当sb=0或者sm=0时,即主干道、支干道任意一道都没有车辆通过时,不进行倒计时;当sb=1、sm=1且en25=1时,时钟来到即执行25秒倒计时功能,开始倒计时;若en25=0,则不进行倒计时。

3)5秒定时单元

5秒定时单元输入端口为clk、主干道使能en05m和支干道使能en05b,输出端口为八位时间数据dout5。当en05m=1或者en05b=1时即表示主干道或支干道处于正常工作状态,时钟来到就开始实行倒计时,主干道、支干道倒计时均为5秒。

2.3 显示控制单元模块

顯示控制单元模块以定时模块的输出ain05、ain25b、ain25m 、ain45b、ain45m和en05b、en05m、en25、en45四个使能信号作为输入信号,选择决定要送数码管显示的8位倒计时时间数据doutb、doutm。

2.4 译码器单元模块

该模块主要是完成四位BCD码到7位数码管显示数据的译码功能,驱动主干道与支干道的数码管,使其能够正常显示倒计时时间。输入端口为ain4,输出端口为dout7。

2.5 系统顶层原理图设计

在以上各模块都编译通过且仿真正确的基础上,采用原理图输入的设计方法,将上述各模块连在一起,创建了系统顶层原理图如图1所示。

顶层设计仿真正确后,选定好所选用的实验系统的配置芯片,锁定引脚,完成引脚配置,重新进行编译综合后,即可生成下载文件,将此文件下载到选定的目标芯片,接上外围器件,完成整个系统的设计。经过在杭州康芯电子有限公司生产的GW48EDA/SOPC实验开发系统下载验证,该设计完全符合交通灯控制系统的功能要求。

3 结束语

本系统借助VHDL语言和QUARTUSII开发软件,快速、简明地实现了交通灯控制系统的功能,根据上述设计实例,可以看出通过VHDL语言实现电子系统设计,是一个以软件设计为主,器件配置相结合的过程,使得设计更为灵活方便,设计周期也可大大减小,提高了设计效率和可靠性[4]。VHDL 语言作为一种标准的硬件描述语言,具备强大的行为描述能力和移植复用能力,支持复杂电路设计的层次化分解和已有设计的移植再利用,已经成为电子系统设计不可或缺的重要工具。

【参考文献】

[1]潘松,黄继业.EDA技术使用教程.北京:科学出版社,2013.8.

[2]江思敏.VHDL数字电路及系统设计[M].北京:机械工业出版社,2006.181-203.

[3]黄健,谭永梅.基于CPLD 的交通控制系统设计[J].《自动化技术与应用》,2010(08).

[4]王彩凤.VHDL语言在电子设计中的应用[J].《实验科学与技术》,2014(4).endprint