您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > EDA实验交通灯设计报告
EDA原理及应用实验报告题目:交通灯控制器专业:电子信息工程班级:姓名:学号:一、设计题目:交通灯控制器二、设计目标:1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、红、绿、黄发光二极管作信号灯。3、主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。三、设计原理:(含系统总的原理图)由两个分频器模块,三个计数器模块及它的选择器,一个扫描数码管模块,和一个红绿灯控制模块连接而成。RTL状态图四、设计内容:(含状态转换图、软件流程图、说明文字等,每单独模块的图标和VHDL程序;最后为总体程序框图)分频器1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDVFISPORT(CLK:INSTD_LOGIC;--D:INSTD_LOGIC_VECTOR(3DOWNTO0);FOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFDVFISSIGNALFULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLECNT8:INTEGERRANGE48000000DOWNTO0;BEGINIFCLK'EVENTANDCLK='1'THENIFCNT8=24000000THENCNT8:=0;FULL='1';ELSECNT8:=CNT8+1;FULL='0';ENDIF;ENDIF;ENDPROCESSP_REG;P_DIV:PROCESS(FULL)VARIABLECNT2:STD_LOGIC;BEGINIFFULL'EVENTANDFULL='1'THENCNT2:=NOTCNT2;IFCNT2='1'THENFOUT='1';ELSEFOUT='0';ENDIF;ENDIF;ENDPROCESSP_DIV;END;说明:采用的是48M时钟输入,作为后面的时钟信号。分频器2LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDVF2ISPORT(CLK:INSTD_LOGIC;--D:INSTD_LOGIC_VECTOR(3DOWNTO0);FOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFDVF2ISSIGNALFULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLECNT8:INTEGERRANGE48000000DOWNTO0;BEGINIFCLK'EVENTANDCLK='1'THENIFCNT8=20000THENCNT8:=0;FULL='1';ELSECNT8:=CNT8+1;FULL='0';ENDIF;ENDIF;ENDPROCESSP_REG;P_DIV:PROCESS(FULL)VARIABLECNT2:STD_LOGIC;BEGINIFFULL'EVENTANDFULL='1'THENCNT2:=NOTCNT2;IFCNT2='1'THENFOUT='1';ELSEFOUT='0';ENDIF;ENDIF;ENDPROCESSP_DIV;END;说明:改变了分频器的大小,这个频率很高,是给扫描数码管模块使用的。计数器1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcntnISPORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC_vector(2downto0);U:INSTD_LOGIC_VECTOR(2DOWNTO0);A,B:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREbhvOFcntnISSIGNALJ,K,L:STD_LOGIC;SIGNALQ2,Q1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINa1:PROCESS(CLK)BEGINIFCLR=001THENQ1=0100;ELSIFU=010THENIFCLK'EVENTANDCLK='1'THENQ1=Q1-1;IFQ1=0000THENQ1=1001;J='1';ELSEJ='0';ENDIF;ENDIF;A=Q1;ENDIF;ENDPROCESS;a2:PROCESS(J)BEGINIFCLR=001THENQ2=0010;ELSIFU=010THENIFJ'EVENTANDJ='1'THENQ2=Q2-1;IFQ2=0000THENQ2=0010;K='0';ELSEK='1';ENDIF;ENDIF;B=Q2;ENDIF;ENDPROCESS;END;说明:作为支干道通行时间,倒计时25s。计数器2LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcntmISPORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC_vector(2downto0);U:INSTD_LOGIC_VECTOR(2DOWNTO0);C,D:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREbhvOFcntmISSIGNALJ,K,L:STD_LOGIC;SIGNALQ2,Q1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINa1:PROCESS(CLK)BEGINIFCLR=010THENQ1=0101;ELSIFU=001THENIFCLK'EVENTANDCLK='1'THENQ1=Q1-1;IFQ1=0000THENQ1=1001;J='1';ELSEJ='0';ENDIF;ENDIF;C=Q1;ENDIF;ENDPROCESS;a2:PROCESS(J)BEGINIFCLR=010THENQ2=0000;ELSIFU=001THENIFJ'EVENTANDJ='1'THENQ2=Q2-1;IFQ2=0000THENQ2=0010;K='0';ELSEK='1';ENDIF;ENDIF;D=Q2;ENDIF;ENDPROCESS;END;说明:要亮5秒黄灯作为过渡计数器3LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcntlISPORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC_vector(2downto0);U:INSTD_LOGIC_VECTOR(2DOWNTO0);E,F:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREbhvOFcntlISSIGNALJ,K,L:STD_LOGIC;SIGNALQ2,Q1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINa1:PROCESS(CLK)BEGINIFCLR=001THENQ1=0100;ELSIFU=000THENIFCLK'EVENTANDCLK='1'THENQ1=Q1-1;IFQ1=0000THENQ1=1001;J='1';ELSEJ='0';ENDIF;ENDIF;E=Q1;ENDIF;ENDPROCESS;a2:PROCESS(J)BEGINIFCLR=001THENQ2=0100;ELSIFU=000THENIFJ'EVENTANDJ='1'THENQ2=Q2-1;IFQ2=0000THENQ2=0010;K='0';ELSEK='1';ENDIF;ENDIF;F=Q2;ENDIF;ENDPROCESS;END;说明:作为主干道通行时间,倒计时45s。选择器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYxuanzeISPORT(U:INSTD_LOGIC_VECTOR(2DOWNTO0);A,B,C,D,E,F:INSTD_LOGIC_VECTOR(3DOWNTO0);Q1,Q2:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREbhvOFxuanzeISBEGINPROCESS(U)BEGINcaseUISWHEN000=Q1=E;Q2=F;WHEN001=Q1=C;Q2=D;WHEN010=Q1=A;Q2=B;WHENOTHERS=NULL;ENDCASE;ENDPROCESS;END;说明:不同的状态数码管分别显示45s,25s,5s倒计时。红绿灯控制模块libraryieee;useieee.std_logic_1164.all;USEIEEE.STD_LOGIC_UNSIGNED.ALL;entitydengisgeneric(a:integer:=45;b:integer:=5;c:integer:=25);port(clk,rst:instd_logic;R1,G1,Y1,R2,G2,Y2:outstd_logic;U:outstd_logic_vector(2downto0));end;architectureoneofdengistypefsm_stis(QA,QB,QC,QD);signalcurrent_state,next_state:fsm_st;SIGNALq:integerrange0TO200;begin--process(clk)--begin--ifclk='1'andclk'eventthen--ifq=29thenq=0;elseq=q+1;endif;endif;--endprocess;process(clk)beginifrst='0'thencurrent_state=QA;q=0;elsifclk='1'andclk'eventthencurrent_state=next_state;ifq=a+b+b+c-1thenq=0;elseq=q+1;endif;endif;endprocess;process(current_state,q)begincasecurrent_stateiswhenQA=G1='0';R2='0';R1='1';Y1='1';G2='1';Y2='1';U=000;ifq=a-1thennext_state=QB;elsenext_state=QA;endif;whenQB=Y1='0';R2='0';R1='1';G1='1';G2='1';Y2='1';U=001;ifq=a+b-1thennext_state=QC;elsenext_state=QB;endif;whenQC=R1='0';G2='0';Y1='1';G1='1';R2='1';Y2='1';U=010;ifq=a+b+c-1thennext_state=QD;elsenext_state=QC;endif;whenQD=R1='0';Y2='0';Y1='1';G1='1';G2='1';R2='1';U=001;ifq=a
本文标题:EDA实验交通灯设计报告
链接地址:https://www.777doc.com/doc-6959616 .html