当前位置:文档之家› 【完美升级版】基于VHDL交通灯系统的设计_毕业论文设计

【完美升级版】基于VHDL交通灯系统的设计_毕业论文设计

毕业设计(论文)报告题目基于VHDL交通灯系统的设

系别

专业

班级

学生姓名

学号

指导教师

2013年4 月

基于VHDL的交通灯系统设计

摘要:当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。随着大规模集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现代科技发展的主流方向。本文介绍了一个交通灯系统的设计,模拟实现了红、绿灯指挥交通的功能。

传统的交通灯控制系统多数由单片机或PLC实现,本文介绍的是基于EDA技术设计交通灯系统的一种方案。EDA技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,应用VHDL的数字电路实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。本设计就是针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。

VHDL(即超高速集成电路硬件描述语言)是随着可编程逻辑器件(PLD)的发展而发展起来的一种硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,是电子设计自动化(EDA)的关键技术之一。它采用一种自上而下(top-down)的设计方法,即从系统总体要求出发,自上至下地逐步将设计内容细化,如划分为若干子模块,最后完成系统硬件的整体设计。它支持设计库和可重复使用的元件生成,支持阶层设计,提供模块设计的创建。VHDL设计技术对可编程专用集成电路(ASIC)的发展起着极为重要的作用。

通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用Max PlusⅡ对应用程序进行了仿真,并给出了相应的仿真结果。在用VHDL语言进行电路设计时,应充分认识到VHDL语

言的特点,从设计思想、语句运用及描述方法上等多方面对电路进行优化设计。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。

关键词:交通信号灯、VHDL、仿真

The system design of traffic lights based on VHDL Abstract:The modern age is an era of automation, traffic light control equipment for many industries are closely related with the computer. Therefore, a good traffic light control system, will bring technical innovations for road congestion, illegal control, etc. With the rapid development of large scale integrated circuits and computer technology and the extensive use of intelligent devices in the control of artificial intelligence technology, intelligent devices have gotten great progress and become the mainstream of the development of modern science . This paper describes the system design of traffic lights ,Simulation realized the function of red, green light directing traffic.

Traditional traffic light control system is mostly achieved by a single chip or PLC, this paper introduces a scheme of the design of traffic signal systems based on EDA technology . An important feature of EDA technology is the use of hardware description language (HDL) to complete the system design documents, the experiment applied VHDL digital circuit reduces the difficulty of digital system design, which has been widely adopted by the designers of electronic area. This design puts forward a method of hardware implementation for traffic lights system based on VHDL language to resolve the design problem of traffic signal controller .

VHDL (i.e., ultra high speed integrated circuit hardware description language) is with the development of programmable logic devices (PLD) and developed a kind of hardware description language, is mainly used to describe the structure of the digital system, behavior, function and

interface of electronic design automation (EDA) is one of the key technologies. (top - down) it USES a top-down design method, namely from the overall system requirements, from top to down gradually to refine design content, such as divided into sub modules, finally completed the overall design of the system hardware. It supports design library and reusable components to generate, support the class design, module design creation. VHDL design technology of programmable application-specific integrated circuit (ASIC) plays a very important role in the development.

Each module is given VHDL program by analyzing the structure of the system and using a hierarchical design method, and it applies Max Plus Ⅱon the simulation of applications , and the corresponding simulation results are gained. When design the circuit with VHDL, we should be fully aware of the characteristics of VHDL language and optimize the circuit design from the design, the use of statements and methods of description,etc.Through optimizing circuit design, we can use smaller programmable logic chip, thereby reducing system cost.

Keywords: traffic light 、VHDL、simulation

目录

前言 (1)

1.1 VHDL系统语言特点 (3)

1.2 VHDL系统语言程序特点 (4)

1.3 VHDL系统语言基本逻辑指令 (5)

1.4 VHDL系统语言基本运算符及基本数据类型 (5)

第二章MAX+PLUAⅡ的简介 (6)

