基于FPGA的交通灯的设计.docx

上传人:b****7 文档编号:9330355 上传时间:2023-02-04 格式:DOCX 页数:27 大小:650.55KB
下载 相关 举报
基于FPGA的交通灯的设计.docx_第1页
第1页 / 共27页
基于FPGA的交通灯的设计.docx_第2页
第2页 / 共27页
基于FPGA的交通灯的设计.docx_第3页
第3页 / 共27页
基于FPGA的交通灯的设计.docx_第4页
第4页 / 共27页
基于FPGA的交通灯的设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于FPGA的交通灯的设计.docx

《基于FPGA的交通灯的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的交通灯的设计.docx(27页珍藏版)》请在冰豆网上搜索。

基于FPGA的交通灯的设计.docx

基于FPGA的交通灯的设计

 

EDA设计基础实验课程论文

 

题目基于FPGA的交通灯的设计

学院通信与电子工程学院

专业班级电子081班

学生姓名大彬哥

指导教师大力会

 

2013年6月12日

摘要

VerilogHDL作为一种规范的硬件描述语言,被广泛应用于电路的设计中。

他的设计描述可被不同的工具所支持,可用不同器件来实现。

利用VerilogHDL语言自顶向下的设计方法设计交通灯控制系统,使其实现道路交通的正常运转,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过QuartusII完成综合、仿真、进行管脚分配、绘出仿真波形及RTL原理图。

此程序通过下载到FPGA芯片后,可应用于实际的交通灯控制系统中。

关键词:

VerilogHDL;硬件描述语言;状态;FPGA

 

Abstract

Asacommonlanguageforthedescriptionofhardware,VerilogHDLiswidelyappliedincircuitdesigningThedesigndescriptioncanbesupporttedbydifferenttoolsandimplementedbydifferentdevicesInthispaper,theprocessofdesigningtrafficlightcontrollersystembytheVerilogHDLtopdowndesignmethodispresented,whichhasmadetheroadtrafficworkwell,thedesignofthissystemhasshownthereadability,portabilityandeasilyunderstandingofVerilogHDLasaharddescriptionlanguageCircuitsynthesis、simulation、topinallocationandRTLsimulationwaveformdrawnschematicareperformedbyQuartusII.TheprogramcanbeusedinthetrulytrafficlightcontrollersystembydownloadingtotheFPGAchip.

Keywords:

VerilogHDL;hardwaredescriptionlanguage;state;FPGA

目录

摘要I

AbstractII

第一章绪论1

1.1EDA技术及其发展1

1.2可编程逻辑器件概述1

1.3FPGA/CPLD概述1

1.4本课题的目的和意义2

第二章系统设计思路3

2.1系统功能与要求3

2.2设计的总体方案4

第三章软硬件电路的设计6

3.1硬件电路的设计6

3.1.1分频模块6

3.1.2时间设置模块6

3.1.3状态转换模块6

3.1.4时间显示模块7

3.1.5LED信号灯显示模块7

3.1.6LCD同步显示模块8

3.1.7数码管显示模块8

3.2软件简介及设计过程8

3.3QuartusII文本输入设计过程10

3.3.1创建工程文件10

3.3.2输入文本文件12

3.3.3设计项目编译13

3.3.4设计项目波形仿真14

3.3.5生成符号文件16

第四章系统的仿真17

4.1输出RTL电路图17

4.2仿真时序图18

总结19

参考文献20

附录21

第一章绪论

1.1EDA技术及其发展

现代电子设计技术的核心是EDA(ElectronicDesignAutomation)技术。

EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,它能自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。

EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。

EDA技术在进入21世纪后,得到了更大的发展。

在仿真和设计两方面支持标准硬件描述语言的功能越来越强大,软硬件技术也进一步得到了融合,在电子行业的产业领域、技术领域和设计应用领域得到了进一步的肯定,使得复杂电子系统设计和验证趋于简单化。

1.2可编程逻辑器件概述

