交通灯控制器VHDL设计
交通信号控制器的VHDL的设计说明

E D A 课程设计报告交通信号控制器的VHDL设计班级:2009级通信工程一班姓名:陈洁学号:2009550606指导老师:刘奇能交通信号控制器的VHDL的设计一、设计任务模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。
能达到的要求:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。
主干道图1 路口交通管理示意图表1 交通信号灯的4种状态二、设计原理1、设计目的:学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制2、设计说明(1)第一模块:clk时钟秒脉冲发生电路在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。
因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
模块说明:系统输入信号:Clk: 由外接信号发生器提供256的时钟信号;系统输出信号:full:产生每秒一个脉冲的信号;(2)第二模块:计数秒数选择电路计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。
模块说明:系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:tai:产生显示电路状态转换信号gw:倒计数值秒数个位变化控制信号sw:倒计数值秒数十位变化控制信号sgw:次倒计数值秒数个位变化控制信号;ssw:次倒计数值秒数十位变化控制信号;(3)第三模块:红绿灯状态转换电路本电路负责红绿灯的转换。
模块说明:系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号;tai: 接收计数秒数选择电路状态转换信号;系统输出信号:zhuangtai: 负责红绿灯的状态显示。
基于vhdl语言的交通信号灯设计说明书

交通信号控制器的VHDL的设计1.设计任务模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED 作为交通信号灯,设计一个交通信号灯控制器,示意图如图1-1所示。
要求:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。
支干道主干道图1-1 路口交通管理示意图表1-1 交通信号灯的4种状态2.设计要求采用VHDL语言编写程序,并在QuartusII工具平台中进行开发,下载到EDA 实验箱进行验证。
编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。
3.设计方案据输图3-1 交通信号灯控制器程序原理框图进程将CLK信号分频后产生1秒信号,然后构成两个带有预置数功能的十进制计数器,并产生允许十位计数器计数的控制信号。
状态寄存器实现状态转换和产生状态转换的控制信号,下个模块产生次态信号和信号灯输出信号,以及每一个状态的时间值。
经过五个模块的处理,使时间计数、红绿灯显示能够正常运行。
程序原理图如图3-1所示。
4.各模块具体设计4.1顶层文件的设计顶层文件的原理图可以依据系统的框图进行,由控制模块JTD_CTRL、计时模块JTD_TIME、译码驱动模块JTD_LIGHT、显示模块JTD_DIS和分频模块JTD_FQU 五部分组成,其顶层原理图文件如图3-1所示。
图4-1交通灯顶层文件原理图顶层模块的程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TRAFFIC ISPORT(CLK1K,CLR:IN STD_LOGIC;M:IN STD_LOGIC_VECTOR(2 DOWNTO 0);LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);ABL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END TRAFFIC;ARCHITECTURE BEHA VE OF TRAFFIC ISCOMPONENT JTD_FQU IS --分频器元件的例化PORT(CLK1K:IN STD_LOGIC;CLK:OUT STD_LOGIC);END COMPONENT;COMPONENT JTD_DIS IS --数码显示的元件例化PORT(CLK1K,CLK,CLR:IN STD_LOGIC;M:IN STD_LOGIC_VECTOR(2 DOWNTO 0);AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0);LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT JTD_LIGHT IS --译码驱动的元件例化PORT(CLR:IN STD_LOGIC;M,S:IN STD_LOGIC_VECTOR(2 DOWNTO 0);ABL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;COMPONENT JTD_TIME IS --计时元件的例化PORT(CLK,CLR:IN STD_LOGIC;M,S:IN STD_LOGIC_VECTOR(2 DOWNTO 0);AT,BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;COMPONENT JTD_CTRL IS --控制模块的元件例化PORT(CLK,CLR:IN STD_LOGIC;AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0);M:IN STD_LOGIC_VECTOR(2 DOWNTO 0);S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;SIGNAL CLK:STD_LOGIC;SIGNAL AT:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL BT:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINU1:JTD_FQU PORT MAP( --名字关联方式赋值CLK1K=>CLK1K,CLK=>CLK);U2:JTD_TIME PORT MAP(CLR=>CLR,AT=>AT,BT=>BT,CLK=>CLK,M=>M,S=>S);U3:JTD_CTRL PORT MAP(M=>M,S=>S,CLK=>CLK,CLR=>CLR,AT=>AT,BT=>BT);U4:JTD_DIS PORT MAP(CLK1K=>CLK1K,CLK=>CLK,CLR=>CLR,AT=>AT,BT=>BT,LED=>LED,SEL=>SEL,M=>M);U5:JTD_LIGHT PORT MAP(CLR=>CLR,S=>S,ABL=>ABL,M=>M);END BEHA VE;4.2 控制模块JTD_CTRL的设计控制的模块根据外部输入信号M2~M0和计时模块JTD_TIME的输入信号,产生系统的状态机,控制其他部分协调工作。
基于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的交通灯控制器设计应用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语言的交通灯控制器设计与实现摘要 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 everyyear 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 the Max-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引言在交通发达的当代,交通灯控制器无疑是最实用的的工具。
基于vhdl交通灯课程设计

基于vhdl交通灯课程设计一、课程目标知识目标:1. 学生能理解并掌握VHDL语言的基本结构及其在交通灯控制系统中的应用;2. 学生能运用VHDL语言编写交通灯控制程序,实现对交通灯红、黄、绿灯亮灭时间的控制;3. 学生了解交通灯控制系统的工作原理,理解数字电路在实际应用中的重要性。
技能目标:1. 学生能够独立进行VHDL代码的编写,具备初步的编程能力;2. 学生通过课程设计实践,培养解决实际问题的能力,提高动手操作能力;3. 学生能够运用所学知识对交通灯控制系统进行调试和优化。
情感态度价值观目标:1. 学生在课程学习中,培养对电子信息技术专业的兴趣,激发学习热情;2. 学生通过团队合作完成课程设计,提高沟通与协作能力,增强团队意识;3. 学生认识到电子技术在现实生活中的应用,增强社会责任感和创新意识。
课程性质:本课程为电子信息技术专业高年级的专业课程设计,旨在通过实际操作,让学生将所学理论知识运用到实际项目中。
学生特点:学生已经掌握了VHDL语言的基本知识,具有一定的编程基础,对实际项目具有一定的兴趣和热情。
教学要求:结合学生特点和课程性质,注重实践操作,提高学生的动手能力和解决实际问题的能力。
在教学过程中,注重启发式教学,引导学生主动探索,培养学生的创新意识。
同时,关注学生的情感态度价值观培养,提高学生的综合素质。
通过分解课程目标,为后续教学设计和评估提供依据。
二、教学内容1. 交通灯控制系统原理介绍:讲解交通灯控制系统的工作原理,分析各个模块的功能及相互关系,使学生对交通灯控制系统有整体的认识。
相关教材章节:第三章 数字电路设计基础,第四节 交通灯控制系统原理。
2. VHDL语言基础回顾:回顾VHDL语言的基本结构、语法和常用语句,为后续编程打下基础。
相关教材章节:第二章 VHDL语言基础,全章。
3. 交通灯控制程序设计:详细讲解如何使用VHDL语言编写交通灯控制程序,包括红、黄、绿灯亮灭时间的设置。
交通灯控制器VHDL设计

情况
LIGHT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0); --
light:G1,R1,Y1,G2,R2,Y2;
Q1,Q2 : OUT INTEGER RANGE 0 TO 55);
END TRAFFIC2 ;
ARCHITECTURE behav OF TRAFFIC2 IS
亮红灯 ELSIF CLK'EVENT AND CLK='1'
THEN CASE STATE IS --states为s0时,南北方向亮绿灯,东西方向亮红灯,50s WHEN S0=> LIGHT<="100010";
T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T1=0 THEN
END IF;
--states为s3时,南北方向亮红灯,东西方向黄灯,
5s WHEN S3=> LIGHT<="010001";
T1<=T1-1;T2<=T2-1;
Q1<=T1;Q2<=T2;
IF T1=0 THEN
STATE<=S0;T1<=50;T2<=55;
END IF;
WHEN OTHERS=>STATE<=S0;T1<=50;T2<=55;--主
END IF;
--states为s2时,南北方向亮红灯,东西方向绿灯,
30s WHEN S2=> LIGHT<="010100";
T1<=T1-1;T2<=T2-1;
Q1<=T1;Q2<=T2;
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;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page 10
10
STATE<=S1;T1<=5;T2<=5; END IF; --states为s1时,南北方向亮黄灯,东西方向亮红,5s WHEN S1=> LIGHT<="001010"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T1=0 THEN STATE<=S2;T1<=35;T2<=30; END IF; --states为s2时,南北方向亮红灯,东西方向绿灯, 30s WHEN S2=> LIGHT<="010100"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T2=0 THEN STATE<=S3;T1<=5;T2<=5;
交通信号控制器VHDL设计
2014.12.7
设计构思
1.设计一个南北方向为主干道,东西方向为支干道; 2.选择一个标准时钟发生电路,为电路提供一个标准1HZ信 号; 3.(1)交通灯从绿变红时,有5秒黄灯亮的间隔时间;
(2)交通灯红变绿是直接进行的,没有间隔时间;
(3)主干道上的绿灯时间为50秒,支干道的绿灯时间为 30秒;
11
Page 11
STATE<=S3;T1<=5;T2<=5; END IF; --states为s3时,南北方向亮红灯,东西方向黄灯, 5s WHEN S3=> LIGHT<="010001"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T1=0 THEN STATE<=S0;T1<=50;T2<=55; END IF; WHEN OTHERS=>STATE<=S0;T1<=50;T2<=55;--主 干道 END CASE; END IF; END PROCESS; END behav;
12
Page 12
仿真波形
Page 13
13
总结
通过这次实训,我们在程序的功能,源程序修改以及最后 的硬件调试波形仿真中取得了更深一步的成就,通过理论 结合实际进行不断地修改、讨论。填补了我们在这一方面 的不足,当最后结果出来的时候,我们心比蜜甜,通过这 次实训,我们在实践中学会了很多在平时的实验中无法学 到得东西。将使我们在以后的工作中受益匪浅。
Page 14
14Leabharlann Page 22设计内容
交通信号控制器的VHDL源程序
交通信号控制器的仿真波形
Page 3
3
具体要求
设计一个交通信号控制器。 原理框图如下
Page 4
4
设计过程
选择我们所要制作的课程设计题目;
用Quartus Ⅱ 9.0写出交通信号控制器的VHDL源 程序代码;
将程序代码编译完成后对其波形进行仿真; 分析并验证功能仿真
Page 5
5
系统功能
用VHDL编写程序实现交通信号控制器以下功能:
(1)交通灯从绿变红时,有5秒黄灯亮的间隔时间;
(2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为50秒,支干道的绿灯时间 为30秒
Page 6
6
用VHDL编写程序实现交通信号控制器的端口控制信号。 其中, clk为标准的1HZ的时钟信号;R为复位信号;SPC 为紧急情况信号,负责紧急情况的处理,当紧急情况发 生时,南北主干道和东西支干道均显示红灯。 该程序定义了4个状态S0,S1,S2,S3。当状态为S0时,南 北方向亮绿灯,东西方向亮红灯,50s;当为状态为S1时 ,南北方向亮黄灯,东西方向亮红,5s ;当状态为S2时 ,南北方向亮红灯,东西方向绿灯,30s;当状态为S3时 ,南北方向亮红灯,东西方向黄灯,5s;程序还设计了 一个紧急信号情况,当遭遇紧急情况时,主干道和支干 道都亮红灯。
7
Page 7
程序说明
Page 8
8
VHDL设计代码
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH; ENTITY TRAFFIC2 IS PORT (CLK,R,SPC: IN STD_LOGIC; --时钟、复位、特殊 情况 LIGHT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -light:G1,R1,Y1,G2,R2,Y2; Q1,Q2 : OUT INTEGER RANGE 0 TO 55); END TRAFFIC2 ; ARCHITECTURE behav OF TRAFFIC2 IS TYPE STATES IS (S0,S1,S2,S3); --定义枚举 SIGNAL STATE : STATES ; SIGNAL T1,T2: INTEGER RANGE 0 TO 55; BEGIN Page 9
9
P1: PROCESS (CLK,STATE) BEGIN IF R='1'THEN STATE<=S0;T1<=50;T2<=55; --复位 ELSIF SPC='1' THEN LIGHT<="010010"; --特殊情况 亮红灯 ELSIF CLK'EVENT AND CLK='1' THEN CASE STATE IS --states为s0时,南北方向亮绿灯,东西方向亮红灯,50s WHEN S0=> LIGHT<="100010"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T1=0 THEN