基于EDA的交通灯课程设计(演示成功).doc
文本预览下载声明
1引 言
EDA技术是用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。????实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程控制器PLC、单片机等方案来实现。但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。因此,在设计中采用EDA技术,应用目前广泛应用的VHDL硬件电路描述语言,实现交通灯系统控制器的设计,利用MAXⅡ集成开发环境进行综合、仿真,并下载到CPLD可编程逻辑器件中,完成系统的控制作用。1.1 设计题目
交通灯控制器的EDA设计
1.2 设计简要说明
在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。其中,红灯(R)亮,表示该条道路禁止通行;黄灯(Y)(G)亮,表示可以通行。倒计时显示器是用来显示允许通行或禁止通行时间。交通灯控制器就是用来自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。
交通灯控制器的核心是一个计数范围为0~49共50秒的计数器和一个根据计数值做出规定反应的控制器。另外,还需要输入CLK时钟信号。最后,要驱动七段数码管显示倒计时,显然还需要一个译码电路。
图1.1 交通灯控制器原理图
图1.2 交通灯控制器系统框图
1.3 设计任务和要求
(1)在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一方向(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。
(2)设置一组数码管,以倒计时的显示方式允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是20s、5s、和25s。2.1 VHDL语言简介
20世纪80年代美国国防部开发Very High Speed Integrated Circuit—VHSIC,用于描述集成电路的结构和功能。此后,硬件描述语言向标准化方向发展,1987年成为IEEE Standard 1076,称为VHDL语言。它也是美国国防部标准(MIL-STD-454L)。1993年该标准增修为IEEE1164标准。1996年,再次加入电路合成的标准程序和规格,成为IEEE1076.3标准。
2.2 VHDL语言的应用
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL是一种标准的硬件电路设计语言,目前已成为广大电路设计人员设计数字系统首选的开发工具。基于VHDL硬件电路语言的编程与实际应用技巧,VHDL硬件电路语言在微机、通信、编码、存储器以及电子电路等方面的具体设计应用,具有实际的指导意义。
3系统设计
3.1 计数器的设计
3.1.1计数器设计思路
这里需要的计数器的计数范围为0~49。49后,下一个时钟上升沿恢复到0,开始下一轮计数。此外,当检测到特殊情况(hold=1)0。
3.1.2计数器源程序
library ieee;
use ieee.std_logic_1164.all;
entity counter is
port
(clock:in std_logic;
reset:in std_logic;
hold:in std_logic;
countnum: buffer integer range 0 to 49);
end;
architecture behavior of counter is
begin
process(reset,clock)
begin
if reset=1 then
countnum=0;
elsif rising_edge(clock) then
if hold=1 then ——当出现紧急情况时,计数器暂停计数
countnum=countnum
显示全部