基于FPGA的交通灯控制器设计21674
- 格式:doc
- 大小:906.01 KB
- 文档页数:9
基于FPGA的交通灯控制器实验设计1引言计算机硬件课程是高等院校计算机科学与技术专业的必修课,这些课程比较抽象,难于理解,因此实验教学起着至关重要的作用。
学生通过实验可以对比较抽象的元器件及硬件电路加深理解。
同时一些学生对计算机硬件的学习不感兴趣,认为硬件课程用途不大。
针对这些,本文给出了基于FPGA的交通灯控制器实验项目设计,将生活中的实际应用与学生所学的硬件理论知识联系起来,让学生感到学有所用,极大程度地激发了学生对计算机硬件知识学习的兴趣,从而促进了硬件课程教学的顺利进行。
可编程器件的广泛应用,为数字系统的设计带来了极大的灵活性。
由于可编程器件可以通过软件编程对硬件的结构和工作方式进行重构,使得硬件的设计如同软件设计那样快捷方便。
通常使用硬件描述语言,进行数字电子系统设计。
用软件设计方法来完成硬件电路的设计,非常容易上手,消除了学生对硬件实验的畏惧感。
本实验使用VHDL语言进行设计,采用自顶向下的设计方法,容易让学生理解和掌握。
2实验相关技术与开发环境2.1FPGA技术FPGA(Field Programmable Gate Array)即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA的使用非常灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。
FPGA在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。
随着功耗和成本的进一步降低,FPGA还将进入更多的应用领域。
2.2QuartusII开发环境Altera的QuartusII设计软件提供一个非常容易适应特定设计所需要的完整的多平台设计环境。
它是一个可编程片上系统(SOPC)设计的综合性环境。
QuartusII软件包括FPGA设计所有阶段的解决方案。
题目 基于FPGA 的交通灯控制器的设计与实现专业 电子信息 班级 1 学号 12 姓名 张扬 主要内容、基本要求、主要参考资料等:模拟十字路口交通信号灯的工作过程,利用交通灯模块上的两组红、黄、绿LED 发光二极管作为交通信号灯,设计一个交通信号灯控制器。
设计说明:有两条公路,一条是交通主干道,另一条是支干道。
在主干道和支干道的交叉路口上,设置了红、黄、绿灯,进行交通管理,如图1所示。
支干道主干道图 1 路口交通管理示意图基本要求如下:① 交通灯从绿变红时,有4s 黄灯亮的间隔时间;② 交通灯从红变绿是直接进行的,没有间隔时间;③ 主干道的绿灯时间为20s ,支干道的绿灯时间为10s ;④ 在任意时间,显示每个状态开始到结束所需要的时间。
由此可以得出交通信号灯A ,B ,C ,D 的4种状态,如表1所示。
表 1 交通信号灯的4种状态 交通信号灯 A B C D主干道的交通灯 绿(20s ) 黄(4s ) 红(10s ) 红(4s )支干道的交通灯红红绿黄主要参考资料:【1】张洪润.FPGA/CPLD应用设计200例(上册)[M].北京:北京航空航天大学出版社,2009.【2】潘松.EDA技术实用教程(第三版)[M].北京:科学出版社,2006. 完成期限:2009年11月到2010年6月指导教师签章:专业负责人签章:2009年11月6日诚信承诺本人__________声明,本论文及其研究工作是由本人在导师指导下独立完成,论文所利用的一切资料均符合论文著作要求,且在参考文献中列出。
作者签字:年月日摘要近年来,随着社会上特别是城市中机动车保有量的不断增加,在现代城市的日常运行控制中,车辆的交通控制越来越重要。
在十字交叉路口,越来越多的使用红绿灯进行交通指挥和管理[1]。
本课题以FPGA硬件描述语言为设计手段,完成了交通信号灯控制电路的开发,其中交通信号灯控制电路的开发目的是设计一个适用于主、支干道十字交叉路口的红黄绿交通灯的控制系统,通过合理设计系统功能,使红黄绿的转换有一个准确的时间间隔和转换顺序,当然这就需要一个自动和安全的系统对红、黄、绿灯的转换进行控制。
课程设计一、设计任务要求基于FPGA的交通灯控制器设计1、总体要求:实现十字路口的交通灯有序显示2、具体要求:按照开发板上的两组红、黄、绿做为南北双向指示灯红灯亮60秒,绿灯亮55秒,黄灯亮5秒要求采用状态机实现状态切换3、附加要求:采用两组两位数码管实现时间倒计时显示二、设计思路1、总体设计方案由设计任务要求可知输入部分有:CLK时钟频率输入,可由实验板上直接提供,本设计选用1kHZ时钟频率。
输出部分有:1)东西方向和南北方向各使用3个LED显示,红黄绿各代表红黄绿灯。
2)东西方向和南北方向计时均为2位数,共需要4个LED七段数码管显示。
由于为共阴极控制,输出三个SEL0,SEL1,SEL2信号控制选择数码管显示,A,B,C,D,E,F,G信号为输出显示的内容。
3)R1,G1,Y1;R2,G2,Y2信号分别为东西南北红绿灯的输出控制信号。
总体设计软件原理图如下所示设计方案原理图:图1A对应13脚; B对应30脚;C对应15脚; D对应31脚;E对应33脚; F对应32脚;G对应35脚; R1对应4脚;R2对应5脚;Y1对应3脚;Y2对应10脚;G2对应8脚;SEL0对应14脚; SEL1对应11脚;SEL2对应12脚.CLK对应24脚;交通灯系统结构图如下所示:红黄绿红黄绿图2状态切换的状态图如下图:图2、模块设计及结果在VHDL设计中,采用自顶向下的设计思路。
顶层模块中,根据硬件设计,设置如下端口:外部时钟信号:Clk东西方向状态灯控制信号:R1,G1,Y1;南北方向状态灯控制信号:R2,G2,Y2;(1)分频模块:由于外部时钟信号clk的频率为1KHz,而实际需要的内部计时时钟频率为1Hz,需要一个分频电路。
输入端口:clk外部时钟信号输出端口:clk_out分频后信号源程序代码如下:数码管显示信号:A,B,C,D,E,F,G;数码管共阴极控制:SEL0,SEL1,SEL2;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Frequency1 isport(clk:in std_logic; --外部时钟信号clk_out:out std_logic --分频后信号);end Frequency1;architecture Frequency1_arc of Frequency1 isbeginprocess(clk)variable temp:integer range 0 to 999;beginif(clk'event and clk='1')thenif(temp=999)then --分频计数temp:=0;clk_out<='0';elsetemp:=temp+1;clk_out<='1';end if;end if;end process;end;图4(2)状态选择模块:由于共需要显示4个数字,需要循环点亮7位数码管,该模块通过输入的时钟信号,循环输出4个选择信号。
基于FPGA的交通灯控制电路设计本文介绍了一种基于FPGA的交通灯控制电路设计。
交通灯控制是城市交通管理的一个重要部分,它有助于维护交通秩序,减少交通事故,提高交通效率。
在本电路设计中,我们使用FPGA作为主控制器,并通过数码管、按钮和LED模块与外部交互。
同时,我们还采用了状态机设计方法,以实现灵活的控制逻辑和连续的动态过渡。
首先介绍了本电路设计的硬件设计。
在本设计中,我们使用了FPGA作为主控制器,数码管用于显示当前状态,按钮用于进行手动控制,LED模块用于显示当前灯颜色。
在硬件设计中,我们通过适当的寄存器和时钟模块,实现了稳定的时序控制和同步操作。
接着,我们介绍了本电路设计的软件设计。
在软件设计中,我们采用了状态机设计方法,将交通控制逻辑分为多个状态,通过状态间的转移完成交通灯的切换控制。
具体地,我们将交通灯控制状态划分为三种:绿灯、黄灯和红灯。
在每种状态下,我们通过计数器和状态转移条件来实现精确的时间控制和灯颜色的自动切换。
同时,为了提高控制的灵活性,我们设计了手动控制模式,让用户可以通过按钮手动切换交通灯状态。
最后,我们介绍了本电路设计的实现结果。
在实现过程中,我们使用了Quartus II软件进行综合、布局和验证,并将设计的电路下载到FPGA开发板上进行实验。
实验结果表明,本交通灯控制电路设计实现了稳定、灵活和精确的交通控制,能够满足不同的交通道路需求。
综上所述,本文介绍了一种基于FPGA的交通灯控制电路设计,通过硬件和软件设计,实现了稳定、灵活和精确的交通控制。
该设计可以为城市交通管理提供帮助,为交通事故和交通拥堵的缓解做出贡献。
FPGA综合设计实验报告题目基于FPGA的交通灯控制器的设计作者专业日期 2013年3月29日1.设计任务:基于FPGA的交通灯控制器的设计2.设计要求:(1)十字路口由一条东西方向的主干道和一条南北方向的支干道构成,主干道和支干道均有红、黄、绿3种信号灯;(2)保持主、支干道红、绿交替变换;(3)绿灯转红灯过程中,先由绿灯转为黄灯,5秒后再由黄灯转为红灯;同时对方由红灯转为绿灯;(4)系统需具有复位及特殊情况紧急处理功能。
(5)了解交通灯控制器的工作原理,完成控制器的硬件电路设计及软件设计。
3.总体设计方案:从题目中计数值与交通灯的亮灭的关系如图(1)所示。
当主干道绿灯55秒和5秒黄灯过渡时,支干道必须禁止通行,即支干道红灯亮55+5=60秒;当支干道由红灯转为绿灯时,支干道亮55秒绿灯和5秒黄灯过渡,此时主干道红灯应亮55+5=60秒。
图1 交通灯控制要求4.硬件电路基本原理分析:动态LED显示的设计方法是将不同LED模块的所有的LED的驱动端一对一地连接到一起,而将其公共极(阴极或阳极)分别由不同的IO口来驱动(主要针对7段码和LED点阵模块)。
动态显示方式主要是出于简化电路和产品成本考虑在大多数场合都可以达到用户要求。
动态显示虽然占用的CPU时间多,但使用的硬件少,能节省线路板空间。
另外,本设计显示需要使用的是4个七段显示数码管。
在计时结果显示电路中,七段数码管显示部分是一个不容忽视的环节,如若处理不得当,可能引起系统功率过大,产生散热问题,严重时甚至会导致系统的烧毁。
为了解决好以上问题,下面就对七段数码管显示电路做简要的分析和介绍。
通常点亮一个LED所需的电流是5~50 mA,通电的电流愈大,LED的亮度愈高,相对的也会使其寿命缩短。
一般以10 mA的导通电流来估算它所必须串联的阻值,其计算方式参考如图1所示。
图1 单个LED的串接电阻计算方式七段显示器可分为共阳极、共阴极型两种,它们都可以等效成8个LED的连接电路,其中如图2就是共阴极型七段显示器的等效电路和每节LED的定义位置图。
交通灯控制器设计专业:计算机应用技术班级:计应2 班学号:147030201姓名:蔡利军基于FPGA的交通灯控制器设计摘要超高速硬件描述语言VHDL,是对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,利用EDA工具可以在电子设计的各个阶段、各个层系进行计算机模拟验证,保证设计过程的正确性,可大大降低设计成本,缩短设计周期。
本文介绍的数字秒表设计,利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。
交通灯控制系统可以实现路口红绿灯的自动控制。
基于FPGA设计的交通灯控制系统具有电路简单、可靠性强、实时快速擦写、运算速度高、故障率低、可靠性高,而且体积小的特点。
本设计采用Altera公司Cyclone系列的EPlC3T1444C8芯片,在Quartus II软件平台上使用VHDL语言,采用自顶向下的设计方法对系统进行了模块化设计和综合,并进行了仿真。
该系统可实现十字路口红绿灯及左转弯控制和倒计时显示,仿真结果结果表明系统能够自动控制交通灯转变。
关键词:VHDL,交通灯,EDA目录前言 (1)第1章 FPGA概述 (2)1.1 FPGA的简介 (2)1.2 FPGA的应用 (2)第2章 VHDL硬件描述语言 (3)2.1 VHDL程序基本结构 (3)2.1.1 实体 (4)2.1.2 结构体 (4)2.1.3 库 (5)2.2 VHDL语言 (5)2.2.1 VHDL文字规则 (5)2.2.2 VHDL数据对象 (5)2.2.3 VHDL数据类型 (6)2.2.4 VHDL 顺序语句 (6)2.2.5 VHDL并行语句 (6)第3章系统设计与仿真 (7)3.1 系统介绍 (7)3.1.1 设计任务 (7)3.1.2 设计要求 (7)3.2 系统设计仿真 (8)3.2.1 顶层框图的设计 (8)3.2.2 时序状态图的设计 (9)3.2.3 工程设计流程框图: (10)3.2.4 芯片的选择 (10)3.2.5 各个模块的设计与仿真 (11)结论 (27)附录..................................... 错误!未定义书签。
合肥学院综合课程设计报告题目:基于FPGA的交通灯设计专业:电子信息工程班级:09电子(2)班姓名:周峰导师:成绩:2012年12月11日基于FPGA的交通灯设计一:题目要求1:主干道绿灯时,支干道红灯亮,反之亦然,两者交替允许通行。
主干道每次放行40秒,支干道每次放行30秒。
每次路灯亮,前10秒为左转灯亮,后5秒为黄灯亮。
余下为直行灯亮、2:能实现正常的倒计时显示功能。
3:能实现总体清零功能;计数器由初始状态开始计数,对应状态的指示灯亮。
二:题目分析1:在十字路口东西方向和南北方向各设一组左转灯、;显示的顺序为:左转灯绿灯黄灯红灯。
2:设计一个倒计时显示器。
倒计时只显示总体时间。
主干道左转灯、红灯、绿灯和黄灯亮的时间分别是10秒、30秒、25秒、5秒。
支干道左转灯、红灯、绿灯和黄灯亮的时间分别是10秒、40秒、15秒、5秒状态表如表3-1所示:3三:选择方案1:方案一在VHDL设计描述中,采用自顶向下的设计思路,该思路在自顶向下的VHDL 设计描述中,通常把整个设计的系统划分为几个模块,然后采用结构描述方式对整个系统进行描述。
根据实验设计的结构功能,来确定使用哪些模块以及这些模块之间的关系。
通过上面的分析,不难得知可以把交通灯控制系统划分为3个模块:时钟模块、控制模块、分频模块。
2:方案二不采用方案一的分模块设计,直接用进程写程序。
该程序由7个进程组成,进程P1将CLK信号分频后产生1秒信号,P2形成0-49的计数器,进程P3、P4用来控制的信号灯亮灭的,其中P5、P6产生数码管显示的倒数的十进制形式。
进程P7实现状态转换和产生状态转换的控制信号,进而控制数码管显示。
由于方案一中使用进程会使程序变得很复杂,不易理解,所以我采用了方案二。
四:方案二ASM图设计开关控制部分ASM图ASM图说明:i、j、k、分别代表开关状态;1表示开关闭合,为高电平;0表示开关断开为低电平。
当开关处于不同的状态时,分别给变量G不同的值,用来实现控制通行时间。
基于FPGA的交通灯控制器设计_毕业设计论文摘要:随着城市交通拥堵问题的日益严重,交通灯控制器作为城市交通管理的重要组成部分,起着至关重要的作用。
在传统的交通灯控制系统中,使用的是基于微控制器或PLC的硬件实现方式,无法满足日益复杂的交通需求。
本论文提出了一种基于FPGA的交通灯控制器设计方案,通过利用FPGA的高度可编程性和并行处理能力,实现了对交通灯状态的实时监控和控制。
设计方案通过数码管和按钮进行交互,利用图形化编程软件进行开发和调试。
实验结果表明,所设计的FPGA交通灯控制器具有优异的性能和稳定性,能够满足各种交通场景下的需求。
关键词:交通灯控制器;FPGA;并行处理;图形化编程一、引言随着城市交通流量的不断增加,传统的交通灯控制系统已经不能满足日益复杂的交通需求。
传统的交通灯控制器使用的是基于微控制器或PLC的硬件实现方式,无法提供足够的计算性能和并行处理能力。
因此,本论文提出了一种基于FPGA的交通灯控制器设计方案,通过利用FPGA的高度可编程性和并行处理能力,实现对交通灯状态的实时监控和控制。
二、设计方案本设计方案采用了FPGA作为控制器的核心,通过图形化编程软件进行开发和调试。
设计方案将交通灯控制分为四个主要模块:状态监控模块、状态控制模块、显示模块和按钮模块。
状态监控模块通过检测车辆和行人的状态,实时监控交通灯的状态。
状态控制模块根据交通流量和优先级进行状态切换和调度。
显示模块将交通灯状态显示在数码管上,方便行人和司机观察。
按钮模块通过按钮输入交通灯的初始状态,实现手动控制。
三、系统实现本系统采用Xilinx FPGA开发板进行实现,使用Verilog HDL进行程序编写。
在设计过程中,通过数码管和按钮进行交互,实现手动控制和状态显示。
图形化编程软件使得开发和调试更加便捷,节省了开发周期和人力资源。
四、实验结果通过对实验数据的分析和对比,我们发现所设计的FPGA交通灯控制器在交通流量大、复杂交叉路口和斑马线等特殊情况下,都能够稳定运行并保证交通流畅度。
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所示。
数字系统课程设计基于FPGA的交通控制灯设计姓名:学号:班级:摘要随着社会的发展,城市规模的不断扩大,城市交通成为制约城市发展的一大因素。
人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题当然也日益重要。
因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。
有了交通灯,人们的安全出行也有了很大的保障。
自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化。
尤其是近几年来,随着电子与计算机技术的飞速发展,电子电路分析和设计方法有了很大的改进,电子设计自动化也已经成为现代电子系统中不可或缺的工具和手段,这些都为交通灯控制系统的设计提供了一定的技术基础。
本课程设计运用erilog HDL语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示,并最后进行了软件实现,达到了系统要求的功能。
设计原理设计要求设计一个交通控制器,用LED 显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s ,支干道每次放行25s 。
每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s 。
能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。
用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。
能实现特殊状态的功能显示, 设计思路和原理本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。
设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。
循环往复的直行这个过程。
其过程如下图所示:绿灯亮黄灯亮红灯亮0s35s30s65s0s绿灯亮红灯亮黄灯亮60s25s65s主干道方向支干道方向图1.交通灯点亮时间控制说明实现方法本次采用文本编辑法,即利用Verilog HDL 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。
设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。
Verilog HDL 程序设计整体设计根据上章设计原理,交通灯控制的关键是各个状态之间的转换和进行适当的时间延时,根据状态机的设计规范,本次设计了三个状态之间的循环转化,其真值表及状态转化图如下所示:状状00状状11状状10状状01状状状状状状状状状状状状00状状10状状11状状01状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状001100010010001010100010图2.交通灯控制状态转化说明:该状态图为交通灯在正常情况下的状态转化图,进入控制后,状态00时主干道绿灯及支干道红灯亮起,进入状态01后两路黄灯亮起,状态11时主干道红灯及支干道绿灯亮起。
进入10状态两路黄灯亮起。
结束一个循环,从00状态重新开始循环。
为实现控制与显示的功能,需要设计交通灯点亮顺序控制程序,倒数计时程序,七段数码管显示程序,数码管显示扫描程序,其系统结构图如下所示:状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状rstclk hold1KHz 1Hz1Hz图3.交通灯控制系统结构图其中rst 为复位信号,clk 为时钟信号,hold 为特殊情况控制信号,输入hold 时两个方向红灯无条件亮起。
具体设计根据整体设计要求,编写各个功能部分Verilog HDL程序,设置各输入输出变量说明如下clk:为计数时钟;qclk:为扫描显示时钟;en:使能信号,为1 的话,则控制器开始工作;rst:复位信号,为1的话,控制及技术回到初始状态;hoid:特殊情况控制信号,为1的话,则两个方向无条件显示为红灯;light1:控制主干道方向四盏灯的亮灭;其中,light1[0]~light[2],分别控制主干道方向的绿灯、黄灯和红灯;light2:控制支干道方向四盏灯的亮灭;其中,light2[0] ~ light2[2],分别控制支干道方向的绿灯、黄灯和红灯;num1:用于主干道方向灯的时间显示,8 位,可驱动两个数码管;num2:用于支干道方向灯的时间显示,8 位,可驱动两个数码管;counter:用于数码管的译码输出;st1,st2:数码管扫描信号。
输入输出及中间变量设置如下:module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output[7:0] num1,num2;output[6:0]counter;output[2:0] light1,light2;reg tim1,tim2,st1,st2;reg[1:0]state1,state2,ste;reg[2:0]light1,light2;reg[3:0]num;reg[6:0]counter;reg[7:0] num1,num2;reg[7:0] red1,red2,green1,green2,yellow1,yellow2;1.二极管点亮控制该部分程序的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的译码电路。
此外,当检测到特殊情况(hold=‘1’)发生时,无条件点亮红灯的二极管,当检测到复位信号,两个方向计数与控制回复到00状态。
因为主、支干道两个方向二极管点亮的顺序与延迟时间不同,顾编写两个独立的部分来控制,具体程序如下:1)主干道方向always @(posedge clk )beginif(rst) 正常工作时波形仿真图图4. 正常工作时波形仿真图图形说明波形仿真主要完成了控制与计数以及数码管显示的波形图。
en为低电品时,计数器置初值,高电平时开始正常控制与计数。
控制发光二极管首次输出为“light1=001,light2=100”,表示主干道路绿灯亮,支杆道路红灯亮,计数器num1和num2从“00110101”开始递减计数,计数至“00000000”时,进入下一个状态,控制输出量为light=010,light2=010,表示主、支干道黄灯均亮起,计数器num1和num2从“00000101”开始计数递减,计数至”00000000”时进入下一个状态,light=100,light2=001,表示主干道路红灯亮,支杆道路绿灯亮。
Counter根据num1,num2变化随时钟上升沿输出译码后的数据。
由于屏幕显示大小有限,未仿真出一个完整周期。
2. 特殊情况仿真波形图5. 特殊情况仿真波形图形说明当hold输入高电平时,在时钟上升沿的控制下,light 1与light2被强制置位为”100”,表示两路红灯均亮起3. 复位情况仿真波形图6. 复位情况仿真波形图形说明当rst输入高电平时,在时钟上升沿控制下,计数与控制都回到00状态,即light1=001,light2=100,计数器num1和num2从“00110101”开始递减计数。
硬件调试完成时序仿真确认无误后,进行实验箱管脚设置,注意设置完成后一定要再进行一次全局仿真,使程序真正对应于硬件输出输出。
具体连接说明如下所示输入变量:rst、clk、qclk、hold、en其中en,hold,rst接”0-1”拨码开关,以稳定的输出可变化的电平。
计数时钟clk接实验箱上1Hz时钟,扫描显示时钟qclk接125Khz时钟。
输出变量:light1[2:0]、light2[2:0]、counter[6:0]、st1、st2其中light1[0] 、light2[0]分别接绿色的发光二极管;light1[1]、light2[1] 分别接黄色的发光二极管;light1[2]、light2[2]分别接红色的发光二极管。
counter[0]~counter[6],分别接七段数码管的a~f,st1、st2分别接试验箱上”4-16”译码器的低两位。
完成接线后将程序烧写到芯片上,开始功能调试。
分辨改变使能信号,复位信号以及特殊情况信号,观察数码管以及发光二级管情况。
程序清单module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output[7:0] num1,num2;output[6:0]counter;output[2:0] light1,light2;reg tim1,tim2,st1,st2;reg[1:0]state1,state2,ste;reg[2:0]light1,light2;reg[3:0]num;reg[6:0]counter;reg[7:0] num1,num2;reg[7:0] red1,red2,green1,green2,yellow1,yellow2;always @(en )if(!en)begin 复杂数字电路与系统的V erilog HDL设计技术 [M ].北京: 北京航空航天大学出版社, 1998[2] 郭梯云. 移动通信[M ]. 西安: 西安电子科技大学出版社, 1995[3] [法]M ichelMouly, M arie Bernadet te Pautet1GSM 数字移动通信系统[M ]. 骆健霞, 顾龙信, 徐云霄译. 北京: 电子工业出版社, 1996[4] 张毅刚, 乔立岩. 虚拟仪器软件开发环境L abW indow söCV I 610 编程指南[M ]. 北京: 机械工业出版社, 2002[5] 刘国权.GSM 手机的测试[J ].中国无线电管理, 2003[6] 俞定玖, 刘湘慧. GSM 数字蜂窝移动交换系统测试[J ]. 电信科学, 2000[7] 张明. V erilog HDL 实用教程[M ]. 成都: 电子科技大学出版社, 1999[8] Hyde D C. Bucknell Handbook on V erilog HDL 1Computer Science Department, Bucknell U niversity L ew is burg, 1995[9] 康华光. 电子技术基础(数字部分) [M ]. 北京: 高等教育出版社, 1988。