完整板基于EDA的交通灯设计说明书.doc

上传人:h**** 文档编号:132818 上传时间:2018-07-09 格式:DOC 页数:77 大小:1.53MB
下载 相关 举报
完整板基于EDA的交通灯设计说明书.doc_第1页
第1页 / 共77页
完整板基于EDA的交通灯设计说明书.doc_第2页
第2页 / 共77页
完整板基于EDA的交通灯设计说明书.doc_第3页
第3页 / 共77页
完整板基于EDA的交通灯设计说明书.doc_第4页
第4页 / 共77页
完整板基于EDA的交通灯设计说明书.doc_第5页
第5页 / 共77页
点击查看更多>>
资源描述

1、 1.1 EDA 设计的发展状况: 本设计是建立在 EDA 基础上完成的项目。 EDA 技术经历了 CAD 阶段, CAE 阶段, EDA 阶段三个发展阶段。在今天, EDA 技术已经成为电子设计的普遍工具,无论设计芯片还是设计系统,没有 EDA 工具的支持,都是难以完成的。如今的EDA 区别于曾经的:构成系统的 “ 积木块 ” 是各种标准芯片。 EDA 技术的出现改变了这种传统思路,使人们可以立足于 PLD 芯片来实现各种不同的功能,新的设计方法能够由设计者自己定义器件的内部逻辑和管脚,将原来由电路版设计完成的工作大部分放在芯片的设计中进行。 1.2 国内外交通灯的发展状况: 本人所设计的交

2、通灯设计早已经不仅仅禁锢于当初的红黄绿三色灯上了,在各大交通紧张的十字路口还可能设有左转灯,四盏灯按合理顺序亮灭。同样也可以运用 Verilog 语言进行编译完成此设计。 而目前,国内外专家和学者普遍采用模糊控制方法来设计交通灯实时控制系统实践表明,采用这种方法设计的控制系统可进一步提高路网的通行能力,减少路口延误时间和停车次数,对高度非线性的、随机的十字路口车流量的控制更加精确,并取得了更高的经济效益。 本系统的控制原理框图可由图 1 表示,它主要由传感器、模糊控制器( 包括计算控制变量、模糊量处理、模糊控制规则、模糊推理和清晰化处理五个模块,如图中虚线内所示)、执行机构、被控对象以及数模和

3、模数转换器组成。 图 1-1控制原理框图 本系统以单向上有三个车道的道路为实验模型,共使用了 24 个传感器设计的交通灯模糊控制系统比传统的交通灯控制系统平均节约 7.8 秒的等待时间。 而本人所要设计的交通灯控制器仅仅需要红绿两种颜色 ,控制两个干道的车辆 ,并且有 5 秒的闪烁时间以便提示车辆或者行人做好禁止通行准备 .而此种设计已经可以用各种语言不同方式实现 .我所 使用的是较为简单的 Verilog HDL 语言编译程序 ,最终通过 MAX+PLUS2 这个全英文工具加以实现 . 第二章 .方案 论证 2.1 设计 要求 设计一个十字路口交通信号灯的控制电路。要求红、绿灯按一定的规律亮

4、和灭,并在亮灯期间进行倒计时,并将运行时间用数码管显示出来。 绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。要求主干道每次通行时间为 99 秒,支干道每次通行时间为 30秒。每次变换运行车道前绿灯闪烁,持续时间为 5 秒。即车道要由 X转换为 Y 时, X在通行时间只剩下 5 秒钟 时,绿灯闪烁显示, Y仍为红灯,以便 X 上已过停车线的车继续通行,未过停车线的车停止通行。同理,当车道由 Y 转换为 X时, Y 绿灯闪烁显示 5秒钟, X仍为红灯。可以对 X, Y 车道上红、绿灯运行的时间进行重新设置。对器件进行在系统编程和实验验证。 2.2 方案 设计 分析设计要求,交通灯

