当前位置:文档之家› 交通信号灯设计实验报告

交通信号灯设计实验报告

华侨大学电子工程系基于FPGA的交通信号灯课程设计报告设计课题:交通信号灯设计姓名:潘申欣、崔冰、陈孔滨专业:10级集成电路设计与集成系统学号:1015251023、1015251005、1015251003日期:2013年4月14日—2013年4月26日指导教师:傅文渊目录摘要一、设计的任务与要求 (4)1、任务与要求 (4)2、系统原理 (5)3、创新部分 (5)二、系统顶层原理图 (6)三、各功能模块叙述 (6)1、码转换模块A (6)2、数据产生模块 (8)3、数据存储模块 (10)4、4选1多路选择器 (12)5、时钟产生模块 (13)6、总控制模块 (15)7、码转换模块B (20)8、码转换模块C (22)9、码转换模块D (24)10、LCD1602驱动模块 (25)四、硬件验证结果说明 (29)1、引脚锁定 (29)2、基本功能的验证 (30)3、紧急情况处理部分 (33)4、手动更改时间部分 (34)五、Signal Tap仿真结果 (37)六、心得体会 (38)七、参考文献 (39)八、附录(产品使用说明书) (39)摘要1、EDA技术的概念EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

2、VHDL语言概念VHDL语言:超高速集成电路硬件描述语言(VHSIC Hardware Deseription Languagt,简称VHDL),是IEEE的一项标准设计语言。

它源于美国国防部提出的超高速集成电路(Very High Speed Integrated Circuit,简称VHSIC)计划,是ASIC设计和PLD设计的一种主要输入工具。

3、交通灯控制系统工程简介本次设计报告分析了现代交通控制与管理问题的现状,根据城市交通的实际情况,阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的电路设计方案。

根据交通灯的设计原理及要求,通过总体设计交通灯原理接线图,综合应用单片机原理、微机原理、微机接口技术等方面的知识来,运用FPGA相关知识结合DE2开发板的上的数码管、LCD1602、LED、按钮开关完成交通灯系统的设计,在紧急情况下可以实现人工控制。

关键词:交通灯、FPGA、LCD1602、数码管、LED、紧急情况。

一、设计的任务与要求1、任务与要求基于嵌入式技术利用VHDL等硬件语言描述交通信号灯的系统(1)基本要求:a.设计一个南北方向为主干道,东西方向为支干道的;b.选择一个标准时钟发生电路,为电路提供一个标准1HZ信号;c.(1)交通灯从绿变红时,有6秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为65秒,支干道的绿灯时间为30秒;d.在DE2开发板上演示其状态变化过程。

(2)发挥部分:a.在Signal Tap中显示指示灯变化的输出结果仿真波形图。

b.在任意时间显示每个状态到该状态结束所需的时间。

2、系统原理:定义一个时钟为标准的1HZ的时钟信号,rst为复位信号,同时定义一个紧急情况信号,负责紧急情况的处理,当紧急情况发生时,南北主干道和东西支干道均显示红灯。

3、创新部分:1)、在任何情况下都能够手动修改主干道和支干道上交通灯的控制时间。

2)、能在LCD1602上显示主干道和支干道交通灯的实时变化情况,以及各种情况下的显示时间。

3)、在初始设定交通灯时间以及每次修改其控制时间时,能在数码管上显示其设定结果,并一直保持。

4)、紧急情况发生时不但南北主干道和东西支干道均显示红灯,而且自动停止计时并发出警报。

二、系统顶层原理图原理说明:整个原理图由码转换模块A、数据产生模块、数据存储模块、4选1多路选择器、时钟产生模块、总控制模块、码转换模块B、码转换模块C、码转换模块D、LCD1602驱动模块。

其中码转换模块A、B实现十进制整数转换为七段数码管段码的功能。

数据产生模块实现交通灯初始时间的设定、数据存储模块用于存储已设定的时间、4选1多路选择器实现输入口的复用、时钟产生模块用于产生1250HZ的时钟信号和1HZ的标准时钟信号,总控制模块用于控制主干道和支干道交通灯显示情况、码转换模块C实现数码管段码到LCD1602字符码的转换、码转换模块D实现交通灯的电平信号到LCD1602字符码的转换、LCD1602驱动模块作为后续LCD1602显示屏的驱动。

三、各功能模块叙述1、码转换模块A:a)源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div_10_2isport(datain:in integer range0to99;display1:out std_logic_vector(6downto0);display2:out std_logic_vector(6downto0) );end;architecture one of div_10_2isbeginprocess(datain)variable a:integer;variable b:integer;begina:=datain/10;b:=datain-a*10;case a iswhen0=>display1<="1000000";when1=>display1<="1111001";when2=>display1<="0100100";when3=>display1<="0110000";when4=>display1<="0011001";when5=>display1<="0010010";when6=>display1<="0000010";when7=>display1<="1111000";when8=>display1<="0000000";when9=>display1<="0010000";when others=>null;end case;case b iswhen0=>display2<="1000000";when1=>display2<="1111001";when2=>display2<="0100100";when3=>display2<="0110000";when4=>display2<="0011001";when5=>display2<="0010010";when6=>display2<="0000010";when7=>display2<="1111000";when8=>display2<="0000000";when9=>display2<="0010000";when others=>null;end case;end process;end;b)、原理图:c)、功能仿真波形:d)、时序仿真波形:e)、功能描述:系统共有4个码转换模块,在初始时间设定时所输入的时间量通过4个码转换模块的译码后输入到8个共阳数码管上显示所输入的时间量。

2、数据产生模块a)、源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity setting isreset,en:in std_logic;clkh:in std_logic;clkl:in std_logic;setout:out integer range0to99 );end;architecture one of setting issignal f:integer:=0;beginprocess(clkh,clkl)variable a:integer:=0;variable b:integer:=0;variable c:integer:=0;variable d:integer:=0;beginif en='1'thenif reset='0'thena:=0;b:=0;c:=0;d:=0;f<=0;elseif clkh'event and clkh='1'thenif a<=8thena:=a+1;b:=10+b;elsea:=0;b:=0;end if;end if;if clkl'event and clkl='1'thenif c<=8thenc:=c+1;d:=1+d;elsec:=0;d:=0;end if;end if;end if;end if;end process;setout<=f;end;b)、原理图:c)、功能仿真波形:d)、时序仿真波形:e)、功能描述:数据产生模块实现交通灯初始时间的产生及其设定。

3、数据存储模块a)、源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity store isport(storeen:in std_logic;clk:in std_logic;storein:in integer range0to99;storeout:out integer range0to99 );end;architecture one of store issignal a:integer range0to99;beginprocess(storeen,clk,storein)beginif storeen='1'thenif clk'event and clk='1'thena<=storein;end if;end if;end process;storeout<=a;end;b)、原理图:c)、功能仿真波形:d)、时序仿真波形:e)、功能描述:数据存储模块用于暂存设定,以达到设定时间的目的。

相关主题