基于VHDL 语言的交通控制器设计

2019-09-24 版权声明 举报文章

基于VHDL 语言的交通控制器设计

摘要:该文介绍了一种基于VHDL语言的交通控制器设计,以QuartusII为软件开发平台,文中重点介绍该交通控制器的设计原理、设计步骤。在此基础上给出了基于VHDL硬件描述语言的系统实现源代码以及仿真结果,通过仿真结果进一步验证了该交通控制器方案的正确性,从而展示VHDL语言的强大结构和优秀特性。

关键词:EDA技术;VHDL语言;交通控制器;波形仿真

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)10-2404-03

Abstract: This paper presents a traffic controller design based on VHDL language, using QuartusII as software development platform, the paper focuses on the design principle and design procedure of the traffic controller. On this basis, given the realization of system source code and simulation results based on VHDL hardware description language, the simulation results further validate the correctness of the traffic controller program, thus demonstrating strong structural and excellent features of VHDL language.

Key words: EDA technology;VHDL language;traffic controller;waveform simulation

EDA电子设计自动化技术已成为电子设计领域一种重要的电子系统设计手段,通过EDA技术能够实现利用软件的方式来设计硬件系统。电子工程技术人员能够在EDA软件平台上,根据硬件描述语言所编写的文件完成程序的编辑、仿真、综合、优化、布局布线和下载,最终实现系统硬件功能的描述。与传统的数字系统设计过程不同,其需要经过设计输入、仿真调试、制作样机、样机调试、完成,这5个步骤,将传统的硬件调试过程移交给计算机,由计算机给出调试结果和错误类型,使得调试工作变得轻松。

VHDL语言为现今电子设计的主流硬件描述语言,诞生于1982年,并于1987年底被IEEE和美国国防部确认为标准的硬件描述语言。VHDL硬件描述语言,其语言结构强大,能够利用简明的代码描述复杂的控制逻辑设计,具有多层次的电路设计描述功能,既能够描述系统级电路,也可以描述门级电路,此外能够将同一个硬件电路的VHDL语言描述进行移植。

应用VHDL语言设计数字系统,能够减小硬件电路设计的工作量,缩短系统开发周期,提高工作效率,该文将介绍基于VHDL语言的交通控制器设计,在给出源代码和仿真结果的基础上进一步验证EDA技术以及VHDL语言的优势。

1 系统功能与要求

高速公路与小路交叉口处车辆较多,极易出现交通事故,对于交叉路口的红绿灯设计极为重要,此处要求,只有在小路发现汽车时,高速公路上的交通灯才能变为红灯,当小路上有汽车行进时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间,当高速上的红绿灯转为绿灯后,即使小路上再有汽车出现,而此时公路上没有汽车,也要保证高速上的绿灯持续一定的间隔。

2 系统设计与实现

2.1 系统设计

根据系统要求,需要在此公路和小路上各设了一个红绿灯分别为:grgy,xrgy,来控制各自道路上通行车辆,同时在系统设计中作为输出,在系统设置中设置了三个输入端分别为:clk,che,rest且都为标准逻辑类型,其中clk作为两灯需进行变化时的时钟,在时钟上升沿时控制相应的计数信号进行计数,che作为使能信号当其为‘1’表明小路有车,rest作为复位输入,当有特殊情况时或红绿灯出现错误时rest置‘1’可使红绿灯自动回到公路上绿灯,小路上红灯的情况。

同时,根据需要可以用一状态机来表示公路,小路上各红绿灯的情况,其大体由四种状态,我们在结构体中定义一状态机stx用其四种状态st0,st1,st2,st3来分别表示:公路绿灯小路红灯、公路黄灯小路红灯、公路红灯小路绿灯、公路红灯小路黄灯四种状态。并且在结构体中定义状态信号current_state作为表示表示当前状态的信号,之后定义四个整数类型计数信号:clkg,clkx,clky1,clky2来分别为公路上绿灯持续时间,小路上绿灯持续时间,公路上黄灯持续时间,小路上黄灯持续时间计数。