2.1 MAX+PLUAⅡ的定义 (6)

2.2 Max+plusⅡ开发系统的特点 (6)

2.3交通灯软件部分 (8)

第三章CPLD的介绍 (15)

3.1CPLD简介 (15)

3.2CPLD发展动态及应用 (15)

3.3CPLD的特点 (15)

3.4如何使用 (15)

3.5 FPGA与CPLD的辨别和分类 (16)

第四章设计流程和硬件介绍 (18)

4.1设计要求 (18)

4.2交通灯系统基本原理图 (18)

4.3系统硬件模块及功能介绍 (18)

4.3.1时钟模块 (18)

4.3.2输入模块 (19)

4.3.3输出模块 (19)

4.3.4 CPLD模块 (20)

4.3.5电源模块 (21)

第五章仿真波形 (23)

参考文献 (25)

前言

当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

国外已经商业化的交通仿真软件有十多种,而国内还处在起步阶段。城市交通控制系统与先进的电子技术、计算机技术、自动控制技术、通讯技术以及人工智能技术相结合就产生了智能交通系统,它是具有重要现实意义的交通解决方案。交通问题在世界各国得到了普遍的重视,美国、加拿大、欧洲、日本等国在智能交通领域取得了很大的成绩,智能交通系统的建设时间比较长,积累了很多宝贵的经验,促进了这些国家的经济发展。中国的智能交通建设起点低,起步短,目前越来越成为制约经济发展的瓶颈,如何借鉴发达国家的智能交通发展经验,建设中国的智能交通体系成为中国从事交通事业研究人员的重要课题。

本文采用可编程逻辑器件(CPLD)制作,利用软件编程,下载烧制实现。将所有器件集成在一块芯片上,体积大大减少的同时还提高了稳定性,并且可应用EDA软件仿真,调试。每个设计人员可以充分利用软件代码,提高开发效率,缩短研发周期,降低研发成本,易于进行功能扩展,可以利用频率计的核心技术,改造成其它产品。实现方法灵活,调试方便,修改容易采用可编程逻辑器件(CPLD)制作,利用软件编程,下载烧制实现。将所有器件集成在一块芯片上,体积大大减少的同时还提高了稳定性,并且可应用EDA软件仿真,调试。每个设计人员可以充分利用软件代码,提高开发效率,缩短研发周期,降低研发成本,易于进行功能扩展,可以利用频率计的核心技术,改造成其它产品。实现方法灵活,调试方便,修改更加容易。

第一章软件的介绍

1.1 VHDL系统语言特点

VHDL是一个国际标准,按照IEEE的规则。这种语言的定义是非专有。VHDL不是一个信息模型,数据库模式,一种模拟器,一个工具或一种方法!然而,对于有效地利用VHDL这种方法和工具是最基本的。

VHDL是一种符号,并且是简明完全定义的语言参考手册(LRM)。除了其它硬件描述语言此套VHDL, 这在一定程度上定义了一个专案方式的行为工具使用它们。

模拟和合成是使用VHDL语言两种主要的工具。这种语言参考手册没有定义模拟器,但明确定义了每个模拟器必须使用每一部分的语言。

VHDL并不限制用户使用一种描述方式。VHDL允许使用任何方式去描述设计--自顶向下,自底向上或中间空出!VHDL可以用来描述硬件在门级或更抽象的方式。成功的高水平的设计需要一种语言,一套工具和一种适当的方法。VHDL是这种语言,你选择这种工具和方法... 好,我猜想这就是doulos产生的方程!硬件描述语言的主要优点:

VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为 3 种描述形式的混合描述,因此VHDL 几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL 来完成。VHDL在电子设计中具有以下优点:

(1)全方位硬件描述—从系统到电路。VHDL具有功能强大的语言结构,可以用简洁明确的代码描述来进行复杂控制逻辑的设计,而且覆盖面广,方法灵活。

