VHDLFPGA交通灯
- 格式:doc
- 大小:64.50 KB
- 文档页数:7
EDA课程设计实验报告交通信号控制器的VHDL的设计一、设计任务及要求:设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。
要求:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。
支干道主干道图1 路口交通管理示意图表1 交通信号灯的4种状态设计要求:(1)采用VHDL语言编写程序,并在QUARTUSII工具平台中进行仿真,下载到EDA实验箱进行验证。
(2)编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。
二设计原理1、设计目的:学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制2’设计说明(1)第一模块:clk时钟秒脉冲发生电路在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。
因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
模块说明:系统输入信号:Clk: 由外接信号发生器提供256的时钟信号;系统输出信号:full:产生每秒一个脉冲的信号;(2)第二模块:计数秒数选择电路计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。
模块说明:系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:tm:产生显示电路状态转换信号tl:倒计数值秒数个位变化控制信号th:倒计数值秒数十位变化控制信号(3)第三模块:红绿灯状态转换电路本电路负责红绿灯的转换。
模块说明:系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号;tm: 接收计数秒数选择电路状态转换信号;系统输出信号:comb_out: 负责红绿灯的状态显示。
fpga交通灯课程设计一、课程目标知识目标:1. 学生能理解FPGA的基本原理和交通灯系统的功能需求。
2. 学生能掌握利用硬件描述语言(如VHDL/Verilog)设计简单的数字电路。
3. 学生能了解交通灯系统的时序逻辑设计和状态机原理。
技能目标:4. 学生能运用FPGA开发软件进行电路设计和仿真。
5. 学生能通过编程实现交通灯控制逻辑,并进行功能测试和调试。
6. 学生能分析并解决交通灯系统中可能出现的问题。
情感态度价值观目标:7. 培养学生对于电子工程和信息技术领域的兴趣,激发其创新意识和探索精神。
8. 强化学生的团队合作意识,使其能够在项目实施中有效沟通与协作。
9. 增强学生的社会责任感,使其理解技术在实际应用中对公共安全的作用。
课程性质:本课程为实践性强的设计与制作课程,结合理论知识与动手操作,旨在提升学生的实际工程能力。
学生特点:考虑到学生处于高年级,具备一定的电子电路基础和编程能力,能够理解和掌握较为复杂的逻辑设计。
教学要求:课程要求学生在理解理论知识的基础上,通过动手实践,完成具有实际应用价值的交通灯控制系统设计,注重培养学生解决实际问题的能力。
教学过程中将目标分解为具体可衡量的学习成果,以便于教学设计和最终评估。
二、教学内容1. 理论知识:- 数字电路基础:逻辑门、触发器、计数器等。
- 硬件描述语言:VHDL/Verilog基本语法和结构。
- 交通灯控制系统原理:状态机、时序逻辑设计。
- FPGA原理与设计流程:FPGA结构、配置过程、硬件描述语言到硬件的映射。
2. 实践操作:- FPGA开发环境搭建:安装与配置FPGA开发软件。
- 交通灯控制逻辑设计:编写VHDL/Verilog代码实现交通灯控制逻辑。
- 电路仿真与功能测试:使用开发软件进行电路仿真,验证设计功能。
- 硬件调试与优化:在FPGA开发板上进行实际测试,发现问题并进行优化。
3. 教学安排与进度:- 数字电路基础与硬件描述语言学习(2课时)。
《VHDL与数字系统设计》课程设计报告(2014 -- 2015 年度第1 学期)名称:VHDL与数字系统设计题目: ________ 交通灯控制器 ___________院系:电气与电子工程学院班级:_____________ 电子1301 __________学号: _______________ 06 _________学生姓名: _______________ 韩辉 ____________指导教师: ______________ 高雪莲 ___________设计周数: _______________ 2周_____________成绩: ____________________________日期: 2015年1月reset=1 时保持原状态检测时钟上升沿 计 29 秒自动跳回 0、 课程设计的目的与要求1. 设计目的(1) 熟悉MAXPLUS2/Quartus II 软件,掌握软件的 VHDL 程序输入、程序编译和程序仿真操作;(2) 学习利用VHDL 语言设计交通灯控制器电路程序。
2.设计要求 :根据设计正文提出的交通灯控制器功能,实现交通灯控制器设计。
( 1 )分析交通灯控制器的基础功能(见设计正文) ,在此基础上完善该交通灯控制器功能。
(2 )根据提出的真值表编写相应的VHDL 程序。
( 3)对编写的程序说明其实现的功能和编程思路,描述程序中出现的端口含义。
二、设计正文1.设计思路:设计一个交通灯控制器,该控制器包括两组红黄绿灯(A 组和B 组)。
它们的变化顺序采用实际红绿灯变化顺序,变化时长设置:红灯 15 秒,绿灯 10秒,黄灯 5秒。
(便于最终仿真结果 的观察)2. 交通灯控制器的源程序: libraRy ieee;use——包含库和程序包entity counter is——定义实体port( clock,reset,hold:in std_logic;——输入变量 clock,reset,holdflash:out std_logic;——输出变量 flash , numa , numb , a , bnuma,numb:out integer range 0 to 25; aR,aG,aY:out std_logic; bR,bG,bY:out std_logic); end counter;——结束实体 architecture rtl of counter is——定义结构体signal countnum:integer range 0 to 30; beginprocess(clock) beginif reset='1' then countnum<=0;elsif rising_edge(clock) thenif countnum=29 then countnum<=0; elsecountnum<=countnum+1; 在前一秒的基础上加一秒end if;end if;end process;process(clock)beginif rising_edge(clock) thenif countnum<=9 thennuma<=10-countnum; aR<='0';aG<='1';aY<='0';elsif countnum<=14 thennuma<=15-countnum;aR<='0';aG<='0';aY<='1';else numa<=30-countnum;aR<='1';aG<='0';aY<='0';end if;if countnum<=14 thennumb<=15-countnum; bR<='1';bG<='0';bY<='0';elsif countnum<=24 thennumb<=25-countnum;bR<='0';bG<='1';bY<='0';else 检测时钟上升沿A路为绿灯A 路为黄灯A 路为红灯b 路为红灯B路为绿灯nu mb<=30-co untnum; B 路为黄灯结束进程K M 电gig ch rtxti0 ]ps B 0B ; 1bR<='0'; bG<='0'; bY<='1'; end if; end if; end process; en d;三•课程设计结论与总结1.交通灯控制器的仿真波形图及其分析:图1交通灯控制道路的仿真波形图一图1为交通灯控制道路的仿真波形图,由图1分析可得以下结论:(1) 如图1中蓝色框内区域所示,当reset=1时,交通灯状态保持不变;当 reset=O 时,交通灯控制器正常运行,即道路 A 按照绿一黄一红变化,道路B 按照红一绿一黄变化。
基于FPGA的数字电子技术课程设计(以VHDL语言实现)课题:交通信号灯设计题目:1.由主干道A和支干道B的汇合点形成十字交叉路口,在交叉路口处设有红绿黄三色信号灯。
红灯亮禁止通行;绿灯亮允许通行;黄灯亮则让行驶到路口的车辆有时间停靠到禁止线外。
用两位数码管显示当前主支干道所处的状态。
红黄绿分别用R,Y,G表示。
2.主干道车辆较多,所以绿灯亮灯时间为50S;支干道亮绿灯时间设为30S。
当主干道允许通行亮绿灯时则支干道亮红灯;支干道亮绿灯时也相反。
每次由绿灯转变为红灯时,期间要亮5S的黄灯。
3.交通灯正常运行时,用四位数码管显示主干道和支干道的倒计时时间。
4.能实现系统总清0,清0后计数器由初始状态开始计数。
5.具有一定的扩展功能。
一.设计思路1.根据设计题目要求可以得出交通信号灯控制器的设计用“状态法”来实现较好,因此先划分出交通灯显示时的几个较大的状态。
设状态用S表示。
S0:主干道亮黄灯支干道亮红灯亮灯5SS1:主干道亮红灯支干道亮绿灯亮灯30SS2:主干道亮红灯支干道亮黄灯亮灯5SS3:主干道亮绿灯支干道亮红灯亮灯50S状态之间应该要能实现循环:S0=>S1=>S2=>S3=>S02.然后再考虑在每个状态下要能够实现的功能。
根据题目可知在每个状态下要能实现将交通灯的颜色变换以字母的形式显示在两位数码管上,每位各表示一条道路。
在交通灯颜色输出的同时还要能够实现计数的输出,也就是各路灯转换前剩余的时间量。
3.在实现了各个状态下的功能后就要考虑加上清0功能与紧急功能,清0也就是复位功能。
在复位时实现系统清0,并且清0后计数器从初始状态开始计时,在此将S0状态视为初始状态。
也就是清0完毕后系统进入S0状态。
课题中将紧急功能设为两条路都显示红灯,并且计数器全置0。
4.这些实现的功能都加入后就可以对所写的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引言在交通发达的当代,交通灯控制器无疑是最实用的的工具。
题目:基于VHDL状态机设计的智能交通控灯1 引言可编程器件的广泛应用,为数字系统的设计带来了极大的灵活性。
由于可编程器件可以通过软件编程对硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样快捷方便。
由于高速发展的FPGA/CPLD兼有串、并行工作方式和高速、高可靠性的特点[1],在电子系统设计中得到了广泛应用。
通常使用硬件描述语言(Hardware Description Language,HDL)进行数字电子系统设计。
目前应用广泛的硬件描述语言有:VHDL语言,Verilog HDL语言,AHDL语言。
VHDL语言由于具有强大的行为描述能力和丰富的仿真语句从而成为系统设计领域最佳的硬件描述语言。
2设计方案2.1状态机简介关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成[2]。
状态机通过响应一系列事件而“运行”。
每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。
函数返回“下一个”(也可以是同一个)节点。
这些节点中至少有一个必须是终态。
当到达终态,状态机停止。
包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型[3]。
当输入符号串,模型随即进入起始状态。
它要改变到新的状态,依赖于转换函数[4]。
在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换或状态关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态[5],等等。
有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点[6]。
状态机的工作方式是根据控制信号按照预先设定的状态进行顺序运行的,状态机是纯硬件数字系统中的顺序控制电路,因此状态机在其运行方式上类似于控制灵活和方便的CPU ,而在运行速度和工作可靠性方面都优于CPU [7]。
2.3 FPGA 主控实现方案设计结合已有的 PLC 实现和单片机应用实现的经验,并吸收两种设计的优势之处,再根据交通灯控制系统的设计要求和 FPGA 模块化功能实现,确定了以下方案,因每个方向相对的信号灯状态及倒计时显示器的显示完全一致,根据设计要求和系统所具有的功能,交通灯控制器系统框图如图 2-6 所示。
图 2-6 交通灯控制器系统框图确定的方案中, 系统具有复位功能, 能使系统重新开始计时; 在红绿灯交通信号系统中, 大多数的情况是通过自动控制的方式指挥交通的, 但为了配合高峰时段,防止交通拥挤,有时还必须使用手动控制。
为此主体包括系统复位,手动 /自动,红绿灯切换,主控模块,显示器,报警器。
具体主控部分用 FPGA 来实现。
图 2-7 交通灯通行示意图结合实现方案,主要有东西、南北、南北左拐,东西左拐,跟手动控制 5种工作方式,具体由 M2~M0设定,具体如表 2-1。
表2-1 交通灯工作方式表方式 M2(0:自动, 1:手动 M1(0:A向,1:B向M0(O:直行, 1:左拐1 0 0 02 0 0 13 0 1 04 0 1 15 1 * *当出现特殊情况时,可选择方式 1 到方式 4 中的任何一种方式,停止正常运行,进入特殊运行状态。
此时交通灯按工作方式显示,计时电路停止计时,计时时间闪烁显示。
当系统总复位时,控制电路和计时电路复位,信号灯全部熄灭。
3 各功能模块的设计与实现3.1总体设计思路3.1.1系统组成框图结合设计任务要求和确定的实现方案, 假设某个十字路口是由一条主干道和一条次干道回合而成, 在每个方向设置红绿黄 3种信号灯, 红灯亮禁止通行, 绿灯亮允许通行。
黄灯亮允许行驶中车辆有时间停考到禁止线以外。
按照自顶向下的层次化设计方法, 整个系统可分为 4个模块, 系统时序发生电路、红绿灯计数时间选择模块、定时控制电路、红绿灯信号译码电路。
其系统组成方框图如图 3-1所示。
《VHDL与数字系统设计》课程设计报告( 2014 -- 2015 年度第 1 学期)名称:VHDL与数字系统设计题目:交通灯控制器院系:电气与电子工程学院班级:电子1301学号:06学生姓名:韩辉指导教师:高雪莲设计周数:2周成绩:日期:2015年 1 月日一、课程设计的目的与要求1.设计目的(1)熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;(2)学习利用VHDL语言设计交通灯控制器电路程序。
2.设计要求:根据设计正文提出的交通灯控制器功能,实现交通灯控制器设计。
(1)分析交通灯控制器的基础功能(见设计正文),在此基础上完善该交通灯控制器功能。
(2)根据提出的真值表编写相应的VHDL程序。
(3)对编写的程序说明其实现的功能和编程思路,描述程序中出现的端口含义。
二、设计正文1.设计思路:设计一个交通灯控制器,该控制器包括两组红黄绿灯(A组和B组)。
它们的变化顺序采用实际红绿灯变化顺序,变化时长设置:红灯15秒,绿灯10秒,黄灯5秒。
(便于最终仿真结果的观察)2.交通灯控制器的源程序:libraRy ieee;use ——包含库和程序包entity counter is ——定义实体port( clock,reset,hold:in std_logic; ——输入变量clock,reset,holdflash:out std_logic; ——输出变量flash,numa,numb,a,b numa,numb:out integer range 0 to 25;aR,aG,aY:out std_logic;bR,bG,bY:out std_logic);end counter; ——结束实体architecture rtl of counter is ——定义结构体signal countnum:integer range 0 to 30;beginprocess(clock)beginif reset='1' then ——reset=1时保持原状态countnum<=0;elsif rising_edge(clock) then ——检测时钟上升沿if countnum=29 then ——计29秒自动跳回0countnum<=0;elsecountnum<=countnum+1; ——在前一秒的基础上加一秒 end if;end if;end process;process(clock)beginif rising_edge(clock) then ——检测时钟上升沿if countnum<=9 then ——A路为绿灯numa<=10-countnum;aR<='0';aG<='1';aY<='0';elsif countnum<=14 then ——A路为黄灯numa<=15-countnum;aR<='0';aG<='0';aY<='1';elsenuma<=30-countnum; ——A路为红灯aR<='1';aG<='0';aY<='0';end if;if countnum<=14 thennumb<=15-countnum; ——b路为红灯bR<='1';bG<='0';bY<='0';elsif countnum<=24 thennumb<=25-countnum; ——B路为绿灯bR<='0';bG<='1';bY<='0';elsenumb<=30-countnum; ——B路为黄灯bR<='0';bG<='0';bY<='1';end if;end if;end process; ——结束进程end;三.课程设计结论与总结1.交通灯控制器的仿真波形图及其分析:图1 交通灯控制道路的仿真波形图一图1为交通灯控制道路的仿真波形图,由图1分析可得以下结论:(1)如图1中蓝色框内区域所示,当reset=1时,交通灯状态保持不变;当reset=0时,交通灯控制器正常运行,即道路A按照绿—黄—红变化,道路B按照红—绿—黄变化。
(2)如图1中绿色直线所示,道路A的绿灯持续时间为10S,之后跳变为黄灯,黄灯持续时间为5S;道路B的红灯持续时间为15S。
符合原设计方案。
图2为交通灯控制道路的仿真波形图,由图2分析可得以下结论:上一周期道路A的5S黄灯结束后跳变为红灯,并持续15S;上一周期道路B的15S红灯结束后跳变为绿灯,并持续10S,而后又变为黄灯,持续5S。
之后的周期继续循环往复。
2.课程设计的总结与改进方案考虑到道路在偶遇突发状况的特殊情况,可以考虑在交通灯控制系统中加入特殊控制信号control,其作用为:当道路遇到突发状况时,control=1,此时要求道路A、B均为红灯;在无突发状况时,control=0,交通灯按原方案运行。
改进后的交通灯控制器的源程序如下:(红色字体为修改部分)libraRy ieee;use counter isport( clock,reset,control:in std_logic;flash:out std_logic;numa,numb:out integer range 0 to 15;aR,aG,aY:out std_logic;bR,bG,bY:out std_logic);end counter;aRchitecture rtl of counter issignal countnum:integer range 0 to 30;beginprocess(clock)beginif reset='1' thencountnum<=0;elsif rising_edge(clock) thenif control='1' thenflash<='1';elseflash<='0';if countnum=29 thencountnum<=0;elsecountnum<=countnum+1;end if;end if;end if;end process;process(clock)beginif rising_edge(clock) thenif control='1' thenaR<='1';bR<='1';aG<='0';bG<='0';aY<='0';bY<='0';elseif countnum<=9 thennuma<=10-countnum;aR<='0';aG<='1';aY<='0';elsif countnum<=14 then numa<=15-countnum; aR<='0';aG<='0';aY<='1';elsenuma<=30-countnum;aR<='1';aG<='0';aY<='0';end if;if countnum<=14 thennumb<=15-countnum;bR<='1';bG<='0';bY<='0';elsif countnum<=24 thennumb<=25-countnum;bR<='0';bG<='1';bY<='0';elsenumb<=30-countnum;bR<='0';bG<='0';bY<='1';end if;end if;end if;end process;end;改进后的交通灯控制器的仿真波形图如下:图3 改进后的交通灯控制器的仿真波形图图3为改进后的交通灯控制器的仿真波形图,由图3分析可得以下结论:当control=1时,道路A、B的交通灯均为红色。
其他结论与未改进前相同,在此不再赘述。