2.2 系统实现

根据系统要求,按照上述设计方案,将系统的实现过程进行分析,具体是:

当时钟在上升沿时如果che为‘1’且rest为‘0’(说明小路上有车且交通灯正常工作)时:如果current_state为st0即当前公路上为绿灯小路上为红灯时,公路上的绿灯计数器clkg计数(此处设计绿灯持续时间应为23秒,又因为计数是从0开始则此处要求计数终止点在22)当计数小于22时公路上绿灯计数信号一直计数,直到计数等于22时,状态可以转换到下一状态及st1状态。

如果current_state为st1即当前公路上为黄灯小路上为红灯时,公路上黄灯计数信号clky1计数(此处设黄灯持续时间为5秒,即设终止点位4)当计数小于4时公路上黄灯计数信号一直计数,直到计数等于4时,状态转换到下一状态st2。

如果current_state为st2时即当前公路上为红灯小路上为绿灯时,小路上绿灯计数信号clkx计数(此处设计小路上绿灯持续时间为17秒,且计数终止时间为16)当计数小于16时小路上路灯计数信号计数,直到计数等于16时,状态可以转换到下一状态st3。

如果current_state为st3时即当前公路上为红灯小路上为黄灯时,小路黄灯计数信号clky2计数(同样设黄灯持续时间为5秒,即设终止点位4)当计数小于4时小路上黄灯计数信号一直计数,直到计数等于4时,状态返回到st0。

而对于任何其他情况例如小路上无车che为‘0’还有其他错误地方则设current_state都为st0状态。

具体的交通控制器VHDL源代码如下:

通过对仿真波形的结果,可以知道,图 1显示的为当小路上有车时公路绿灯小路红灯状态到公路黄灯小路红灯状态再到公路红灯小路绿灯状态的转换过程。由图可以看出在状态转换过程中,时间控制方面满足要求,稍有一些延迟现象。且在接触点时偶尔会有一丝毛刺。其原因一是在整个结构体中存在两个进程,在状态机体应用中,若使用多进程方式由于其自身特点容易发生延迟和多毛刺现象,而在此已将最初设计的三进程改为两进程基本解决毛刺现象。图 2则为将各灯每一时刻的具体数字电平加以显示,可以具体观察毛刺现象。由图2可以看出在公路红灯小路绿灯到公路红灯小路黄灯等状态转换时的具体波形。图 3为在最初阶段che为‘0’即小路无车时公路小路交通灯的具体情况,此时公路绿灯小路红灯,与设计符合。

4 结论

通过该系统的设计可以进一步领会VHDL 语言强大的行为描述能力和丰富的仿真语句及库函数,VHDL语言的优势决定了它具有支持大规模设计的分析和已有设计的再利用功能。使用QuartusII软件平台进行编译和仿真验证,表明该交通控制器能够符合预定设计目标。

参考文献:

[1] 潘松,黄继业.EDA技术与VHDL[M]. 3版.北京:清华大学出版社,2009.

[2] 詹仙宁.VHDL开发精解与实例剖析[M].北京:电子工业出版社,2009.

[3] 谭会生,瞿遂春.EDA 技术综合应用实例与分析[M].西安:西安电子科技大学出版社,2004.

[4] 于润伟.EDA基础与应用[M].北京:机械工业出版社,2010.

[5] 刘昌华,张希.数字逻辑EDA设计与实践-MAX+PLUS II与QUARTUS II双剑合璧[M].北京:国防工业出版社,2009.

注:本文为网友上传,不代表本站观点,与本站立场无关。举报文章

上一篇:“将‘配额’留给最爱”讲评 下一篇:基于XNA 的3D 室内装修软件的设计

被举报文档标题:基于VHDL 语言的交通控制器设计

验证码:

点击换图

举报理由:
   (必填)
紧急删除:

 13882551937、13808266089 服务时间:8:00~21:00 承诺一小时内删除

免责声明
发表评论  快捷匿名评论,或 登录 后评论
评论