EDA实验交通灯设计报告_第1页
EDA实验交通灯设计报告_第2页
EDA实验交通灯设计报告_第3页
EDA实验交通灯设计报告_第4页
EDA实验交通灯设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA原理及应用实验报告题目:交通灯控制器专业:电子信息工程班级:姓名:学号: 一、 设计题目:交通灯控制器二、 设计目标: 1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、红、绿、黄发光二极管作信号灯。3、主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车

2、辆有时间停到禁行线外,设立5秒计时、显示电路。三、 设计原理:(含系统总的原理图) 由两个分频器模块,三个计数器模块及它的选择器,一个扫描数码管模块,和一个红绿灯控制模块连接而成。RTL状态图四、 设计内容:(含状态转换图、软件流程图、说明文字等,每单独模块的图标和VHDL程序;最后为总体程序框图)分频器1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT(CLK:IN STD_LOGIC;-D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);FOU

3、T:OUT STD_LOGIC);END;ARCHITECTURE one OF DVF ISSIGNAL FULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLE CNT8:INTEGER RANGE 48000000 DOWNTO 0;BEGINIF CLKEVENT AND CLK=1 THENIF CNT8=24000000 THENCNT8:=0;FULL=1;ELSE CNT8:=CNT8+1;FULL=0;END IF;END IF;END PROCESS P_REG;P_DIV:PROCESS(FULL)VARIABLE CNT2:STD_L

4、OGIC;BEGINIF FULLEVENT AND FULL=1 THENCNT2:=NOT CNT2;IF CNT2=1 THEN FOUT=1;ELSE FOUT=0;END IF;END IF;END PROCESS P_DIV;END;说明:采用的是48M时钟输入,作为后面的时钟信号。分频器2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF2 ISPORT(CLK:IN STD_LOGIC;-D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);FOUT

5、:OUT STD_LOGIC);END;ARCHITECTURE one OF DVF2 ISSIGNAL FULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLE CNT8:INTEGER RANGE 48000000 DOWNTO 0;BEGINIF CLKEVENT AND CLK=1 THENIF CNT8=20000 THENCNT8:=0;FULL=1;ELSE CNT8:=CNT8+1;FULL=0;END IF;END IF;END PROCESS P_REG;P_DIV:PROCESS(FULL)VARIABLE CNT2:STD_LOGI

6、C;BEGINIF FULLEVENT AND FULL=1 THENCNT2:=NOT CNT2;IF CNT2=1 THEN FOUT=1;ELSE FOUT=0;END IF;END IF;END PROCESS P_DIV;END;说明:改变了分频器的大小,这个频率很高,是给扫描数码管模块使用的。计数器1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntn ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC_vector(2 downto 0

7、);U:IN STD_LOGIC_VECTOR(2 DOWNTO 0);A,B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF cntn ISSIGNAL J,K,L:STD_LOGIC;SIGNAL Q2,Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINa1:PROCESS(CLK)BEGINIF CLR=001 THEN Q1=0100;ELSIF U=010 THENIF CLKEVENT AND CLK=1 THEN Q1=Q1-1; IF Q1=0000 THEN Q1=1001;J=1;EL

8、SE J=0;END IF;END IF;A=Q1;END IF;END PROCESS;a2:PROCESS(J) BEGINIF CLR=001 THEN Q2=0010;ELSIF U=010 THEN IF JEVENT AND J=1 THEN Q2=Q2-1; IF Q2=0000 THEN Q2=0010;K=0;ELSE K=1;END IF; END IF;B=Q2; END IF; END PROCESS; END ;说明:作为支干道通行时间,倒计时25s。计数器2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_L

9、OGIC_UNSIGNED.ALL;ENTITY cntm ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC_vector(2 downto 0);U:IN STD_LOGIC_VECTOR(2 DOWNTO 0);C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF cntm ISSIGNAL J,K,L:STD_LOGIC;SIGNAL Q2,Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINa1:PROCESS(CLK)BEGINIF CLR=010 THEN Q1

10、=0101;ELSIF U=001 THENIF CLKEVENT AND CLK=1 THEN Q1=Q1-1; IF Q1=0000 THEN Q1=1001;J=1;ELSE J=0;END IF;END IF;C=Q1;END IF;END PROCESS;a2:PROCESS(J) BEGINIF CLR=010 THEN Q2=0000;ELSIF U=001 THEN IF JEVENT AND J=1 THEN Q2=Q2-1; IF Q2=0000 THEN Q2=0010;K=0;ELSE K=1;END IF; END IF;D=Q2; END IF; END PROCE

11、SS; END ;说明:要亮5秒黄灯作为过渡计数器3LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntl ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC_vector(2 downto 0);U:IN STD_LOGIC_VECTOR(2 DOWNTO 0);E,F:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF cntl ISSIGNAL J,K,L:STD_LOGIC;SIGN

12、AL Q2,Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINa1:PROCESS(CLK)BEGINIF CLR=001 THEN Q1=0100;ELSIF U=000 THENIF CLKEVENT AND CLK=1 THEN Q1=Q1-1; IF Q1=0000 THEN Q1=1001;J=1;ELSE J=0;END IF;END IF;E=Q1;END IF;END PROCESS;a2:PROCESS(J) BEGINIF CLR=001 THEN Q2=0100;ELSIF U=000 THEN IF JEVENT AND J=1 THEN Q2=

13、Q2-1; IF Q2=0000 THEN Q2=0010;K=0;ELSE K=1;END IF; END IF;FQ1=E;Q2Q1=C;Q2Q1=A;Q2NULL;END CASE;END PROCESS;END ;说明:不同的状态数码管分别显示45s,25s,5s倒计时。红绿灯控制模块library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity deng isgeneric(a:integer:=45;b:integer:=5;c:integer:=25);port(clk,rst : i

14、n std_logic; R1,G1,Y1,R2,G2,Y2 : out std_logic; U:out std_logic_vector(2 downto 0);end;architecture one of deng istype fsm_st is (QA,QB,QC,QD);signal current_state , next_state : fsm_st;SIGNAL q: integer range 0 TO 200;begin-process(clk)-begin-if clk = 1 and clkevent then-if q=29 then q=0;else q=q+1

15、;end if;end if;-end process;process (clk)begin if rst = 0 then current_state = QA;q=0; elsif clk = 1 and clkevent then current_state = next_state;if q=a+b+b+c-1 then q=0;else qG1 = 0;R2= 0;R1=1;Y1=1;G2=1;Y2=1;U=000; if q=a-1 then next_state = QB; else next_state Y1=0;R2= 0;R1=1;G1 = 1;G2=1;Y2=1;U=00

16、1; if q=a+b-1 then next_state = QC; else next_state R1=0;G2= 0;Y1=1;G1 = 1;R2=1;Y2=1;U=010; if q=a+b+c-1 then next_state = QD; else next_state R1=0;Y2= 0;Y1=1;G1 = 1;G2=1;R2=1;U=001; if q=a+b+b+c-1 then next_state = QA; else next_state bt=NOT00000001;abt=NOT00000010;abt=NOT00000100;abt=NOT00001000;abt=NOT00010000;abt=NOT00100000;abt=NOT01000000;abt=NOT10000000;anull; end case;end process p1;p2:process(clk) begin if clkevent and clk=1 then cnt8sgsgsgsgsgsgsgsgsg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论