5、的控制要保证在同一个时刻,只有一条干道是通行状态。并且任一条干道的绿灯在运行时间只剩 5 秒的时候开始闪烁,而另一条干道的红灯继续亮,反之亦然。设 A方向是主干道,车流量大, B方向支干道。 A方向和 B方向的红,黄,绿分别用 R1, Y1, G1 和 R2, Y2, G2 来表示。 (1)绿黄红黄绿由于本设计老师没有安排黄灯亮,仅可代表绿灯闪烁 5秒的时间。 (2)在置数模块中,设四个并行的 ALWAYS 同时对四个置数键键控。置数值分别放在 chief_h,chief_l,sub_h,sub_l. (3)每种灯亮的时间采用一个减法计数器进行记数,计数器用同步预置法设计,这样只需改变预置数据

6、,就能改变计数器的模,因此每个方向只要一个记数器进行记时即可。 (4)为便于显示灯亮的时间,计数器的输出可采用 BCD 码,显示由四个数码管来完成, A 方向和 B方向各用两个数码管。这样设计中就需 要四条输出线,用来选通指定一个 LED 七段显示数码管;当正常计时开始后,需要进行定时技数操作,由于东西和南北两个方向上的时间显示器是由两个 LED 七段数码管组成的,因此需要产生两个 2 位的计时信息: 2 个十位信号, 2 个个位信号,这个定时计数操作可以由一个定时计数起来完成,又因为交通灯的状态变化是在计时为 0的情况下才能进行的,因此需要一个计时电路来产生使能信号,因此定时计数的功能就是用

7、来产生 2个 2 位计时信息和使能信号。 (5)采用自上而下的设计方法 ,将其分为各个小模块 ,然后连接最后达到最后的设计目的 .交通灯状态图如下 : 图 2-1交通灯状态图 第 三 章 设计论述 : 本设计的完成是运用 Verilog HDL 语言进行编译,用 MAX+PLUS2 软件来实现的。 对此我对 Verilog HDL 语言 与 MAX+PLUS2 进行简单描述。最后再详细介绍本设计的全部内容。 S0 主干道绿灯亮,支干道红灯亮 S1 主干道绿灯闪( 5S),支干道红灯亮 /select;flash 主干道红灯亮,支干道绿灯闪( 5S) 主干道红灯亮,支干道绿灯亮 Select;/

8、flash Select;flash /select;/flash 3.1.Verilog HDL 语言 : 1. Verilog HDL 语言的发展过程: Verilog HDL 语言 是在 1983 年由 GDA( Gate Way Design Automation) 公司的Phil Moorby 首创的:在 1984-1985 年间, Moorby 设计出第一个关于 Verilog-XL的仿真器; 1986 年,又提出了用于快速门级仿真的 XL 算法。 随着 Verilog-XL 算法的成功, Verilog HDL 语言 得到迅速发展, 1989 年,CADENCE 公司收购 GDA

9、 公司, Verilog HDL 成为 CADENCE 公司的私有财产。 1990年 CANDENCE 公司决定公开发表 Verilog HDL,于是成立了 OVI( Open Verilog international) 组织来负责 Verilog HDL 的发展。基于 Verilog HDL 的优势, IEEE 于 1995 年制定了 Verilog HDL 的 IEEE 标准。 2. Verilog HDL 的特点: 1. Verilog 语言是一种通用的硬件描述语言,并且易学易用,在语法上和 C 语言类似。 2. 同一个设计中, Verilog 语言允许设计者在不同层次上进行抽象。 V

10、erilog语言提供开关级,门级。 RTL 级和行为级的支持,一个设计可以先用行为级语法描述它的算法,仿真通过后,再用 RTL 级描述,得到可综合的代码。 3. Verilog 语言支持广泛,基本上所有流行的综合器,仿真器都支持此语言。 4. 能够描述层次设计,可使用模块实例结构描述任何层次,模块的规模可以是任意的,语言对此没有任何限制。 5. Verilog 语言对仿真提供强度的支持。 Verilog HDL 语言中 ,描述进程的基本语句是 always 和 initial.always 过程反复执行其中的块语句 ,而 initial 过程中的语句块只执行一次 .除了 always和 ini

11、tial过程块外 ,一个 assign赋值语句 ,一个实例元件的调用都可以看做是一个进程 . 在 VerilogHDL 语言中已预 定义了门级原型 : 表 3-1 Verilog HDL 行为描述方法: 过程块的组成: 过程语句 (事 件控制敏感表 ) begin (:块名 ) 块内局部变量说明 一条或多条过程赋值或高级程序语句 end 在 always 下面使用的高级程序语句: ( 1) if-else 条件语句 if (条件表达式) 块语句 1 else if (条件表达式 2) 块语句 2 . else if (条件表达式 n) 块语句 n else 块语句 n+1 ( 2) case