可编程逻辑器件(简称CPLD)是允许用户编程(配置)实现所需逻辑功能的电路,一般可利用计算机辅助设计,即用原理图、状态机、硬件描述语言(VHDL)等方法来表示设计思想,经过一系列编译或装换程序,生成相应的目标文件,再由编程器或下载电缆将设计文件配置到目标器件中,这时的可编程逻辑器件就可作为满足用户需求的专用集成电路使用了。

可编程逻辑器件,不仅速度快、集成度高,并且能随心所欲地完成用户定义的逻辑功能,还可以加密和重新编程,其编程次数最大可达1万次以上。

使用可编程逻辑器件可以大大简化硬件系统、降低成本、提高系统的可靠性、灵活性和保密性。

PLD的出现,打破了由中小规模通用型集成电路和大规模专用集成电路垄断的局面,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到广泛应用,可以预见,不久的将来,PLD将在集成电路市场占统治地位。

1.3FPGA/CPLD概述

FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,他们是在PAL,GAL等逻辑器件的基础上发展起来的。

同以往的PAL,GAL相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。

这样的FPGA/CPLD实际上就是一个子系统部件。

这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。

比较典型的就是Altera公司和Xilinx公司的CPLD器件系列和FPGA器件系列,他们开发较早,占用了较大的PLD市场。

对用户而言,虽然FPGA/CPLD的内部结构稍有不同,但其用法都一样,所以大多数情况下,不加以区分。

FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外,还具有以下几个优点:

(1)随着VLSI(VeryLargeScaleIC,超大集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所实现的功能也越来越强,同时也可以实现系统集成,即片上系统SOC.

(2)FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担芯片风险和费用,设计人员只需在自己的实验室就可以通过相关的软硬件环境来完成芯片的最终功能设计。

所以,FPGA/CPLD的资金投入就小,减少了潜在的花费。

(3)用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。

FPGA/CPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化。

仿真,直至最后芯片的制作。

当电路有少量的改动,更能显示FPGA/CPLD的优势。

电路设计人员在使用FPGA/CPLD进行电路设计时,不需要具有专门的IC(集成电路)深层次的知识,FPGA/CPLD软件易学易用,能使设计人员更能集中精力进行电路设计,快速将产品推向市场。

(4)在线可编程技术(ISP)使得使用FPGA/CPLD的产品可以做到远程升级。

1.4本课题的目的和意义

交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起了重要作用。

目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的,在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。

FPGA技术飞速发展,FPGA的应用领域不断扩大,用FPGA来设计交通灯控制器是现代社会交通的需要,FPGA侵蚀原有ASIC市场的用量极为可观。

此也成为近年来众人关注FPGA的首要焦点,不过也因为过于聚焦高用量、大市场的观察,使FPGA的其他新应用发展被人所忽略,但这些应用却也极具意义。

 

第二章系统设计思路

交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。

目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的,在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。

本文在EDA技术的基础上,利用FPGA的相关知识设计了交通灯控制系统,可以根据实际情况对灯亮时间进行自由调整,整个设计系统通过QuartusⅡ软件进行了模拟仿真,并下载到FPGA器件中进行硬件的调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。

2.1系统功能与要求

交通灯控制器控制两个主干道交叉路口的交通,路口车辆多,直行信号、左转弯信号分开显示,a,b两个主干道的通行时间相等,其中指示直行的绿灯亮30s,指示左转弯的绿灯亮12s,绿灯变至红灯时,黄灯亮3s,以便于车辆能停在停车线内,红灯信号的最后3s相应的黄灯也同时亮,以便提示驾驶人员准备起步。

在两个主干道路口都配备传感器用来检测有无车辆通行。

当两个主干道都有车辆时,自动处于主干道a绿灯,主干道b红灯的状态,然后轮流切换通行。

当主干道a无车辆时,自动处于主干道b绿灯,主干道a红灯的状态;反之亦然,以提高通行效率。

所设计的交通信号灯控制电路,主要适用于在两条干道汇合点形成的十字交叉路口,路口设计两组红绿灯分别对两个方向上的交通运行状态进行管理。

交通灯的持续闪亮时间由键盘输入控制。

灯亮规则为:

当B方向的红灯亮时,A方向对应绿灯亮,由绿灯转换成红灯的过渡阶段黄灯亮,即B方向红灯亮的时间等于A方向绿灯和黄灯亮的时间之和。

同理,当A方向的红灯变亮时,B方向的交通灯也遵循此规则。

各干道上安装有数码管,以倒计时的形式显示本道各信号灯闪亮的时间。

当出现特殊情况时,各方向上均亮红灯,倒计时停止。

特殊运行状态结束后,控制器恢复原来的状态,继续运行。

十字路口示意图如图2.1所示:

图2.1十字路口示意图

两个方向各种灯亮的时间能够进行设置和修改,此外,假设B方向是主干道,车流量大,因此B方向通行的时间应该比A方向长。

交通灯控制器的状态转换表见表2.1-1。

表中,1表示灯亮,0表示灯不亮。

A方向和B方向的红黄绿分别用R1、Y1、G1、R2、Y2、G2来表示。

表2.1-1交通灯控制器状态转换表

从状态表中可以看出,每个方向3盏灯依次按如下顺序点亮,并不断循环:

绿灯----黄灯----红灯并且每个方向红灯亮的时间应该与另一个方向绿灯、黄灯亮的时间相等。

黄灯所起的作用是用来在绿灯后进行缓冲,以提醒行人该方向马上要禁行了。

在使能控制信号(EN)控制时系统工作,并且要求有两个控制输入信号:

即复位信号(Reset)和备用模式设置信号(Standby),在复位信号控制时,两个方向均为红灯,在备用模式设置信号控制时,两个方向均为黄灯。

2.2设计的总体方案

根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图2.2所示:

图2.2设计的总体方案框图

 

第三章软硬件电路的设计

3.1硬件电路的设计

3.1.1分频模块

该模块实现的是对50MHz晶振时钟信号的分频功能,采用传统的“一半就翻转”的计数技巧,这一功能在很多资料上都能查找到相关代码,就不再赘述。

为了实现绿灯在1s内闪烁一次,需要一个2Hz的CP信号,这里一次性产生两种信号:

1Hz和2Hz,便于之后模块的使用。

2Hz的CP信号产生实际就是在1Hz分频的基础上,改变每次移位的位数,使每次移位为1Hz的两倍,这样产生信号的周期就缩短了一倍,自然形成了2Hz的CP信号。

3.1.2时间设置模块

该模块的位置靠前,主要是实现对四个方向通行时间的设置,其设置的结果,最为此后模块的输入,故置于前端。

该模块根据时间设置拨动开关的情况,采用累加计数方式设定通行时间,为了便于置数,采用十位、个位分别置数的方式,即十位和个位在设置拨动开关有效时,按照从0到9的顺序累加,到9又返0(当然与程序中设置的初始时间有关)。

每次先读取十位是否需要置数,如果需要,开始进行十位的置数累加;如果没有十位置数请求,则读取个位置数开关信号,开始个位置数累加。

注意:

不能同时对两位进行置数,这在实际中也避免了操作错误的出现。

关于置数累加所需的CP信号,可以采用高于1Hz的时钟信号,这样可以提高置数效率;但是我在实际操作调试的过程中发觉,由于拨动开关没有去抖功能,如果CP信号的频率过快,容易产生错误的时间跳变,增加了控制的准确性,反而影响了设置时间的效率,于是我仍旧采用了1Hz的CP信号作为该模块的时钟信号输入。

为了防止在正常运行情况下没有显示设置时间就可以通过拨动开关进行置数,这里设置了模式信号,即只能在数码管显示为设置时间的时候,才能通过拨动开关进行置数操作,否则开关操作无效。

3.1.3状态转换模块

该模块是控制器的核心部分,但是原理其实很简单,只是输入输出量很多,获取的信息多,处理后输出的信息也多。

前文已说明了状态转换的思想是该控制器实现的主要思路,那么如何处理好这么多输入输出的关系就成为了重点需要解决的问题了。

输入部分的关键是四向设定通行时间的传入,这可以从时间设置模块的输出获取。

这四个设定时间传入的时间需要选择好,即选择恰当的时机读取新的设置通行时间,因为设置时间的操作可能发生在任何运行时间,如果不能选择很好的时机来读入新的设置通行时间,可能造成逻辑上的混乱,致使状态不能按照正常的顺序进行转移,也给实际的交通信号控制造成了一定的影响。

在这里,我选取了在每个状态运行结束的同时来读取新的设置通行时间,这样在任意状态时刻设置时间,将会在下一个状态到来时切换到新的通行时间上去运行,一方面不会使设置的效果延时太长,另一方面也不会出现如果恰巧在该方向上设置时间,那么该方向可能一直显示通行而不能正常转换状态的逻辑错误。

输出部分的关键是四个方向的EN使能信号和通行倒计时时间。

根据所在的状态,可以对四个方向的EN使能信号进行赋值输出,用于控制信号灯显示和LCD同步状态显示等。

通行时间倒计时是为了数码管能够显示出通行剩余时间和等待通行时间,这个显示的方式在前文也有描述,这里不再赘述。

通行剩余时间就是状态转换过程所依据的倒计时时间,在状态转换中需要根据各向通行时间在每个通行状态进行减计数倒计时,当计数到01时切换状态,而这个倒计时的时间正好是该方向通行的剩余时间,输出后经过显示方式的逻辑处理,就可以变成其它禁止方向的等待通行时间了。

3.1.4时间显示模块

基于前文描述的显示方式,该功能模块实现的就是显示该方向通行剩余时间,其它三个方向等待通行的时间以及设置时间模式下四个方向的通行时间。

可以看出,在只有四组数码管的前提下,只能通过增加一个模式开关来区分显示的是运行时间还是设置时间。

该模块的难点就是在逻辑上,在下文的整体电路图中会发现,此部分的连线较为复杂,在过程中需要传递和获取很多个时间,有正在通行方向的剩余时间,这个可以从状态转换模块之间获取,有该方向和正在通行方向之间的所有状态的通行时间之和(即等待通行时间)。

为了模块化,我并没有做大范围的集成,而是把这个逻辑体现在了电路的连接上面,虽然看起来有些繁杂,但是却能比较直观的显示出其中的逻辑关系,即是如何累加的,这样在逻辑出错时,便于纠错。

在等待通行时间的累加上,采用了依次传值的方式,按照状态顺序的高低,从上往下依次传送自己的等待通行时间,高位状态传送给低位状态自己需要等待的时间和该高位状态通行时间,低位状态将这两个时间求和后得到该低位状态的等待通行时间。

如果高位状态正在通行,则将该高位状态通行的剩余时间传送给其下的低位状态,该低位状态直接将该剩余时间作为自己的等待通行时间显示出来。

3.1.5LED信号灯显示模块

该功能模块就是实现用LED灯模拟交通信号灯的显示,根据题目要求设置红灯和绿灯,绿灯在倒数5s开始闪烁。

DE2教学开发板上面的LED灯是共阳极的,所以给低电平就能点亮相应的灯。

为了实现绿灯闪烁的效果,可以在倒计时5s时开始对绿灯的EN使能信号进行自取反,使用2Hz的CP信号就能实现较好的闪烁效果了。

这里说明一下没有增加黄灯显示的原因,虽然黄灯在实际的交通灯中使用较广泛,但是黄灯显示的时间很短暂,却要在各方向各增加一个状态,这就给倒计时显示增加了难度。

我在网上看到过一个有黄灯的视频展示,它就是出现了黄灯也要倒计时的情况,感觉实用性不大,反而容易造成视觉上的困扰,因为黄灯的时间太短了。

鉴于我没有充分考虑好解决的方案,所以暂时没有增加黄灯的显示功能。

3.1.6LCD同步显示模块

该功能模块实现的就是用LCD屏显示当前的交通灯运行状态,在LCD屏上显示字符“<”表示允许左转,“∧”表示允许直行,“×”表示禁止通行,用“M”和“B”来区分主、次干道,采用ASCII码的编码方式显示相应字符。

该模块建立在DE2底层模块的基础上,由于其显示和刷新的原理比较复杂,既然要同步显示通行的状态,肯定要根据EN使能信号来选择在LCD屏上显示什么样的字符表示相应的状态。

可是底层函数的调用只能显示一次字符,即不能刷新,这样一来就无法完成设计目的了。

于是在底层函数中慢慢测试,看看哪些语句可以控制实现刷新功能,尝试了很多种方式,终于在LCD_TEST中找到了可以实现刷新的地方,其实原理很简单,就是在每次读取完整屏信息后,读取位置地址归零,在下个读取信号到来时再次进行读取字符进行显示。

3.1.7数码管显示模块

该功能模块同样建立在DE2底层函数调用基础上,实现四组8个数码管的时间显示。

根据DE2教学开发板上数码管的七段编码规则,将输入时间的8位BCD码转换为七段码显示出来,我根据实际需要修改了底层函数,使得调用更加方便和集成化。

根据数码管七段的位置进行编码,每个段位的管子仍然是共阳极的,所以高电平实现熄灭管子,低电平实现点亮管子。

3.2软件简介及设计过程

QuartusII是Altera公司的新一代功能跟强大的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具,比如支持Synplifypro、LenoardoSpecturn以及Modelsem等第三方EDA工具来完成设计任务和仿真。

此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。

目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。

AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。

该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。

Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。

改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。

支持MAX7000/MAX3000等乘积项器件。

QuartusII的一般设计流程如图3.2所示:

图3.2QuartusII的一般设计流程

3.3Quartus

文本输入设计过程

3.3.1创建工程文件

利用QuartusII软件创建工程向导(NewProjectWizard)创建一个新工程。

步骤如下:

打开QuartusII6.0软件界面,在“文件”菜单下选择“NewProjectWizard”,

1)点击“next”后弹出如图3.3.1对话框:

图3.3.1NewProjectWizard对话框第一页

点选第一行右侧的“…”选择工程目录为“d:

\quartus”,在第二行输入项目名称:

“点阵接口16”,第三行默认把项目名设为顶层文件名,点击“next”,

2)新建项目向导第二页,如图3.3.2,该窗口可为项目添加已经编辑好的程序文件,默认为空,点击“next”。

图3.3.2NewProjectWizard对话框第二页

3)新建项目向导第三页,如图3.3.3,该窗口可以选择FPGA硬件信息,在Family下拉框内选择“Cyclone”,在Avaliabledevices窗口选择芯片型号为:

EPIC12Q24C08,其它选项默认,点击“next”。

图3.3.3NewProjectWizard对话框第三页

4)新建项目向导第四页,如图3.3.4,该窗口用来添加第三方EDA工具软件参与综合、仿真、时序分析等工作,本实验默认不选,点击“next”。

图3.3.4NewProjectWizard对话框第四页

5)新建项目向导第五页,如图3.3.5所示:

图3.3.5NewProjectWizard对话框第五页

该窗口为建立的项目信息,点击“Finish”项目建立完毕。

建立工程后,可以使用Assignments菜单下的settings对话框对工程设置进行修改。

3.3.2输入文本文件

1)新建VHDL文本文件:

在QuartusII管理器界面中选择菜单File\New...,或单击新建文件按钮,出现New对话框,在对话框DeviceDesignFiles中选择VerilogHDLFile。

点击ok按钮,打开编辑器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1