基于VHDL交通信号灯控制器
基于VHDL的交通灯控制器设计
基于VHDL 的交通灯控制器设计翟殿棠,方 敏,厉光伟(济南大学控制科学与工程学院 山东济南 250022)摘 要:传统的交通灯控制器多数由单片机或PLC 实现,本文介绍基于EDA 技术设计交通灯控制器的一种方案。
EDA 技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,这在电子设计领域已得到设计者的广泛采用。
给出了交通灯控制器的VH DL 源程序和仿真结果。
仿真结果表明该系统的设计方案正确。
展示了VH DL 语言的强大功能和优秀特性。
关键词:交通灯控制器;电子设计自动化;硬件描述语言;可编程器件中图分类号:T N702 文献标识码:B 文章编号:1004373X(2007)0318702Design of Traffic Light Controller Based on VHDLZH AI Diantang,FANG Min,LI Guangwei(School of Cont rol Sci ence and Engineering,Ji nan Universi t y,Ji c nan,250022,China)A bstra ct :Tr affic light controller is usually developed by micr oprocessor or PLC.This paper introduces the design of t raffic light controller base on EDA,one im portant character istic of the EDA is that the design documents should be complet ed by the HDL,and it is widely used by electr onic designer now.The VH DL source progr ammer and simulating r esults of traffic light cont roller are given.T he simulating r esults show that the design met hod is corr ect,it shows the powerful function and excel 2lent char acter of the VHDL.Keywords :traff ic light controller;EDA;HDL;PLD收稿日期:20060706应用VH DL 语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率。
基于VHDL的智能交通灯控制器
基于VHDL的智能交通灯控制器1 设计任务及要求交通灯在指挥道路交叉部分的车辆,行人安全,有序,高效地通行,缓解城市交通拥堵状况起着重要作用,交通灯的出现大大降低了交汇路段的交通事故率,极大地提高了通行效率,是现代交通控制系统不可缺少的一部分。
本次将设计基于VHDL语言的交通灯控制系统,实现如下功能: 1. 本设计用总共8个LED灯分别指示南北和东西方向的红黄绿以及左转信号灯。
并规定在非紧急情况下各个方向车辆在不影响其他直行车道车辆正常行驶是情况下均能右转向,因此本设计未包含右转向信号。
2. 本设计具有状态实时显示功能,即各个状态的剩余时间将在对应的数码管上显示。
3. 复位功能:在紧急情况键未按下时复位键可以使系统从任意状态回到第一种状态。
4. 紧急状态限行功能:在紧急情况时可以按下紧急情况按钮,可使系统在任意情况,转向限制所有方向车辆通行,同时数码管显示“00”,发出警告音 5. 系统的六个状态为:东西方向绿灯,南北方向红灯,持续30s;东西方向黄灯,南北方向红灯,持续5s;东西方向绿灯,南北方向左转,持续10;东西方向红灯,南北方向绿灯,持续30s;东西方向红灯,南北方向黄灯,持续5s;东西方向左转,南北方向绿灯,持续10s;6.要求在无人工干预条件下各个状态能自动转换,系统正常运行。
2设计原理及总体框图本交通灯设计总共用8个数码管分别指示东西和南北方向的红灯,黄灯,绿灯以及左转指示灯。
共有六种状态,如下表所示:状态 1 2 3 4 5 6 南北方向东西方向LED指示LED状态绿灯黄灯绿灯红灯红灯左转计数器初值30 5 10 35 5 10 LED状态红灯红灯左转绿灯黄灯绿灯计数器初值35 5 10 305 10 LED代码00101000 01001000 00100001 10000010 10000100 00010010 设计的总体框图为:时钟输入交通灯控制核心模块东西方向数码管时间显示南北方向数码管时间显示LED显示交通灯控制模块在时钟的控制下,实现各个状态的自动转换,并且负责输出LED的控制信号和,数码管倒计时的BCD码输入信号。
基于VHDL的交通灯控制器设计
生物医学工程王春雨基于VHDL的交通灯控制器设计应用VHDL语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率。
下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果。
1 系统功能与要求实现交通繁忙的主路和偶有车行的小路交会路口的交通管理。
要求:1、交通灯控制器控制主干道和小路交叉路口的交通。
2、小路口来车,主线路口绿灯切换到黄灯5秒钟后变为红灯。
3、红灯燃亮20秒后,自动切换为绿灯。
4、指示左转弯的绿灯亮12 s,绿灯变至红灯时,黄灯亮3 s。
5、主路的交通管制重新切换到绿灯后5分钟内不理睬小路上的车况,即使又有车辆驶入小路路口。
上述主路上的灯光显示,小路口的灯信号与之逻辑配合。
2 程序设计根据交通灯控制器的功能与要求,将其总体电路分为分频器、信号控制器两个模块。
外部脉冲振荡器的频率选为32768 kHz,经分频器分频得1 Hz的信号,1 Hz信号用做信号控制器的计数脉冲,用VHDL设计组成交通灯控制器的分频器、信号控制器两个模块,在M AX+plus Ⅱ平台上,编译VHDL程序,然后用原理图输入法形成总体框图。
实验程序:Library IEEE;Use IEEE.Std_Logic_1164.All;Use IEEE.STd_Logic_Unsigned.All;Entity Frequency10Hz IsPort(Clk20M: In Std_Logic;Clk10Hz:Out Std_Logic);End;Architecture Count Of Frequency10Hz Is Signal Tout:Integer Range 0 to ;Signal Clk:Std_Logic;BeginProcess(Clk20M)BeginIf rising_edge(Clk20M) thenIf Tout= thenTout<=0;Clk<=Not Clk;Else Tout<=Tout+1;End If;End If;End Process;Clk10Hz<=Clk;End;Library IEEE;Use IEEE.Std_Logic_1164.All;Use IEEE.STd_Logic_Unsigned.All; Entity Frequency IsPort(Clk10Hz: In Std_Logic;Clk1Hz:Out Std_Logic);End;Architecture Count Of Frequency Is Signal Tout:Integer Range 0 to 4;Signal Clk:Std_Logic;BeginProcess(Clk10Hz)BeginIf rising_edge(Clk10Hz) thenIf Tout=4 thenTout<=0;Clk<=Not Clk;Else Tout<=Tout+1;End If;End If;End Process;Clk1Hz<=Clk;End;Library IEEE;Use IEEE.Std_Logic_1164.All;Use IEEE.Std_Logic_Unsigned.All;Entity Controller IsPort(Clock:In Std_Logic;Hold:In Std_Logic;CountNum:IN Integer RANgE 0 TO 49;Flash:Out Std_Logic;NumA,NumB:Out Integer Range 0 To 25;RedA,GreenA,YellowA:Out Std_Logic;RedB,GreenB,YellowB:Out Std_Logic);End;ARCHITECTURE Behavior OF Controller IS BEGINPROCESS(CLOCK)BeginIf falling_edge(Clock) thenIf Hold='1' thenRedA<='1';RedB<='1';GreenA<='0';GreenB<='0';YellowA<='0';YellowB<='0';Flash<='1';ElseFlash<='0';If CountNum<=19 thenNumA<=20-CountNum;RedA<='0';GreenA<='1';YellowA<='0';Elsif (CountNum<=24) thenNumA<=25-CountNum;RedA<='0';GreenA<='0';YellowA<='1';ElseNumA<=50-CountNum;RedA<='1';GreenA<='0';YellowA<='0';End If;If CountNum<=24 thenNumB<=25-CountNum;RedB<='1';GreenB<='0';YellowB<='0';Elsif CountNum<=44 thenNumB<=45-CountNum;RedB<='0';GreenB<='1';YellowB<='0';ElseNumB<=50-CountNum;RedB<='0';GreenB<='0';YellowB<='1';End If;End If;End If;End Process;End;LIBRARY IEEE;USE IEEE.Std_logic_1164.all;Use IEEE.Std_Logic_Unsigned.All; ENTITY Counter ISPORT(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 BEGINPROCESS(Reset,Clock)BEGINIF Reset='1'THENCountNum<=0;ELSIF rising_edge(Clock) THENIF Hold='1'THENCountNum<=CountNum;ELSEIF CountNum=49 THENCountNum<=0;ELSECountNum<=CountNum+1;END IF;END IF;END IF;END PROCESS;END Behavior;Library IEEE;Use IEEE.Std_Logic_1164.All;Use IEEE.Std_Logic_Unsigned.All;Entity Display IsPort( Clock:In Std_Logic;Flash:In Std_Logic;Qin:In Std_Logic_Vector(3 Downto 0); Display:Out Std_Logic_Vector(0 to 6)); End;Architecture Light Of Display IsSignal Timeout:Integer Range 0 To 11;BeginProcess(Clock)BeginIf rising_edge(Clock) thenIf (Flash='0') thenTimeout<=0;ElseIf (Timeout=11) thenTimeout<=0;ElseTimeout<=Timeout+1;End If;End If;If (Timeout<=6) thenCase Qin IsWhen "0000"=>Display<="";When "0001"=>Display<="";When "0010"=>Display<="";When "0011"=>Display<="";When "0100"=>Display<="";When "0101"=>Display<="";When "0110"=>Display<="";When "0111"=>Display<="";When "1000"=>Display<="";When "1001"=>Display<="";When Others=>Display<="";End Case;ElseDisplay<="";End If;End If;End Process;End;Library IEEE;Use IEEE.Std_Logic_1164.All;Use IEEE.Std_Logic_Unsigned.All; Entity Fenwei IsPort(Numin:In Integer Range 0 To 25;NumA,NumB:Out Integer Range 0 To 9 );End;Architecture Fen Of Fenwei IsBeginProcess(Numin)BeginIf Numin>=20 thenNumA<=2;NumB<=Numin-20;Elsif Numin>=10 thenNumA<=1;NumB<=Numin-10;ElseNumA<=0;NumB<=Numin;End If;End Process;End;顶层框图:3.仿真结果。
基于VHDL语言的交通灯控制器设计
基于VHDL语言的交通灯控制器设计2009年06 月18 日星期四20:38设计要求1、显示一个方向的绿、黄、红的指示状态。
2、特殊情况按键能实现特殊的功能,计数器停止计数并保持在原来的状态,显示红灯状态。
特殊后能继续计数.3、复位按键实现总体计数清零功能。
4、实现正常的倒计时功能. 用数码管作为倒计时显示, 显示时间为绿灯17s, 黄灯3s 红灯20s。
| ---------- >|--->| ------------ >|| 绿灯| 黄灯| 红灯|设计思想首先由晶振产生出发信号,由控制器处理成1HZ的时钟,利用此时钟进行计数,通过判断控制交通灯的亮灭。
通过每种灯亮的时间总数与计数值比较得到数码管应该显示的数值,利用分位分成十位和个位。
通过译码电路来实现数码管的显示。
本实验所使用的芯片为EPM7128SLS84-,6 实体逻辑单元为64 点,结构体逻辑单元为128 小型芯片。
软件本实验使用MAX+plus II 10 来进行程序的编写,编译,仿真以及下载。
在实验中发现其用,但仍有地方需要改进,不支持MOD取余运算。
(源程序)* 在MAX+plus II 中,汉字很容易出现乱码,建议大家用英文,这里为了考虑到读者的习惯写论文时都译成中文Library IEEE;Use IEEE.std_logic_1164.all;Entity redgreen isPort(clock_in:in std_logichold_state:instd_logic;reset_state:instd_logic,led_green ,led_yellow:out std_logic;led_redselect_en:buffer std_logic; select_display:out std_logic_vector(0 to 6)); end;Architecture half of redgreen isconstant loop_hz:integer:=800000; -- 一根据晶振实际频率算出来signal count_time:integer range 0 to loop_hz;signal clock_buffer:std_logic;signal clock_out:std_logic;signal count_num:integer range 0 to 40;signal display_num:integer range 0 to 20;signal display_shi:integer range 0 to 9;signal display_ge:integer range 0 to 9;constant loop_time:integer:=40; 个循环周期的时间constant red_time:integer:=20; -- 红灯的时间constant green_time:integer:=17; -- 绿灯的时间constant yellow_time:integer:=3; -- 黄灯的时间beginprocess(clock_in) -- 分频进程beginif rising_edge(clock_in) thenif count_time=loop_hz then count_time<=0; clock_buffer<=notclock_buffer;else count_time<=count_time+1;end if;end if; clock_out<=clock_buffer;-- 输入1HZ 的频率end process;process(reset_state ,clock_out) -- 计数进程beginif reset_state=1 then -- 重启后计数归零count_num<=0;elsif rising_edge(clock_out) thenif hold_state=1 then -- 紧急时计数占停count_num<=count_num;elseif count_num=loop_time-1 then count_num<=0;else count_num<=count_num+1;end if;end if;end if;end process;process(clock_out) -- 交通灯显示count countbeginnumnumif falling_edge(clock_in) thenif hold_state=1 then --led_red<=1;led_green<=0;led_yellow<=0;elseifelsifelseendif;占停时红灯亮display_num<=green_time-count_num;led_red<=0;led_green<=1;led_yellow<=0;display_num<=green_time+yellow_time-led_red<=0;led_green<=0;led_yellow<=1;display_num<=loop_time-count_num;led_red<=1;led_green<=0;led_yellow<=0;endif; end if;end process;process(display_num) -- 分位进程beginif display_num>=20 then display_shi<=2;display_ge<=display_num-20;elsif display_num>=10 thendisplay_shi<=1;display_ge<=display_num-10;elsedisplay_shi<=0;display_ge<=display_num;end if;end process;process(clock_in) -- 数码管显示beginif falling_edge(clock_in) thenselect_en<=1; -- 因为我们的实验箱采用数码管并联方式,所以显示case display_shi iswhen 0=>select_display<=1111110; when1=>select_display<=0110000; when 2=>select_display<=1101101; whenothers=>select_display<=0000000; end case;if select_en=1 then select_en<=0; case display_ge is when0=>select_display<=1111110; when 1=>select_display<=0110000; when2=>select_display<=1101101; when 3=>select_display<=1111001; when4=>select_display<=0110011; when 5=>select_display<=1011011; when6=>select_display<=1011111; when 7=>select_display<=1110000; when8=>select_display<=1111111; when 9=>select_display<=1110011; whenothers=>select_display<=0000000; end case;end if;end if;end process;end;-- 由于时间和硬件限制,这个程序仅仅实现了一路交通灯,用类似的方法可以写出两路交通灯的程library ieee;use ieee.std_logic_1164.all;entity redgreen isPort( clock_in:in std_logic; hold_state:in std_logic;reset_state:in std_logic;led_red,led_green,led_yellow:out std_logic; select_en:buffer std_logic; select_display:out std_logic_vector(0 to 6));end;architecture half of redgreen isbeginsignal count_time:integer range 0 to 800000;signal clock_buffer:std_logic;signal clock_out:std_logic;signal count_num:integer range 0 to 40;signal display_num:integer range 0 to 20; signal display_shi:integer range 0 to 9; signal display_ge:integer range 0 to 9; constantloop_time:integer:=50;constant red_time:integer:=25;constant green_time:integer:=20; constant yellow_time:integer:=5;begin process(clock_in)beginif rising_edge(clock_in)count_time<=0;clock_buffer<=not clock_buffer;count_time<=count_time+1;end if;end if;clock_out<=clock_buffer;end process;process(reset_state,clock_out)beginif reset_state=1then count_num<=0;elsif rising_edge(clock_out)then if hold_state=1then count_num<=count_num;else if count_num=loop_time-1then count_num<=0;else count_num<=count_num+1;end if;end if;thenif count_time=loop_hz then elseend if;end process;process(clock_out)beginif falling_edge(clock_in)then if hold_state=1thenled_red<=1;led_green<=0; led_yellow<=0;elseif count_numdisplay_num<=green_time-count_num;led_red<=0;led_green<=1;led_yellow<=0;elsif count_numdisplay_num<=green_time+yellow_time-count_num; led_red<=0;led_green<=0;led_yellow<=1;elsedisplay_num<=loop_time-count_num;led_red<=1;led_green<=0;led_yellow<=0;end if;end if;end if;end process;process(display_num)beginif display_num>=20then display_shi<=2;display_ge<=display_num-20;elsif display_num>=10then display_shi<=1;display_ge<=display_num-10;else display_shi<=0;display_ge<=display_num;end if;end process;process(clock_in)beginif falling_edge(clock_in)then select_en<=1;case display_shi iswhen 0=>select_display<=1111110;when 1=>select_display<=0110000;when 2=>select_display<=1101101;when others=>select_display<=0000000; end case;if select_en=1then select_en<=0;case display_ge iswhen 0=>select_display<=1111110;when 1=>select_display<=0110000;when 2=>select_display<=1101101;when 3=>select_display<=1111001;when 4=>select_display<=0110011;when 5=>select_display<=1011011;when 6=>select_display<=1011111;when 7=>select_display<=1110000;when 8=>select_display<=1111111;when 9=>select_display<=1110011;when others=>select_display<=0000000;end case; end if; end if;end process; end;end half;。
基于VHDL交通灯系统的设计_毕业论文
毕业设计(论文)报告题目基于VHDL交通灯系统的设计系别专业班级学生姓名学号指导教师2013年4 月基于VHDL的交通灯系统设计摘要:当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。
因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。
随着大规模集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现代科技发展的主流方向。
本文介绍了一个交通灯系统的设计,模拟实现了红、绿灯指挥交通的功能。
传统的交通灯控制系统多数由单片机或PLC实现,本文介绍的是基于EDA技术设计交通灯系统的一种方案。
EDA技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,应用VHDL的数字电路实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。
本设计就是针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。
VHDL(即超高速集成电路硬件描述语言)是随着可编程逻辑器件(PLD)的发展而发展起来的一种硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,是电子设计自动化(EDA)的关键技术之一。
它采用一种自上而下(top-down)的设计方法,即从系统总体要求出发,自上至下地逐步将设计内容细化,如划分为若干子模块,最后完成系统硬件的整体设计。
它支持设计库和可重复使用的元件生成,支持阶层设计,提供模块设计的创建。
VHDL设计技术对可编程专用集成电路(ASIC)的发展起着极为重要的作用。
通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用Max PlusⅡ对应用程序进行了仿真,并给出了相应的仿真结果。
在用VHDL语言进行电路设计时,应充分认识到VHDL语言的特点,从设计思想、语句运用及描述方法上等多方面对电路进行优化设计。
通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
基于vhdl交通灯课程设计
基于vhdl交通灯课程设计一、课程目标知识目标:1. 学生能理解并掌握VHDL语言的基本结构及其在交通灯控制系统中的应用;2. 学生能运用VHDL语言编写交通灯控制程序,实现对交通灯红、黄、绿灯亮灭时间的控制;3. 学生了解交通灯控制系统的工作原理,理解数字电路在实际应用中的重要性。
技能目标:1. 学生能够独立进行VHDL代码的编写,具备初步的编程能力;2. 学生通过课程设计实践,培养解决实际问题的能力,提高动手操作能力;3. 学生能够运用所学知识对交通灯控制系统进行调试和优化。
情感态度价值观目标:1. 学生在课程学习中,培养对电子信息技术专业的兴趣,激发学习热情;2. 学生通过团队合作完成课程设计,提高沟通与协作能力,增强团队意识;3. 学生认识到电子技术在现实生活中的应用,增强社会责任感和创新意识。
课程性质:本课程为电子信息技术专业高年级的专业课程设计,旨在通过实际操作,让学生将所学理论知识运用到实际项目中。
学生特点:学生已经掌握了VHDL语言的基本知识,具有一定的编程基础,对实际项目具有一定的兴趣和热情。
教学要求:结合学生特点和课程性质,注重实践操作,提高学生的动手能力和解决实际问题的能力。
在教学过程中,注重启发式教学,引导学生主动探索,培养学生的创新意识。
同时,关注学生的情感态度价值观培养,提高学生的综合素质。
通过分解课程目标,为后续教学设计和评估提供依据。
二、教学内容1. 交通灯控制系统原理介绍:讲解交通灯控制系统的工作原理,分析各个模块的功能及相互关系,使学生对交通灯控制系统有整体的认识。
相关教材章节:第三章 数字电路设计基础,第四节 交通灯控制系统原理。
2. VHDL语言基础回顾:回顾VHDL语言的基本结构、语法和常用语句,为后续编程打下基础。
相关教材章节:第二章 VHDL语言基础,全章。
3. 交通灯控制程序设计:详细讲解如何使用VHDL语言编写交通灯控制程序,包括红、黄、绿灯亮灭时间的设置。
基于VHDL的交通控制灯设计
福建农林大学计算机与信息学院信息工程类实验报告课程名称:VHDL数字系统设计姓名:系:电子信息工程专业:电子信息工程年级:2008级学号:指导教师:职称:2011 年6 月18 日实验项目列表福建农林大学计算机与信息学院信息工程类实验报告实验基于VHDL的交通控制灯设计1•实验目的和要求模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。
基本要求:(a)信号灯分别由红、黄、绿三种颜色组成,运行时,绿灯亮40秒钟,然后闪5秒,绿灯灭,黄灯亮2秒,黄灯灭,红灯亮,同时另一方向的绿灯亮,红灯亮的时间为47秒。
扩展要求:(b)增加显示功能,即每个灯亮时显示相应的秒数并倒计时。
(c)增加左转功能,即信号灯由红灯、黄灯和两个绿灯组成,左转时间为15秒,红灯亮的时间调整为62秒。
2•实验原理或方案1.总体方案的设计:交通灯控制电路主要由以下几部分构成,如图 2.1所示,有电源电路,脉冲电路,分频电路,倒计时电路,(交通灯)状态控制电路,灯显示电路。
图2.1交通灯控制电路功能模块框图在某一十字路口交叉地带,可设置东西走向的道路为主道,南北走向的道路为次道,主次车道的交通灯需按交通法则交替运行。
2.总体设计电路图交通控制灯系统总体电路图3 •主要仪器设备1、 装有Altera 公司Max+plusU 仿真软件的计算机一台。
2、 选择 FPG/器件:Cyclone 中的 EP1C12Q240C83、 EDA-VI 实验箱一台。
4、 实现数据下载的数据线,导线。
5、 开关以及LED 灯。
6、 四位八段数码显示管。
4 •操作方法与实验步骤Max+plusH 开发工具是美国Altera 公司自行设计的一种软件工具,其使用方 法如下:(1) 建立和编写一个VHDL 语言的工程文件CLK-------- INPUT—VCC --OUTPUT C1 [KZCLK G1Y1 R1 L1L2 C2 Y2 R2inst9CNT45selkDOUT45M「 0EN45ADOUT45B[7 EN45B -instlOUTPUT Y1卜 二CD”OUTPU i^^^ L2OUTPUT Y2.OUTPU ^^ R2 XSKZinst4elk DOUT02M[7 EN02A EN02B inst3diV1elk3 elkouelkou 2i ist8SELTIMEDAOUT[y0]delednum[3..O] Ainst7Dfdeeode3 8SEL[2..0]Q[7.. 0]inst6OUTPUT Ar BTPUT C——=»OUTPUTEOUTPUT Q[7..0]EN45A EN45B EN02A EN02B EN15A EN15BCNT15sAIN45A[7..0] AIN45B[7..0]AIN15A[7..0]EN15ADOUT15B[7AIN15B[7..0]EN15BAIN02[7..0]inst2CNT02selk DOUT15M[: D O ITI 7TMD7OTDOUTM[7 DOUTB[7DOUT3[3..0] DOUT4[3..O] inst5BT U C DT U O D砂K2 碱T1[3..0]SEL [2.DOUT2[3..0]首先启动Max+plusU系统,启动后系统进入主菜单画面。
基于VHDL的交通灯控制器的设计和实现
基于VHDL语言的交通灯控制器设计与实现摘要 VHDL是Very High Speed Integrated Circuit Hardware Description Language 的缩写,意思是超高速集成电路硬件描述语言。
对于复杂的数字系统的设计,它有独特的作用。
它的硬件描述能力强,能轻易的描述出硬件的结构和功能。
这种语言的应用至少意味着两种重大的改变:电路的设计可以通过文字描述的方式完成;电子电路可以当作文件一样来存储。
随着现代技术的发展,这种语言的效益与作用日益明显,每年均能够以超过30%的速度快速成长。
交通灯控制系统通常要实现自动控制红绿灯的变化,基于FPGA设计的交通灯控制系统电路简单、可靠性好。
本系统可控制2个路口的红、黄、绿三盏交通灯。
对于Max+PlusⅡ开发工具,它是美国Altera公司自行设计的一种CAE软件工具。
他具有全面的逻辑设计能力,设计者可以自由组合文本、图形和波形输入法,建立起层次化的单器件或多器件设计。
利用该工具配备的编辑、编译、仿真、综合、芯片编程等功能,将设计的电路图或电路描述程序变成基本的逻辑单元写入到可编程芯片中(如CPLD、FPGA),做成ASIC芯片。
仿真实验结果表明了该编解码器的正确性和合理性。
关键词:交通灯;控制器;VHDL;MAX+PlusⅡAbstract VHDL is the Very Hight Speed Integrated Circuit Hardware Description Language acronym,meaning that high-speed integrated circuit hardware description language.For complex digital system design,it has a unique role.Its hardware descirption ability,can easily describe the structure and funtion of the hardware.The application of this language implies that at least two kinds of major changes:the design of the circuit can actually be completed by the manner described in the text;electronic circuits can be used as to store the same files.With modern technology,the benefits and role of this language has become more obvious every year to more than 30% of the rate of rapid growth.Traffic light control system is usually to achieve the automatic trafffic light changes,FPGA-based design of a traffic light control system circuit is simplem,and good reliability.The system can control two junctions of red,yellow,green,three traffic lights.For theMax-Plus II development tool,it is United States Altera’s own design of a CAE software tools.It has a comprehensive logic design capabilities,designers can freely mix text,graphics,and waveform input method,set up hierarchical design of a single device or multiple devices.The use of the tool is equipped with the editing,compiling,simulation,synthesis,chip programming features such as the design of the circuit or circuit described procedure into the basic logic unit is written into the programmable chip(eg,CPLD,FPGA),made of ASIC chips.The simulation results show that the correct codec and rationality.Keywords:traffic light;controller,VHDL,MAX+PlusII目录1 引言 (1)2 课题背景及相关技术 (2)2.1 Max+plusII简介 (2)2.2 VHDL语言简介 (3)2.3 VHDL设计的优点与设计方法 (5)3交通灯控制器分析 (7)3.1 分频器 (7)3.2 状态机 (8)4交通灯控制器的VHDL设计 (9)4.1程序流程图 (9)4.2交通灯顶层文件和管脚分配 (10)4.3分频器和状态机的图示符号 (11)4.4仿真波形图 (12)附录 (13)结束语 (17)参考文献 (18)1引言在交通发达的当代,交通灯控制器无疑是最实用的的工具。
EDA实验报告:基于VHDL语言的交通灯控制系统设计与实现
图为k1=0时的输出状态s1,输出恒为011110。即亮灯为R1,y2。保持时间1S。
(k2=0)
上图为k2=0时的输出状态s2,输出恒为101011。即亮灯为G1,R2。保持时间2S。
(k3=0)
上图为k3=0时的输出状态s3,输出恒为110011。即亮灯为R1,G2。保持时间1S。
四、小结及心得体会
else
if counter<5 then
next_state<=s3;
else
next_state<=s0;
end if;
end if;
end if;
end if;
end if;
end case;
end process;
ouput:process(current_state)
begin ——显示程序
begin
u1: jiaotongdeng port map(
clk=>clki,
k0=>k0,
k1=>k1,
k2=>k2,
k3=>k3,
r1=>r1,r2=>r2,g1=>g1,g2=>g2,y1=>y1,y2=>y2
);
u2: div port map(clk=>clk1,clk_out=>clki);
end if;
end if;
end if;
when s3=>
if k0='0' then
next_state<=s0;
else
if k1='0' then
next_state<=s1;
基于VHDL的交通灯控制器的设计
基于VHDL的交通灯控制器的设计一、设计目的1、掌握计数器、分频器、译码器的工作原理和设计方法;2、掌握数码管的动态扫描译码显示的工作原理和设计方法;3、掌握交通灯控制器的设计方法;4、掌握在EDA开发软件QuartusII环境下基于FPGA/CPLD的数字系统设计方法,掌握该环境下系统的功能仿真、时序仿真、管脚锁定和芯片下载的方法。
二、概述在城市的的十字路口处都设置有交通信号灯控制系统,这个系统由绿、黄、红信号灯指挥十字路口车辆和行人的正常通行。
其示意图如下所示:要支道主要干道S主要干道次要支道三、设计任务与要求设计一个主要干道和次要支道交叉路口处的交通信号灯控制器,其技术要求如下:1、要求主要干道和次要支道上各具有绿、黄、红三色信号灯,用来指示车辆的允许通行或禁止通行,同时设有计时、译码及显示电路,显示定时器的定时状态。
2、如果只有一个方向有车时,则保持该方向畅通;当两个方向都有车时,主要干道和次要支道交替通行,但主要干道通行的时间要比次要支道长一些。
设主要干道每次通行的时间为60秒,即主要干道每次绿灯亮的时间为60秒;次要支道上每次通行时间为30秒,即次要支道上绿灯亮的时间为30秒。
3、要求主要干道或是次要支道上绿灯亮足规定的时间后,要求黄灯先亮5秒钟后红灯才能亮,然后才能交换通行车道。
四、系统框图及组成系统主要由控制器和处理器两部分组成,控制器接受外部系统时钟信号。
处理器由定时器和译码显示器组成。
定时器能向控制器发出5秒、30秒和60秒的定时信号,译码器在控制器的控制下,改变交通灯的信号。
根据上述要求画出系统框图如下:图中:R:主要干道传感器来的信号,高电平表示有车,低电平表示设车。
S:次要支道传感器来的信号,高电平表示有车,低电平表示设车。
T L:主要干道绿灯亮的时间间隔为60秒,即主要干道车辆通行的时间为60秒,定时时间到时,T L=1,否则,T L=0。
T S:次要支道绿灯亮的时间间隔为30秒,即次要支道车辆通行的时间为30秒,定时时间到时,Ts=1,否则,T S=0。
基于VHDL语言的交通信号灯设计
基于VHDL语言的交通信号灯设计交通信号灯的设计是交通管理中非常重要的一环,通过合理的交通信号灯设计,可以提高道路交通的效率,并保证交通的安全性。
在本文中,将基于VHDL语言设计一个简单的交通信号灯系统,对信号灯进行控制。
首先,我们需要了解交通信号灯的基本原理。
一般情况下,交通信号灯通常分为红灯、黄灯和绿灯三个状态。
每个状态的时间长度可以根据实际情况进行调整。
在设计中,我们将考虑两个十字路口,每个十字路口设置一个交通信号灯。
接下来,我们将使用VHDL语言进行交通信号灯的设计。
首先定义一个信号类型,表示交通灯的三种状态:```vhdltype traffic_light_state is (red, yellow, green);```然后,定义信号灯实体,包括输入信号和输出信号:```vhdlentity traffic_light isportclk: in std_logic;reset: in std_logic;north_south_light: out traffic_light_state;east_west_light: out traffic_light_stateend traffic_light;```在实体中,我们使用了时钟clk和复位信号reset,以确保交通灯的状态按照预期进行转换。
north_south_light和east_west_light是输出信号,表示两个十字路口的交通信号灯状态。
接下来,我们定义信号灯行为。
在时钟上升沿或复位信号为高时,交通灯的状态会发生变化。
我们可以使用一个计数器和状态机来实现交通灯的控制。
当计数器达到一定值时,状态机将更新信号灯的状态。
```vhdlarchitecture behav of traffic_light issignal state: traffic_light_state := red;beginprocess(clk, reset)beginif reset = '1' thencounter <= 0;state <= red;elsif rising_edge(clk) thencounter <= counter + 1;case state iswhen red =>state <= green;counter <= 0;end if;when green =>state <= yellow;counter <= 0;end if;when yellow =>state <= red;counter <= 0;end if;end case;end if;end process;north_south_light <= state; east_west_light <= state; end behav;```最后,我们需要在顶层模块中实例化交通信号灯实体,并提供时钟和复位信号。
基于VHDL的交通灯设计
交通灯控制器的VHDL的设计1 设计任务及要求模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。
要求:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。
支干道主干道图1 路口交通管理示意图2 设计说明(1)第一模块:clk时钟秒脉冲发生电路在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。
因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
模块说明:系统输入信号:clk: 由外接信号发生器提供256的时钟信号;系统输出信号:full:产生每秒一个脉冲的信号;(2)第二模块:计数秒数选择电路计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。
模块说明:系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:tm:产生显示电路状态转换信号tl:倒计数值秒数个位变化控制信号th:倒计数值秒数十位变化控制信号(3)第三模块:红绿灯状态转换电路本电路负责红绿灯的转换。
模块说明:系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号;tm: 接收计数秒数选择电路状态转换信号;系统输出信号:comb_out: 负责红绿灯的状态显示。
(4)第四模块:时间显示电路本电路负责红绿灯的计数时间的显示。
模块说明:系统输入信号:tl:倒计数值秒数个位变化控制信号;th:倒计数值秒数十位变化控制信号;系统输出信号:led7s1: 负责红绿灯的显示秒数个位。
led7s2 负责红绿灯的显示秒数十位。
3 设计结果3.1 原理图图2 原理图3.2 信号表clk:系统时钟;led7s1:秒数个位;led7s2:秒数十位;comb_out:红绿灯状态;图3 信号表3.3仿真结果图4 仿真结果3.4 电路图图5 原理图3.5 程序清单LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY tra_signal ISPORT (clk:in std_logic;led7s1:out std_logic_vector(6 downto 0);led7s2:out std_logic_vector(6 downto 0);comb_out:out std_logic_vector(5 downto 0));END;ARCHITECTURE one OF tra_signal ISTYPE dm IS (s0,s1,s2,s3);SIgnal cur_state,next_state:dm;SIGNAL full :STD_LOGIC;SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL th :STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL tm :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINP_REG: PROCESS(clk)V ARIABLE cnt8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF clk'EVENT AND clk ='1' THENIF cnt8 = "11111111" THENcnt8:="01111111";full <='1';ELSE cnt8 := cnt8+1;full <= '0';END IF;END IF;END PROCESS P_REG;PROCESS(full)BEGINIF full'EVENT AND full = '1' THENIF count < "1000011" THENcount<= count + 1;ELSE count <= "0000000";END IF;END IF;END PROCESS;REG:PROCESS( full,cur_state)BEGINIF full'EVENT AND full = '1' THENcur_state <= next_state;END IF;END PROCESS;COM:PROCESS(cur_state, count)BEGINCASE cur_state ISWHEN s0 => comb_out <= "001100"; tm <= 39-count; IF count = 39 THEN next_state <= s1;ELSE next_state <= s0;END IF;WHEN s1 => comb_out <= "010100"; tm <= 43-count; IF count = 43 THEN next_state <= s2;ELSE next_state <= s1;END IF;WHEN s2 => comb_out <= "100010";tm <= 63-count; IF count = 63 THEN next_state <= s3;ELSE next_state <= s2;END IF;WHEN s3 => comb_out <= "100001";tm <= 67-count; IF count = 67 THEN next_state <= s0;ELSE next_state <= s3;END IF;END CASE;END PROCESS;PROCESS(tm)BEGINIF tm >= 30 THEN th <= "11";tl <= tm-30;ELSIF tm >= 20 THEN th <= "10";tl <= tm-20;ELSIF tm >= 10 THEN th <= "01";tl <= tm-10; ELSE th <= "00";tl <= tm;END IF;END PROCESS;process(th,tl)BEGINCASE th ISWHEN "00" => led7s1 <= "0111111";WHEN "01" => led7s1 <= "0000110";WHEN "10" => led7s1 <= "1011011";WHEN "11" => led7s1 <= "1001111";WHEN others => null;END CASE;CASE tl ISWHEN "0000000" => led7s2 <= "0111111";WHEN "0000001" => led7s2 <= "0000110";WHEN "0000010" => led7s2 <= "1011011";WHEN "0000011" => led7s2 <= "1001111";WHEN "0000100" => led7s2 <= "1100110";WHEN "0000101" => led7s2 <= "1101101";WHEN "0000110" => led7s2 <= "1111101";WHEN "0000111" => led7s2 <= "0000111";WHEN "0001000" => led7s2 <= "1111111";WHEN "0001001" => led7s2 <= "1101111";WHEN others => null;END CASE;END PROCESS;END;4 实验总结通过这次课程设计,我进一步加深了对电子设计自动化的了解。
基于VHDL语言的交通灯设计DEA
交通信号控制器的的设计1.设计任务模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿作为交通信号灯,设计一个交通信号灯控制器,示意图如图1-1所示。
要求:(1) 交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2) 交通灯红变绿是直接进行的,没有间隔时间;(3) 主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4) 在任意时间,显示每个状态到该状态结束所需的时间。
支干道图1-1 路口交通管理示意图表1-1 交通信号灯的4种状态2.设计要求采用语言编写程序,并在工具平台中进行开发,下载到实验箱进行验证。
编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果与心得体会。
3.设计方案信号灯输出图3-1 交通信号灯控制器程序原理框图进程将信号分频后产生1秒信号,然后构成两个带有预置数功能的十进制计数器,并产生允许十位计数器计数的控制信号。
状态寄存器实现状态转换和产生状态转换的控制信号,下个模块产生次态信号和信号灯输出信号,以与每一个状态的时间值。
经过五个模块的处理,使时间计数、红绿灯显示能够正常运行。
程序原理图如图3-1所示。
4.各模块具体设计4.1顶层文件的设计顶层文件的原理图可以依据系统的框图进行,由控制模块、计时模块、译码驱动模块、显示模块和分频模块五部分组成,其顶层原理图文件如图3-1所示。
图4-1交通灯顶层文件原理图顶层模块的程序如下:;1164;;;(1 ;(2 0);(6 0);(2 0);(7 0));;分频器元件的例化(1 ;);;数码显示的元件例化(1 ;(2 0);(7 0);(6 0);(2 0);译码驱动的元件例化(;(2 0);(7 0));;计时元件的例化(;(2 0);(7 0));;控制模块的元件例化(;(7 0);(2 0);(2 0);;(7 0);(7 0);(2 0);U1 ( 名字关联方式赋值1>1K,>);U2 (>,>,>,>,>M,>S);U3 (>M,>S,>,>,>,>);U4 (1>1K,>,>,>,>,>,>,>M);U5 (>,>S,>,>M); ;4.2 控制模块的设计控制的模块根据外部输入信号M20和计时模块的输入信号,产生系统的状态机,控制其他部分协调工作。
基于VHDL的交通灯控制系统的设计
摘要摘要EDA技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,应用VHDL的数字电路实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。
本设计就是针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。
通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用Quartus Ⅱ对应用程序进行了仿真,并给出了相应的仿真结果。
通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
关键词:交通信号灯;VHDL;仿真ABSTRACTABSTRACTOne important characteristic of the EDA is that the design documents should be completed by the HDL, the digital circuit experiment utilized very-high-speed integrated circuit hardware description language(VHDL) may reduce the difficulties of digital system designing, and it is widely used by electronic designer now. Aiming at the design problem of traffic light controller, this paper puts forward a hardware realization method of traffic light system with VHDL. By analyzing the architecture of system, it gives the program of each module with VHDL using hierarchical design means. It also gives the simulation results by QuartusⅡ. Optimizes the design through the electric circuit, may use the scale smaller programmable logic chip, thus reduces the system cost.Key word: Street-traffic control lights; VHDL; Simulation目录第1章引言 (1)第2章EDA技术概述 (2)2.1 EDA技术及其发展 (2)2.2 EDA与传统电子设计方法的比较 (2)2.3 EDA的工程设计流程 (2)第3章可编程技术简介 (4)3.1 可编程逻辑器件概述 (4)3.2 FPGA/CPLD概述 (4)3.3 硬件描述语言介绍 (5)3.4 选择VHDL硬件描述语言设计的优势 (6)3.5 软件开发工具Quartus II 简介 (6)第4章交通灯控制系统的设计 (8)4.1 系统功能分析 (8)4.2 系统结构设计 (9)4.3系统程序实现与仿真分析 (10)4.3.1 时钟脉冲发生电路 (10)4.3.2 计数秒数选择电路 (12)4.3.3 倒计时控制电路 (15)4.3.4 红绿灯信号控制电路 (19)4.3.5 建立程序包 (22)4.3.6 连接各个模块 (23)4.3.7 状态机的优势 (24)结束语 (26)参考文献 (27)致谢 (28)附录 (29)1.时钟发生电路程序代码 (29)2.计数秒数选择电路程序代码 (31)3.倒计时控制电路程序代码 (32)4.红绿灯信号控制电路程序代码 (34)5.连接各个模块的程序代码 (38)外文资料原文 ................................................................................... 错误!未定义书签。
基于vhdl交通灯信号控制器设计说明书
本科生毕业论文(设计)题目: 基于VHDL 的交通灯信号控制器设计系 部 电子信息工程学院 学科门类 工学 专 业 电子信息工程 学 号姓 名指导教师2012年 5 月 22 日装订线基于VHDL的交通灯信号控制器的设计摘要传统的交通灯控制系统多数由单片机或PLC实现,本文介绍的是基于EDA 技术设计交通灯系统的一种思路和方法。
通过用数字信号自动控制十字路口交通灯状态转换的方法,指挥车辆和行人安全通行,实现十字路口交通管理的自动化。
本设计利用VHDL语言来实现交通灯控制器。
通过对系统进行结构分析,采用自顶向下的层次化设计方法,给出了各个模块的VHDL程序,并且利用Quartus Ⅱ对应用程序进行了仿真,得出了相应的仿真结果。
在用VHDL语言进行电路设计时,应充分认识到VHDL语言的特点,从设计思想、语句运用及描述方法上等多方面对电路进行优化设计。
通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
关键词:交通信号灯VHDL 仿真ABSTRACTMost traditional traffic light control system implemented by a single-chip computer or PLC, this article describes the design of a traffic light system is based on EDA technology ideas and methods.By using digital methods of signal control intersection traffic signal state transition, command vehicles and pedestrians safe passage, implementation of intersection traffic management automation.Design and implementation of traffic light controller with VHDL language.Through the system for structural analysis, using top-down hierarchical design method, gives a VHDL program modules, and applications using Quartus II simulation, have come to the corresponding simulation results.Circuit design with VHDL language, should be fully aware of the features of VHDL language, from the design, use statement, and description of the superior aspects of optimized circuit design.Through optimization design of circuits, programmable logic chip can use smaller, thus reducing system costs.Keywords: traffic light VHDL simulation目录一前言 (1)1.1研究背景 (1)1.2 研究目的 (1)二 EDA技术与VHDL语言 (3)2.1EDA技术及其发展 (3)2.2 EDA与传统电子设计方法的比较及优点 (4)2.3VHDL系统概述 (5)三交通灯系统的设计 (7)3.1 红绿灯交通信号系统功能描述 (7)3.2系统的模块设计 (8)3.2.1 时钟脉冲发生电路 (8)3.2.2 计数秒数选择电路 (9)3.2.3 倒计时控制电路 (10)3.2.4 红绿灯信号控制电路 (11)3.2.5 交通灯系统描述 (12)四总结 (15)参考文献 (16)附录 (17)一前言1.1 研究背景自从1858年英国人发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故起到了显著的效果。
基于VHDL交通信号灯控制器
《PLD与现代传感技术应用》课程论文基于VHDL的交通信号灯的设计学院:电信学院专业:控制工程姓名:王晋学号:102430111356基于VHDL的交通信号灯的设计王晋(辽宁科技大学电信学院,电信2010)摘要:交通灯控制系统在城市交通监管中起着极其重要的作用。
应用VHDL语言,在Altera公司的QuartusII软件环境下,通过模块化编程完成了灯亮时间可调的交通灯控制系统设计, 并进行了逻辑综合、仿真, 系统的软件仿真测试结果满足了设计要求,达到了预期的效果。
由于设计采EDA技术,不但大大缩短了开发研制周期, 提高了设计效率,而且使系统具有设计灵活,实现简单, 性能稳定的特点。
关键词:交通灯控制; FPGA; VH DL;仿真0 引言交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。
目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的, 在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。
本文在EDA 技术的基础上,利用FPGA 的相关知识设计了交通灯控制系统,可以根据实际情况对灯亮时间进行自由调整,整个设计系统通过Quartus I I软件进行了模拟仿真,并可以下载到FPGA 器件中进行硬件的调试, 验证其设计的交通信号灯控制电路预定的功能。
1 VHDL的特点随着电子技术的发展,数字系统的设计正朝高速度、大容量、小体积的方向发展,传统的自底而上的设计方法已难以适应形势。
EDA ( Electronic Design Automation)技术的应运而生,使传统的电子系统设计发生了根本的变革。
EDA 技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL(Very Hieh Speed Integrated Circuit Hardware DescriptionLanguage)为系统逻辑描述手段自顶而下地逐层完成相应的描述、综合、优化、仿真与验证,直至生成器件。
基于VHDL状态机的交通灯控制器设计
山西电子技术2010年第1期软件技术 收稿日期:2009-09-29作者简介:李春雨(19802),男,河南南阳人,大学本科,主要从事嵌入式技术研究。
文章编号:167424578(2010)0120054203基于VHDL 状态机的交通灯控制器设计李春雨,高 原(安阳工学院计算机科学与信息工程系,河南安阳455000)摘 要:用VHDL 语言设计交通灯控制器,并利用Quartus II 软件平台对设计系统进行仿真、编译,并下载到FPG A /CP LD 可编程逻辑器件中。
由于生成的是集成化的数字电路,没有传统设计中的接线问题,所以故障率低、可靠性高。
由于采用了E DA 技术,所以大大缩短了开发研制周期,提高了设计效率,使系统具有设计灵活,实现简单,性能稳定的特点。
关键词:交通灯控制器;FPG A;VHDL 中图分类号:TP312 文献标识码:A0 引言交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。
本文在VHDL 状态机的基础上,利用FPG A 的相关知识设计了交通灯控制系统,可以根据实际情况对灯亮时间进行自由调整,整个设计系统通过Quartus II 软件平台进行了模拟仿真,并下载到FPG A 器件中进行硬件的调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。
1 设计要求有一条主干道和一条支干道的汇合点形成的十字路口,为确保车辆安全,迅速通行,在干道和支道的入口设置了红、绿(包括直行和左拐)、黄3色信号灯(如图1所示)。
图1 十字路口交通灯示意图设计要求:(1)A 方向和B 方向各设红(R )、黄(Y )、绿(G )、和左拐(L )四盏指示灯;(2)四种灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来;(3)主、支干道交替通行,假设B 方向是主干道,车流量大,因此B 方向通行的时间应比A 方向长一些。
B 方向每次放行40秒,A 方向每次放行30秒,在每次亮绿灯、左拐灯与红灯的转换过程中,亮5秒的黄灯作为过渡;(4)两个方向各种灯亮的时间应该能够进行非常方便的设计和修改;(5)上电复位后,主干道先通行。
基于VHDL的交通灯控制器
本科毕业设计(论文)基于VHDL的交通灯控制器王倩燕山大学2012年6月本科毕业设计(论文)基于VHDL的交通灯控制器学院(系):答辩日期:燕山大学毕业论文任务书摘要摘要交通信号灯控制器是数字电路的经典问题, 通常的设计方法基于中、小规模集成电路进行, 电路元件多、接线复杂、故障率高。
大规模集成电路的发展、EDA 技术的出现, 使数字电路的设计进入了一个崭新阶段。
交通灯控制系统通常需要实现控制十字路口红绿灯变化的功能,基于VHDL语言设计的交通灯控制系统具有电路简单、可靠性强、运算速度高的特点。
利用MAX+PLUS II软件平台对设计系统进行仿真,结果表明系统能够自动控制交通灯转变。
本系统采用Altera公司生产的FPGA为中心器件来设计交通灯控制器。
系统工作时,绿灯、黄灯、红灯循环点亮,数码管以倒计时的方式显示红、绿、黄灯剩余的时间。
其中绿灯、红灯、黄灯持续的时间分别为20s、25s 和5s。
当系统出现故障时,交通系统复位。
本系统实用性强、操作简单、扩展功能强。
关键词EDA;交通灯控制器;VHDL;MAX+PLUS II;模拟仿真燕山大学本科生毕业设计(论文)AbstractTraffic light controller is a classical case in digital circuits design. In the conventional design method based on middle or small scale integrated circuit(IC), there are too many elements in the circuit and connections are complicated, so many faults are prone to happen. Based on large scale IC and Electrical Design Automation(EDA) technique.The traffic 1ight control system usually needs to achieve control the traffic 1ights change of crossroads. The traffic lights control system based on VHDL are simple and reliable, with high speed operation characters. Then, using MAX+PLUS II software platform process the design files and simulation. The results show that the system can control the traffic lights change.The system uses Altera FPGA as centric devices to design the traffic signal controller. When system work, green, yellow, red light, circular lamp with digital tube display the rest of time of red, green, yellow lights. The duration of the green, red and yellow lights are 20s and 5s 25s. Special vehicles drive priority in an emergency situation. controller restore the original state and continue to the normal operation. The system is practical, simple and easy to extensions.Keywords EDA;traffic light controller;VHDL;MAX+PLUS II;simulation目录摘要 (I)Abstract ................................................................................................................ I I 第1章绪论 (1)1.1课题背景 (1)1.1.1 EDA概述 (6)1.1.2 FPGA概述 (6)1.2国内外交通灯的发展 (3)1.3交通控制的目的和作用 (5)1.4我国城市交通特点分析 (5)1.4.1 人的交通素质 (6)1.4.2 城市道路状况 (6)1.4.3 我国城市交通的特殊性 (6)1.5课题的主要内容 (7)1.6论文的章节安排 (7)第2章VHDL语言和MAX+PLUS II开发系统概述 (8)2.1VHDL系统设计的特点 (8)2.2VHDL语句的描述 (9)2.2.1 实体 (9)2.2.2 结构体 (9)2.2.3 块、子程序和进程 (10)2.2.4 库和程序包 (12)2.2.5 默认配置 (12)2.3VHDL最基本的描述方法 (13)2.3.1 结构体的行为描述法 (13)2.3.2结构体的数据流描述法 (13)2.3.3结构体的结构化描述法................................. 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《PLD与现代传感技术应用》课程论文基于VHDL的交通信号灯的设计学院:电信学院专业:控制工程姓名:王晋学号:102430111356基于VHDL的交通信号灯的设计王晋(辽宁科技大学电信学院,电信2010)摘要:交通灯控制系统在城市交通监管中起着极其重要的作用。
应用VHDL语言,在Altera公司的QuartusII软件环境下,通过模块化编程完成了灯亮时间可调的交通灯控制系统设计, 并进行了逻辑综合、仿真, 系统的软件仿真测试结果满足了设计要求,达到了预期的效果。
由于设计采EDA技术,不但大大缩短了开发研制周期, 提高了设计效率,而且使系统具有设计灵活,实现简单, 性能稳定的特点。
关键词:交通灯控制; FPGA; VH DL;仿真0 引言交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。
目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的, 在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。
本文在EDA 技术的基础上,利用FPGA 的相关知识设计了交通灯控制系统,可以根据实际情况对灯亮时间进行自由调整,整个设计系统通过Quartus I I软件进行了模拟仿真,并可以下载到FPGA 器件中进行硬件的调试, 验证其设计的交通信号灯控制电路预定的功能。
1 VHDL的特点随着电子技术的发展,数字系统的设计正朝高速度、大容量、小体积的方向发展,传统的自底而上的设计方法已难以适应形势。
EDA ( Electronic Design Automation)技术的应运而生,使传统的电子系统设计发生了根本的变革。
EDA 技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL(Very Hieh Speed Integrated Circuit Hardware DescriptionLanguage)为系统逻辑描述手段自顶而下地逐层完成相应的描述、综合、优化、仿真与验证,直至生成器件。
VHDL 语言是目前应用于数字系统仿真最为实用的语言之一。
VHDL 语言最早由美国国防部提出。
用VHDL 语言进行数字逻辑电路和数字系统的设计,是电子电路设计方法上的一次革命性变革。
与传统设计方法相比,VHDL 描述电路行为的算法有很多优点:(1)设计层次较高、用于较复杂的计算时,能尽早发现存在的问题,缩短设计周期;(2)独立实现 ,修改方便 ,系统硬件描述能力强; (3)可读性好 ,有利于交流 ,适合于文档保存; (4)VHDL 语言标准、 规范、 移植性强;(5)VHDL 类型众多而且支持用户自定义类型 ,支持自顶而下的设计方法和 多种电路的设计。
2 交通灯设计说明启动交通灯首先将开关 rest 由低电平状态置为高电平状态(复位信号,低电平时有效),则系统就会进入稳定的工作状态。
分load0和load1两路交通灯。
初始状态为load0绿灯亮,load1红灯亮。
30 秒后 , load0和load1均变黄 ,持续5秒后, load0为红灯亮 , load1为绿亮。
30 秒后 , load0和load1均变黄 ,持续5秒,如此交替循环。
3 交通灯设计思路框图图1 交通灯设计框图Rest 信号由低电平置为高电平交,交通灯进入启动状态load0绿灯亮load1红灯亮Load0、load1均黄灯亮load0红灯亮load1绿灯亮load0、load1均黄灯亮持续30秒持续5秒持续5秒持续30秒4 软件流程图及程序根据交通灯信号控制的要求,可把它分解为定时器和控制器两部分。
CLK:时钟脉冲; rest:复位信号,低电平有效。
r0:road0红灯;y0:road0黄灯;g0:road0绿灯。
r1:road1红灯;y1:road1黄灯;g1:road1绿灯。
(如图1所示) 。
主控制电路设计程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;use ieee.std_logic_arith.all;ENTITY fz ISPORT( clk : IN STD_LOGIC;rest : in std_logic;r0,y0,g0,r1,y1,g1: out std_logic);END ENTITY fz;ARCHITECTURE behavioral OF fz ISconstant yellow_time : integer:=5;constant green_time : integer:=30;constant red_time : integer:=30;signal p,f : integer range 0 to 3;signal clk_500 :std_logic;BEGINtemp1: process(clk)variable cnt1 :integer range 0 to 2;variable cnt2 :integer range 0 to 3;BEGINif clk'event and clk='1' thenif cnt1=2 thencnt1:=0;if cnt2=3 thencnt2:=0;clk_500<=not clk_500;elsecnt2:=cnt2 + 1;end if;elsecnt1:=cnt1+1;end if ;end if ;end process temp1; --当clk周期为10ns时,分频后200*250*2,周期为1s temp2: process( clk_500)variable load0,load1:integer;beginif rest='0' thenf<=0;load0:=green_time;load1:=red_time;r0<='0';y0<='0';g0<='1';r1<='1';y1<='0';g1<='0';elsif clk_500'event and clk_500='1' thencase f iswhen 0=>if load0=0 thenload0:=yellow_time;f<=1;elseload0:=load0-1; --0路绿灯时间,循环等待r0<='0';y0<='0';g0<='1';--0路绿灯r1<='1';y1<='0';g1<='0';--1路红灯end if;when 1=>if load0=0 thenload0:=green_time;f<=2;elseload0:=load0-1; --黄灯时间r0<='0';y0<='1';g0<='0';--0路黄灯r1<='0';y1<='1';g1<='0';--1路黄灯end if;when 2=>if load0=0 thenload0:=yellow_time;f<=3;elseload0:=load0-1; --绿灯时间r0<='1';y0<='0';g0<='0'; --0路红灯r1<='0';y1<='0';g1<='1'; --1路绿灯end if;when 3=>if load0=0 thenload0:=green_time;f<=0;elseload0:=load0-1; --黄灯时间r0<='0';y0<='1';g0<='0'; --0路黄灯r1<='0';y1<='1';g1<='0'; --1路黄灯end if;when others=>r0<='1';y0<='0';g0<='0';r1<='1';y1<='0';g1<='0';end case;end if;end process temp2 ;end behavioral;开始判断是否 rest=1load0绿灯亮load1红灯亮是否到30秒load0、load1黄灯亮是否到5秒load0红灯亮load1绿灯亮是否到30秒否是否是否load0,load1黄灯亮是否到5秒否是是是否load0绿灯亮load1红灯亮开始计时图2 软件流程图5 程序仿真图图3 功能仿真图说明:图3为交通灯由启动到稳定的时序仿真图。
为了显示明显,时钟选择clk(分频clk_500未使用)触发信号。
交通灯程序首先Rest由低电平置高低电平。
初始状态为r0= 0,y0=0,g0=1,r1=1,y1=0,g1=0即,load0绿灯亮,load1红灯亮。
在0.3ns处rest=1, load0:=load0-1,开始自减,进入状态f=0 ,30s后load0=0时,进入状态f=1,r0= 0,y0=1,g0=0;r1=0,y1=1,g1=0即load0黄灯亮load1黄灯亮。
循环5s后进入状态f=2,r0= 1,y0=0,g0=0;r1=0,y1=0,g1=1,即load0红灯亮,load1绿灯亮。
循环30s后进入状态f=3,r0= 0,y0=1,g0=0;r1=0,y1=1,g1=0即load0黄灯亮load1黄灯亮。
循环5s后,进入状态f=0。
依此方式,循环反复运行,完成交通灯控制功能。
6 结语VHDL 语言可用简洁明确的代码描述来进行复杂逻辑的设计,使用灵活方便,易于设计结果的交流,保存和重用。
EDA 技术彻底改变了数字系统的设计方法和实现手段,借助于硬件描述语言的国际标准VHDL 和强大的EDA 工具,随着VHDL 语言使用范围的日益扩大,必将给硬件设计领域带来巨大的改革。
参考文献[1 ] 侯伯亨.VHDL 硬件描述语言与数字逻辑电路设计[M] .西安:西安电子科技大学出版社,1999.[2 ] 邢建平,曾繁泰. VHDL 程序设计教程. 3 版. 北京:清华大学出版社,2005.[3 ] Xilinx lnc. The Programmable Logic Data Book [ Z] .Xilinc lnc ,USA:1998.。