12、语句 case (敏感表达式) 值 1:块语句 1 值 2:块语句 2 值 n: 块语句 n default:块语句 n+1 and n-input AND gate nand n-input NAND gate or n-input OR gate nor n-input NOR gate xor n-input exclusive OR gate xnor n-input exclusive NOR gate buf n-output buffer not n-output inverter bufif0 tri-state buffer; Io enable bufif1 tri-sta

13、te buffer; hi enable notif0 tri-state inverter; Io enable notif1 tri-state inverter; hi enable endcase ( 3) for 循环语句 for (表达式 1;表达式 2;表达式 3)块语句 3.2 MAX+PLUS2 的介绍 : 本设计很关键的一步就是对 MAX+PLUS2 的学习,因为后面所涉及到的文本编译,建立模块,仿真都需要对此软件的 熟练掌握才能很好的达到最终目的,因此我粗略的把使用 MAX+PLUS2 的基本流程描述一下 。 我完成此设计是采用文本编译,然后建立模块最后实现仿真的。 使用

14、 MAX+plus II 软件进行开发的流程如图 3所示,主要包括以下步骤: 设计输入编译仿真与定时分析编程在系统测试修改设计设计输入编译仿真与定时分析编程在系统测试修改设计图 3-1 而 MAX+PLUS2 可以采用两种方法来完成: 1.文本设计法。 2.图形输入法。 而我采用的第一种方法。 采用 Verilog HDL 进行文本设计的步骤如下: 1指定项目并建立新文件; 2输入文本设计文件; 3文件命名、保存; 4编译文件 并检查、修改句法错误; 5若需要,可生成默认逻辑符号 。 以下我简单介绍下自己运用时的步骤: 1 编译: MAX+plus II 的编译器能够接受多种输入文本格式,也能

15、输出多种文件格式。如前所述,它能接受的设计文件包括: MAX+plus II 自己的图形文件 (.gdf)、AHDL 文件 (.tdf)、 VHDL 文件 (.vhd)和 Verilog HDL 文件 (.v);包括第三方 EDA工具书输入文件,如 EDIF 文件 (.edf)、库映射文件 (.lmf)、 OrCAD 文件 (.sch)及 Xilinx 文件 (.xnf); 它还能接受赋值和配置文件 (.acf)。另一方面,MAX+plus II 的输出文件包括设计校验、 MAX+plus II 的模拟器网表文件 (.snf)、第三方 EDA 工具所用的网表文件 (.vo)和标准格式的 SDF

16、 文件 (.sdo)。另外还可以输出可编程文件,包括用于 E2PROM 类器件编程的目标文件 (.pof)、用于配置SRAM 类器件的目标文件 (.sof)和 JEDEC 文件 (.jed)。 正常运行 MAX+PLUS2 后,先建立一个文件夹如 123。然后点 FILE 中的 NEW 出现如下图,选择 TEXT EDITOR 变会出现输入文本的空白界面,便可以输入你编的 程序,完成编译后进行保存。然后点 project 建立工程并且使名字也和程序名一致。然后点 MAX+PLUS2 中的 compiler 进行程序验证,如有错误便可按照提示查出错误进行改正,直到正确无误为止。 图 3-2 2.

17、 波形仿真: 再 点击 FILE 选择 NEW 出现上面同样的界面,这回选择 wave editor file 然后保存。然后打开后出现图点击右键选择你要观察的引脚,将输入 INPUT 键入初始值。点击 MAX+PLUS2 选择 simulator 进行仿真,点击 start 检验无误后 便可以仿真了 。 图 3-3 图 3-4 3. 建立模块 完成以上内容后点 FILE 中的 create default symbol,然后点 NEW 选择第一个GRAPLIC EDITOR FILE 然后在空白中输入 SYMBOL 就会出现你要的模块。 这样整 个过程就算初步完成,此后还有模块的整合在后面会