(2)VHDL语言的数据类型丰富!语法严格清晰,串行和并行通用,

物理过程清楚。

(3)多种描述方式,适应层次化设计。VHDL具有多层次描述系统硬件功能的能力。能进行系统级的硬件描述!这是它最突出的优点。

(4)VHDL的设计不依赖于特定的器件,方便了工艺的转换。

(5)VHDL是一个标准语言,它的设计描述可以被不同的EDA 工具所支持,可移植性强,易于共享和复用。

同时,与其他的硬件描述语言相比,VHDL 还具有以下特点:

(1)VHDL具有更强的行为描述能力。强大的行为描述能力避开了具体的器件结构,是在逻辑行为上描述和设计大规模电子系统的重要保证。VHDL 的宽范围描述能力使它成为高层次设计的核心,从而决定了它成为系统设计领域最佳的硬件描述语言,并可进行系统的早期仿真以保证设计的正确性。

(2)VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。

(3)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统功能的可行性,随时可对设计进行仿真模拟。

(4)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

(5)对于用VHDL 完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL 描述设计转变成门级网表。

(6)用VHDL 语言编写的源程序便于文档管理,用源代码描述来进行复杂控制逻辑的设计,既灵活方便,又便于设计结果的交流、保存和重用。

电子系统利用VHDL 设计时,设计方法有系统行为级描述算法,寄存器传输级算法和结构级描述;VHDL源代码是作为EDA综合工具的输

入代码,因此有效的VHDL建模风格是控制综合结果的最为有效的手段。要建立VHDL源代码,设计者必须了解VHDL与综合结果的关系。综合算法不同,对于同样的硬件描述,可能会得到不同的综合结果。即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的差别,甚至某些额外的电路还使得系统运行效率达不到要求。

1.2 VHDL系统语言程序特点

(1)VHDL程序结构:一个完整的VHDL 程序通常包括实体(Entity) 、结构体(Architecture) 、配置(Configuration) 、程序包集合(Package) 和库(Library)5 个部分。前4 部分是可分别编译的源设计单元。库存放已经编译的实体、结构体、配置和程序包集合。VHDL 的程序结构至少由实体(entity) 和结构体(architecture) 两部分组成。

实体是VHDL 的硬件抽象, 它表示具有明确的输入、输出的硬件设计的一部分。结构体指定设计实体输入和输出之间的行为、逻辑关系或功能, 并且可以采用行为风格、数据流风格、结构化风格或 3 种风格的混合形式进行描述。

1.3 VHDL系统语言基本逻辑指令

在VHDL 语言中, 通常把用来保存数据的一些单元称为对象。在VHDL 语言中, 对象包括 4 类: 常量(CONSTANT) 、信号(SIGNAL) 、变量(V ARIABLE) 和文件(FILE) 。对于每一个对象来说, 它都需要具有自己的类和类型。其中, 类属用来指明对象属于常量、信号、变量和文件中的哪一类; 而类型则用来指明该对象具有哪种数据类型。1.4 VHDL系统语言基本运算符及基本数据类型

VHDL提供了6种预定义的运算操作符,分别是:赋值运算符,逻辑运算符,算术运算符,关系运算符,移位运算符,并置运算符。

VHDL是一种强类型语言,要求设计实体中的每一个常数、信号、函数以及设定的各种参量都必须具有确定的数据类型,并且相同的数据类型的量才能相互传递和作用。VHDL作为强类型语言的好处是使用VHDL 编译或综合工具很容易找出设计中的各种常见错误。VHDL中的数据类型可以分为在现成程序包中可以随时获得的标准数据类型和用户自定义数据类型两个类别。标准的VHDL数据类型是VHDL最常用、最基本的数据类型,这些数据类型都已经在VHDL的标准程序包STANDARD和

