资源描述:
《交通灯信号控制设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、EDA技术实验报告册班 级:姓 名:学 号:指导教师:开课时间:2013至2014学年第1学期实验名称交通灯信号控制设计实验时间2013年12月05日姓名实验成绩一、实验目的1.掌握VHDL语言的基本结构。2.掌握VHDL层次化的设计方法。3.掌握VHDL基本逻辑电路的综合设计应用。二、实验设备计算机软件:QuartusIIEDA实验箱。主芯片:EPM7128SLC84-15或EP1K100QC208-3。下载电缆,导线等。三、实验内容设计并调试好一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,
2、具体要求如下:1.主、支干道各设一个绿、黄、红指示灯,两个显示数码管。2.主干道处于常允许通行状态,而支干道有车来时才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。而支干道允许通行亮绿灯时,主干道亮红灯。3.当主、支干道均有车时,两者交替允许通行,主干道每次放行45S,支干道每次放行25S,在每次由亮绿灯变成亮红灯的转换过程中,要亮5S的黄灯作为过渡,并进行减计时显示。要求编写交通灯控制器电路逻辑图中的各个模块的VHDL语言程序,并完成交通灯控制器的顶层设计,然后利用开发工具软件对其进行编译和仿真,最后要通过实验开发系
3、统对其进行硬件验证。(一)编写交通灯控制器JTDKZ模块的VHDL程序,并对其进行编译和仿真,初步验证设计的正确性。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYJTDKZISPORT(CLK,SM,SB:INSTD_LOGIC;MR,MY,MG,BR,BY,BG:OUTSTD_LOGIC);ENDENTITYJTDKZ;ARCHITECTUREARTOFJTDKZISTYPESTATE_TYPEIS(A,B,C,D);SIGNALSTATE:STATE_TYPE;signalc
4、nt:integerrange0to45;BEGINPROCESS(CLK)ISBEGINIF(CLK'EVENTANDCLK='1')THENCASESTATEISWHENA=>IF(SBANDSM)='1'THENIFCNT=44THENCNT<=0;STATE<=B;ELSECNT<=CNT+1;STATE<=A;15ENDIF;ELSIF(SBAND(NOTSM))='1'THENSTATE<=B;CNT<=0;ELSESTATE<=A;CNT<=0;ENDIF;WHENB=>IFCNT=4THENCNT<=0;S
5、TATE<=C;ELSECNT<=CNT+1;STATE<=B;ENDIF;WHENC=>IF(SMANDSB)='1'THENIFCNT=24THENCNT<=0;STATE<=D;ELSECNT<=CNT+1;STATE<=C;ENDIF;ELSIFSB='0'THENSTATE<=D;CNT<=0;ELSESTATE<=C;CNT<=0;ENDIF;WHEND=>IFCNT=4THENCNT<=0;STATE<=A;ELSECNT<=CNT+1;STATE<=D;ENDIF;ENDCASE;ENDIF;ENDPROC
6、ESS;RGY:PROCESS(STATE)ISBEGINCASESTATEISWHENA=>MR<='0';MY<='0';MG<='1';BR<='1';BY<='0';BG<='0';WHENB=>MR<='0';MY<='1';MG<='0';BR<='1';BY<='0';BG<='0';WHENC=>MR<='1';MY<='0';MG<='0';BR<='0';BY<='0';BG<='1';WHEND=>MR<='1';MY<='0';MG<='0';BR<='0';BY<='1';BG<='0';ENDC
7、ASE;ENDPROCESSRGY;ENDARCHITECTUREART;(二)编写45S定时单元CNT45S模块的VHDL程序,并对其进行编译和仿真,初步验证设计的正确性。--45s定时模块源程序CNT45S.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYtime_45sISPORT(SB,SM,CLK,EN45:INSTD_LOGIC;DOUT45M,DOUT45B:OUTSTD_LOGIC_VECTOR(7
8、DOWNTO0));15ENDENTITYtime_45s;ARCHITECTUREARTOFtime_45sISSIGNALCNT6B:STD_LOGIC_VECTOR(5DOWNTO0);BEGINPROCESS(SB,SM,CLK,EN45)ISBEGINIF(CLK'EVENTANDCLK='1