18、叙述到。此处就不再 累赘。 MAX + PLUS II 能够将设计的结果用层次显示方式显示出树的形式显示出整个项目和电路的设计层次。打开层次显示窗口的方法是在 MAX + PLUS II 菜单中选择 Hierarchy Display 项,选择后,当前项目的层次便显示出来。图 3.8 是上例中模块 mul4_look 的结构层次,层次中的每个文件都可以通过双击文件名打开,并送到前台显示来。它以一个层次: 图 3-5 3.3.基 于交通灯控制的设计论述 : 本设计 遵循着自上而下的方法来完成的,先建立各个小的模块最后再进行整合。我们将整个分成设置模块,计时模块,显示模块与最终的顶层模块。我 完成

19、计时 控制 模块和顶层模块。 简要介绍下置数模块和显示模块。在置数模块中, ALWAYS 语句中用置数键的上升沿跳变做触发。每按次置数案键,便产生电平变化,对应的置数键加 1。当置数位加到 9后下一次归 0。四个并行的 ALWAYS 同时对四个置数键监控。置数值分别放在 chief_h,chief_l,sub_h,sub_l 显示模块中完成交通灯的显示和闪烁功能。 我 们完成的交通灯的逻辑功能如下:通过外部:chief_l_botton;chief_h_button;sub_l_button;sub_h_button,分别对 主干道和次干道的通行时间进行设置。在按下 enable 键后,交通灯

20、开始运行。运行时间以设置的值为初始值,以秒为单位进行减计数并且在数码管上显示。并且保持交通灯的控制在同一时刻,只有一条干道是通行状态。并且任何一条干道的绿灯在运行时间只剩下 5 秒钟的时间开始闪烁,而另一条干道的红灯继续亮。反之亦然。 控制及译码表格: 输入信号 输出信号 select flash Chief_green Chief_red Sub_green Sub_red 0 0 1 0 0 1 0 1 闪烁 0 0 1 1 0 0 1 1 0 1 1 0 1 闪烁 0 表 3-2 所有的功能按键设置为脉冲模式 chief_h_button( 主干道通行时间置数高位键 ), chief_l

21、_button (主干道通行时间置数低位键 ), sub_h_button( 次干道通行时间置数高位键 ), sub_l_button(次干道通行时间置数 低位键 )。每次置数从 0开始,每按一次键加 1,到 9归零,依次循环(置数范围为 0 99)。 整体 电路图如下: 图 3-6 其中输入端 (INPUT)包括 Enable 控制计时器的运行和关闭 .CLK 为时钟脉冲 .chief_h_button,chief_l_button,sub_h_button,sub_l_button 则为四个控制两个干道的置数键 . 输出端 (OUTPUT)chief_green,chief_red,sub

22、_green,sub_red 接发光管 . 其中闪烁的效果用 flash&clk 实现的 . 既 然采用的是自顶向下的设计思想,那么顶层的设计就很重用,顶层设计好后,下面各个部分写起来就比较容易了,一旦出了什么问题也好检查错误在哪里进行相应的改动。 3.3.1 设计过程: 完成真个交通灯的设计主要经过了电路的分析,模块划分 ,程序的编译,模块的建立,波形的仿真,和最后模块的整合这几个步骤: 在设计中我主要负责计时模块和顶层模块的建立,所以本文只对此进行详细叙述,对另两个模块就不做详解。 ( Enable 键控制计时器的运行和关闭。 Enable 按下后,将置数值赋给计数变量 chief_h_t

23、emp,chief_l_temp,sub_h_temp,sub_l_temp.) 根据设计要求先将整个电路的输入输出规划出来。其中输入:一个运行控制键enable(按下后可以使交通灯运行,再按下后交通灯停止运行。)一个时钟信号CLK ,四个功能按键分别控制主干道高低位键,支干道高低位键。( chief_h_button,chief_l_button,sub_h_button,sub_l_button )。 输 出 :chief_green,chief_red,sub_green,sub_red(分别控制发光管)。并且设置输出chief_h,chief_l,sub_h,sub_l 可以控制数码管显示。初步对电路分析后建立了一个系统的框架。如图 9所式: 而模块的划分是设计中要求的所以不必再做叙述。 、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。