STD_LOGIC_1164.及其他的标准程序包中作了定义,并在设计时可以随时调用。VHDL的标准数据类型有:整数(INTEGER)、实数(REAL)、位(BIT)、位矢量(BIT_VECTOR)、布尔量(BOOLEAN)、字符(CHARACTER)、字符串(SIRING)、时间(TIME)等。

第二章MAX+PLUAⅡ的简介

2.1 MAX+PLUAⅡ的定义

Max+plusⅡ是Altera公司上一代的PLD开发软件,提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。Max+plusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA 软件。在Max+plusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。目前Altera已经停止开发MaxplusII,而转向QuartusII软件平台。

2.2 Max+plusⅡ开发系统的特点

1、开放的界面

Max+plusⅡ支持与Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。

2、与结构无关

Max+plusⅡ系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。

3、完全集成化

Max+plusⅡ的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。

4、丰富的设计库

Max+plusⅡ提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。

5、模块化工具

设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。

6、硬件描述语言(HDL)

Max+plusⅡ软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。

7、Opencore特征

Max+plusⅡ软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。

MAX+PLUSII是最优秀的PLD开发平台之一,适合开发中小规模PLD/FPGA。FPGA/CPLD设计流程归纳为以下4个步骤,这与ASIC设计有相似之处。

MAX+PLUS II的设计过程可用图2-1流程图表示。

图2-1:MAX+PLUS II设计流程图

其中:

1、设计输入

用户可使用MAX+PLUS II10.0提供的图形编辑器和文本编辑器实现图形,HDL的输入,也可输入网表文件。

2、项目编译

完成对设计的处理,MAX+PLUS II10.0提供了一个完全集成的编译器(Compiler)。它可直接完成从网表提取到最后编程文件的生成。在编译过程中其生成一系列标准文件可进行时序模拟,适配等。若在编译的某个环节出错,编译器会停止编译,并告诉错误的原因及位置。图2-2即为MAX+PLUS II10.0编译器编译对话框。

图2-2 :MAX+PLUS II10.0 编译器的编译过程

3、项目校验

完成对设计的功能,时序仿真;进行时序分析,判断输入输出间的延迟。

4、项目编程

将设计下载/配置到EPM7128可编程器件中去。

2.3交通灯软件部分

软件部分,主要有定时计数模块、七段数码管的输出显示模块、红、绿、黄三色灯的控制模块、分频器、2-4译码器。见图2-3

EWTH EWTL SNTH SNTL CP

CLK

图2-3:CPLD模块内部组成

以下为CPLD模块中的一些主要程序

1)红绿灯模块程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity jtd is

port(clk:in bit;

ewr,ewy,ewg:out std_logic;

ewth,ewtl:out std_logic_vector(3 downto 0));

end jtd;

architecture a of jtd is

type rgyew is(yellow,green,red);

--type rgysn is(yellow,green,red);

begin

process(clk)

variable aew:std_logic;

variable thew,tlew:std_logic_vector(3 downto 0);

variable stateew:rgyew;

begin

if clk'event and clk='1' then

case stateew is

when green=>if aew='0' then

thew:="0011";

tlew:="1001";

aew:='1';

ewg<='1';

ewr<='0';

else

if not(thew="0000" and tlew="0001") then

if tlew="0000" then

tlew:="1001";

thew:=thew-1;

else

tlew:=tlew-1;

end if;

else

thew:="0000";

tlew:="0000";

aew:='0';

stateew:=yellow;

end if;

end if;

when red=>if aew='0' then

thew:="0100";

tlew:="0100";

aew:='1';

ewr<='1';

ewy<='0';

else

if not(thew="0000" and tlew="0001") then

if tlew="0000" then

tlew:="1001";

thew:=thew-1;

else

tlew:=tlew-1;

end if;

else

thew:="0000";

tlew:="0000";

aew:='0';

stateew:=green;

end if;

end if;

when yellow=>if aew='0' then

thew:="0000";

tlew:="0100";

aew:='1';

ewy<='1';

相关主题
文本预览
相关文档 最新文档