EDA交通灯实验报告.docx
历绪与字科技/挈EDA试验报告题目:交通灯设计学院:电子工程学院专业:电子信息工程作者:导师:孙万蓉EDA试验报告:交通灯设计一、设计任务及要求,设计任务,模拟十字路口交通信号灯的工作过程,利用试脸板上的两组红、黄、绿1.ED作为交通信号灯,设计一个交通信号灯限制器.要求:(1)交通灯从绿变红时,有5秒黄灯亮的间隔时间;(2)交通灯红变绿是干脆进行的,没有间隔时间:(3)东西主干道上的绿灯时间为25秒,南北支干道的绿灯时间为25秒:(4)在随意时间,显示每个状态到该状态结束所需的时间.路口示意图如下:南北方向.ooolOO东西方向Qo100图1路口交通示意图表1交通信号灯的4种状态ABC东西主干道交通灯绿(25秒)黄(5秒)红(30秒)南北支干道交通灯红(30秒)黄(5秒)绿(25杪)设计要求:<1)采纳VHD1.语言编写程序,并在QUartUSIl工具平台中进行仿真,下载到EDA试验箱进行验证。(2)编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果.二、设计原理I、设计目的:学习DEA开发软件和QUartUSII的运用方法,熟识可编程逻辑器件的运用。通过制作来了解交通灯限制系统,交通灯限制系统主要是实现城市十字交叉路口红绿灯的限制2、设计说明(1)第一模块:Clk时钟秒脉冲发生电路在红绿灯交通信号系统中,大多数状况是通过自动限制的方式指挥交通的“因此为了避开意外事务的发生,电路必需给一个稳定的时钟(clock)才能让系统正常运作。模块说明:系统输入信号:Clk:由外接信号发生器供应50MHz的时钟信号:系统输出信号:full:产生每秒个脉冲的信号:(2)其次模块:计数秒数选择电路计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块供应状态转换信号。模块说明:系统输入:full:接收由CIk电路的供应的IHZ的时钟脉冲信号:系统输出信号:tm:产生显示电路状态转换信号(I:倒计数值秒数个位改变限制信号th:倒计数值秒数十位改变限制信号(3)第三模块:红绿灯状态转换电路本电路负货红绿灯的转换。模块说明:系统输入信号:full:接收由dk电路的供应的IHZ的时钟脉冲信号;tm:接收计数秒数选择电路状态转换信号;系统输出信号:conb.oui:负责红绿灯的状态显示。(4)第四模块:时间显示电路木电路负竞红绿灯的计数时间的显示。模块说明:系统输入信号:也倒计数值秒数个位改变限制信号;th:倒计数值秒数十位改变限制信号:系统输出信号:led7sl:负货红绿灯的显示秒数个位。Icd7s2:负责红绿灯的显示杪数十位。、设计方案图2交遹信号灯限制的原理框图采纳VHD1.语言输入的方式实现交通信号灯限制器图3交通信号灯限制器程序原理框图该程序由7个进程组成,进程Pl和P2将C1.K信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预理数功能的十进制计数器,其中P4产生允许十位计数器计数的限制信号。进程P6实现状态转换和产生状态转换的限制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。四、程序清单:.1.IBRARYIEEE;USE【EEE.STD_1.OGIC_1164.A1.1.;USEIEEE.STD_1.OGIC_UNSIGNED.A1.1.;ENTITYtrafficISPORT(clk:inStdJogic:led7sl:outstd_logic_vector(6downlo0);Ied7s2:outstd_logic_vector(6downto0):comb_out:outstd_logic_vector(5downto0):END;ARCHITECTUREoneOFtrafficISTYPEdmIS(sO.sl,s2.s3);Signalcurrent_stale.next_state:dm;SKiNA1.FU1.1.:STD_1.()C;IC:SIGNA1.tl:STD_1.OGIC_VECTOR(6DOWNTO0):SIGNA1.th:STD_1.OGlJvECToRaDOWNTO0);SIGNA1.tm:STD_1.OG1C_VECTOR(6DOWNTO0);SKJNA1.TIME:STD_1.()(;IC_VECT()R(6DOWNTO0):BEGINP-REG:PROCESS(C1.K)VARIAB1.ECNT8:STD_1.OGIC_VEC1'OR(7DOWNTO0);BEGINIFC1.K'EVENTANDC1.K=>THENIFCNT8="IlllllirTHENCNT8:="O11U1H";FU1.1.<=':E1.SECNT8:=CNT8+1;FU1.1.<=,0'ENDIF:ENDIF;ENDIjROCESSP_REG;PROCESS(full)BEGINIFfulEVENTANDfull='THENIFTIME<"111"THENT1ME<=TIME+1;E1.SeTIME<="0(M)()0-:ENDIF;ENDIF:ENDPROCESS;REG:ProCeSs(full.current_state)BEGINIFfull='ANDfulEVENTTHENcurrent_state<=next_slate;ENDIF:ENDprocess:COM:PrOCeSS(CUrrenI_siate,time)begincaseCurrencstateiswhens0=>comb_oul<="00U00";lm<=39-time;iftime=39thennext_state<=sl:elsenext_state<=sO:endif:whensl=>comb_out<="()l()l(M)":tm<=43-time:iftime=43thenncxt.statc<=s2:elsenext_state<=sl:endif;whens2=>comb_out<="IO(X)10"itm<=63-time:iftine=63thennext.state<=s3:elsenext_state<=s2:endif;whens3=>comb_out<="1()(X)01"itm<=67-time:iftime=67thennext.state<=s:elsenext_state<=s3:endif:endcase:endprocess:PROCESS(tm)BEGINIFtm>=30THENth<="ll":tl<=tm-3():E1.SIFtm>=20THENth<="10":tl<=tm-20;E1.SIFtm>=10THENth<="01";tl<=tm-10;E1.SEh<="00"l<=tm:ENDIF:ENDPROCESS:process(th.ll)begincasethiswhen"00"=>led7sl<="0111111";when"0'=>led7sl<="00110":when"10"=>led7s1<="1011011";when"U"=>led7sl<="lllll":whenothers=>null;endcase:casetliswhen"000"=>led7s2<="0111111";when"00001"=>led7s2<="0000110"when"0()010',=>led7s2<="l()1()11":when"00011"=>led7s2<="1001111";when"00100"=>led7s2<="1100110"when"00001r=>led7s2<="lIOl101";when"0000110"=>led7s2<="1111101";when"00111"=>led7s2<="0000111";when-0001000"=>led7s2<="lIllll1":when"000100=>lecl7s2<="l101111":whenothers=>null:endcase;endprocess;end:五、电路及波形图1.波形图图4仿真波形图2.引脚设置选择的器件为cyclne3系列的EP3C16I484C6芯片,引脚锁定方法如下图所示。将未运用的管脚设置为三态输入(肯定要设置,否则可能会损坏芯片)。-'Z-,t*mx3S3Bmil!Iamma图5引脚运用图六、硬件测试及说明用试验板上的6个1.ED作为交通信号灯,设计一个交通信号灯限制器。I、交通灯从绿变红时,有5秒黄灯亮的间隔时间:2、交通灯红变绿是干脆进行的,没有间隔时间;3、红灯时间为30秒。绿灯时间为25秒。黄灯时间为5秒。七、试验心得体会通过这次课程设计,我进一步加深了对数字系统设计的了解。并进一步娴熟了对QUarlUSll软件的操作。在编写程序的过程中,遇到了许多问题,使我发觉自己以前学习上存在的不足.同时也驾驭了做课程设计的一般流程,为以后的设计积累了肯定的阅历。做课程设许时,先杳阅相关学问,把原理吃透,确定一个大的设计方向,在根据这个方向分模块的把要实现的功能用流程图的形式展示。最终参照每个模块把输入和输出引脚设定,运用我们所学的YHD1.语言进行编程。深刻体会到了如何聘理论应用到实际的开发板中,我们不仅要将软件程序编好,还要学会调成开发板,对开发板设置成自己程序中要求的初始条件,这样板了才能呈现自己当时设计的效果。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的运用技能等方面得到较全面的熬炼和提高;