eda大作业

上传人:简****9 文档编号:105084185 上传时间:2019-10-11 格式:DOC 页数:12 大小:579.31KB
返回 下载 相关 举报
eda大作业_第1页
第1页 / 共12页
eda大作业_第2页
第2页 / 共12页
eda大作业_第3页
第3页 / 共12页
eda大作业_第4页
第4页 / 共12页
eda大作业_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《eda大作业》由会员分享,可在线阅读,更多相关《eda大作业(12页珍藏版)》请在金锄头文库上搜索。

1、班 级 021291学 号 02129057EDA实验报告 学 院 电子工程学院 专 业 电子信息工程 学生姓名 02129057 导师姓名 纠博 交通控制器一 设计目标设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是70、5和75秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状

2、态,继续正常运行。二 设计思路与实施方案1.设计目标思路整理 在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一方向(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。 设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是70s、5s和75s。 当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。2.原理分析本系统主要由分频器,计数器,控制器,倒计时显示器等电路组成。分频器将晶振送来

3、的50MHZ信号变为1HZ时钟信号;计数器实现总共150秒的计数,它也是交通控制系统的一个大循环;控制器控制系统的状态转移和红黄绿灯的信号输出;倒计时显示电路实现75秒,70秒及5秒的倒计时和显示功能。整个系统的工作时序受控制器控制,是系统的核心。基于此,做出交通控制系统的转移图如下:其中,s0:A方向绿灯亮,B方向红灯亮,此状态持续70秒; S1:A方向黄灯亮,B方向红灯亮,此状态持续5秒; S2:A方向红灯亮,B方向绿灯亮,此状态持续70秒; S3:A方向红灯亮,B方向黄灯亮,此状态持续5秒; S4:紧急制动状态,A方向红灯亮,B方向红灯亮,当hold=0时进入这种状态。当紧急制动信号无效

4、时,状态按照s0s1s2s3s0循环;当紧急制动信号有效时,立即进入s4,两个方向红灯全亮,计数器停止计数。三 设计过程1.电路设计交通控制系统顶层原理图如下图示,它主要由50MHZ分频器模块,控制器,倒计时计数器模块,7段数码管组成。(1) 分频器的设计分频器外部接口如右图所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fp50m isport(clk : in std_logic;reset : in std_logic;clk_out: out std_logic);en

5、d entity fp50m;architecture behavior of fp50m issignal count : std_logic_vector(31 downto 0);signal Q:std_logic;beginprocess(reset,clk) beginif (reset = 0) thencount 0);- 复位计数器 elsif clkevent and clk=1 then count=count+1; if (count = 25000000) then Q= not Q;- 反置输出count 0);end if;end if;clk_out=Q;end

6、 process;end architecture behavior;由于50MHz过大,在这里就不展示分频时序图。(2) 控制器的设计 控制器control的逻辑符号如下图所示。其中,clk为时钟输入信号;hld为紧急制动信号;ared,agreen,ayellow为东西方向驱动红灯,绿灯及黄灯指示的输出信号;bred,bgreen,byellow分别为南北方向驱动红灯。绿灯及黄灯指示的输出信号。控制器按照上边的状态转移图所示控制系统的时序,即为个方向红,绿,黄灯的亮灭时间。control的VHDL描述文件control.vhd:library ieee;use ieee.std_logic

7、_1164.all;use ieee.std_logic_unsigned.all;entity control is port( clk,hold:in std_logic; ared,agreen,ayellow,bred,bgreen,byellow:out std_logic);end control;architecture behavior of control is type state_type is(s0,s1,s2,s3,s4); signal current_state,next_state:state_type; signal counter:std_logic_vec

8、tor(6 downto 0); beginsynch:processbegin wait until clkevent and clk=1; if hold=0 then -当紧急制动信号有效时,计数器停止工作counter=counter; else -当紧急制动信号无效时,计数器进行周期为150s的计数 if counter149 then counter=counter+1; else counter0); end if; end if;end process;process -状态机的状态转移描述begin wait until clkevent and clk=1; current

9、_state if hold=0 then next_state=s4; else if counter69 then next_state=s0; else next_state if hold=0 then next_state=s4; else if counter74 then next_state=s1; else next_state if hold=0 then next_state=s4; else if counter144 then next_state=s2; else next_state if hold=0 then next_state=s4; else if co

10、unter149 then next_state=s3; else next_state if hold=0 then next_state=s4; else if counter69 then next_state=s0; elsif counter74 then next_state=s1; elsif counter144 then next_state=s2; elsif counter149 then next_state ared=0; agreen=1; ayellow=0; bred=1; bgreen=0; byellow ared=0; agreen=0; ayellow=1; bred=1; bgreen=0; byellow ared=1; agreen=0; ayellow=0; bred=0; bgreen=1; byellow ared=1; agreen=0; ayellow=0; bred=0; bgreen=0; byellow ared=1; agreen=0; ayellow=0; bred=1; bgreen=0; byellow NULL;end case;end process;end behavior;control的时序图由图可以看出紧急制动有效,即hold=0时,两个方向都是红灯。而紧急制动无效时,为s1状态,一方为绿灯,另一方

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号