资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,EDA技术应用,南京信息职业技术学院,电子信息学院,EDA技术应用南京信息职业技术学院,1,P6 交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,6.1 有限状态机的设计原理,6.2 单向交通灯控制系统的设计,6.3 双向,交通灯控制系统的设计,习题,P6 交通灯控制系统的设计EDA技术应用P6 交通灯控制系,2,6.1 有限状态机的设计原理,实际设计中比较复杂的时序逻辑电路的设计通常采用有限状态机实现。,有限状态机的特征:,1)用有限个状态概括系统整个工作过程;,2)各状态可根据条件进行相互转换;,3)各状态均有相应输出信号;,4)系统复位时指定具体初始状态。,有限状态机(Finited State Machine)的特征:,P6 交通灯控制系统的设计,EDA技术应用,6.1 有限状态机的设计原理实际设计中比较复杂的时序逻辑电路,3,根据是否具有外部输入控制信号,有限状态机可以分为:,1),米勒型(,mealy,)状态机,,,状态的转移由当前状态、时钟与外部输入控制信号共同控制,;,2),摩尔型(,moore,)状态机,,,状态的转移只受当前状态和时钟的控制,。,EDA技术应用,P6 交通灯控制系统的设计,6.1 有限状态机的设计原理,有限状态机的分类:,根据是否具有外部输入控制信号,有限状态机可以分为:EDA技术,4,该状态机共有3个状态(S,0,、S,1,、S,2,),X为外部控制信号,Y为输出控制信号。,EDA技术应用,P6 交通灯控制系统的设计,6.1 有限状态机的设计原理,米勒型状态机举例,:,该状态机共有3个状态(S0、S1、S2),X为外部控制信号,,5,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY mealy IS,PORT,(x,clk:IN BIT;,y:OUT BIT);,END mealy;,ARCHITECTURE behave OF mealy IS,TYPE fmst IS (s0,s1,s2);,SIGNAL state:fmst;,EDA技术应用,P6 交通灯控制系统的设计,6.1 有限状态机的设计原理,米勒型状态机VHDL语言实现,:,LIBRARY IEEE;EDA技术应用P6 交通灯控制系,6,BEGIN,P1:PROCESS(clk),BEGIN,IF clkevent AND clk=1THEN,CASE state IS,WHEN s0=IF x=0 THEN state=s0;,ELSE state IF x=0 THEN state=s0;,ELSE state IF x=0 THEN state=s0;,ELSE state y IF state=s2 THEN y=1;,ELSE y=0;,END IF;,END CASE;,END PROCESS P2;,END behave;,EDA技术应用,P6 交通灯控制系统的设计,6.1 有限状态机的设计原理,米勒型状态机VHDL语言实现,:,P2:PROCESS(state,x)EDA技术应用P6,8,设计一个单方向交通灯控制系统;,设计指标:,1)控制红黄绿三盏灯交替工作,数码管显示倒计时时间;,2)绿灯时间为30秒(S,0,),黄灯时间为3秒(S,1,),红灯时间为20秒(S,2,);,3)能通过按键复位;,设计要求:,EDA技术应用,P6 交通灯控制系统的设计,6.2 单向交通灯控制系统的设计,设计一个单方向交通灯控制系统;设计要求:EDA技术应用P6,9,分频模块:对外部时钟信号进行分频得到1Hz信号;,系统控制模块:控制交通灯状态的转换,并输出相应控制信号;,显示模块:控制数码管及发光二极管;,系统原理框图,6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,分频模块:对外部时钟信号进行分频得到1Hz信号;系统原理框图,10,分频模块的设计,外部输入脉冲为12MHz,分频后输出信号为1Hz。(分频模块设计详见数字钟设计部分),6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,分频模块的设计 外部输入脉冲为12MHz,分频后输出信号为1,11,系统控制模块的设计,系统控制模块由倒计时模块和状态机模块构成;,倒计时模块主要实现数码管倒计时信号的控制;,状态机模块主要实现交通灯各状态间的转换。,6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,系统控制模块的设计系统控制模块由倒计时模块和状态机模块构成;,12,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_ARITH.ALL;,USE IEEE.STD_LOGIC_UNSIGNED.ALL;,ENTITY SM IS,PORT,(CLK:IN STD_LOGIC;,CR:IN STD_LOGIC;,LAMP:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);,LEDM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);,LEDS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0),);,END SM;,系统控制模块的VHDL实现,库文件,定义实体,6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,LIBRARY IEEE;系统控制模块的VHDL实现库文件定,13,ARCHITECTURE BEHAVIORAL OF SM IS,TYPE STATES IS(S2,S1,S0);,SIGNAL STATE:STATES:=S0;,SIGNAL NEXT_STATE:STATES:=S0;,SIGNAL SEC:STD_LOGIC_VECTOR(3 DOWNTO 0);,SIGNAL MIN:STD_LOGIC_VECTOR(3 DOWNTO 0);,SIGNAL DATAS:STD_LOGIC_VECTOR(3 DOWNTO 0);,SIGNAL DATAM:STD_LOGIC_VECTOR(3 DOWNTO 0);,SIGNAL LIGHT:STD_LOGIC_VECTOR(2 DOWNTO 0);,SIGNAL LOAD:STD_LOGIC;,BEGIN,定义状态,定义信号,系统控制模块的VHDL实现,6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,ARCHITECTURE BEHAVIORAL OF SM,14,倒计时结束,转为下一状态,倒计时结束,为倒计时模块赋初值,倒计时程序,系统控制模块的VHDL实现,6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,P1:PROCESS(CLK,CR,LOAD),BEGIN,IF CR=0 THEN,SEC=0000;,MIN=0000;,ELSIF RISING_EDGE(CLK)THEN,IF LOAD=1 THEN,SEC=DATAS;,MIN=DATAM;,ELSE,IF SEC=0000 THEN,SEC=1001;,ELSE,SEC=SEC-1;,END IF;,IF SEC=0000 THEN,MIN=MIN-1;,END IF;,END IF;,END IF;,END PROCESS P1;,倒计时结束倒计时结束倒计时程序系统控制模块的VHDL实现6.,15,P2:PROCESS(CLK),BEGIN,IF(FALLING_EDGE(CLK)THEN,IF(SEC=0000)AND(MIN=0000)THEN,LOAD=1;,STATE=NEXT_STATE;,ELSE,LOAD LIGHT=100;-GREEN 30S,NEXT_STATE=S1;-NEXT YELLOW,DATAM=0010;,DATAS LIGHT=010;-YELLOW 3S,NEXT_STATE=S2;-NEXT RED,DATAM=0000;,DATAS LIGHT=001;-RED 20S,NEXT_STATE=S0;-NEXT GREEN,DATAM=0001;,DATAS=“1001;,END CASE;,END PROCESS P3;,LAMP=LIGHT;,LEDM=MIN;,LEDS SEG_OUT SEG_OUT SEG_OUT SEG_OUT SEG_OUT SEG_OUT SEG_OUT SEG_OUT SEG_OUT SEG_OUT NULL;,END CASE;,END PROCESS;,END BIN27SEG;,显示译码程序显示模块的VHDL实现6.2 单向交通灯控制系统,20,单向交通灯控制器顶层结构图,6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,单向交通灯控制器顶层结构图6.2 单向交通灯控制系统的设计E,21,系统控制模块的波形仿真,6.2 单向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,系统控制模块的波形仿真6.2 单向交通灯控制系统的设计EDA,22,项目要求:,模仿6.2单向交通灯控制系统方法,设计双向交通灯控制系统;,项目技术指标:,1)设计一个双向(南北向、东西向)交通灯控制系统;,2)控制南北向和东西向红黄绿三盏灯交替工作,两个二位数码管显示倒计时时间;,3)要求南北向和东西向红黄绿灯时间相互协调。,6.3 双向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,项目要求:模仿6.2单向交通灯控制系统方法,设计双向交通灯,23,双向交通灯控制系统工作原理,交通灯通常有东、西、南、北四个方向,其中东西方向完全一致,南北方向也完全一致,因此只需两个控制器来控制;,每组交通灯共有红、黄、绿三盏灯和数码管组成,按绿灯黄灯红灯绿灯顺序变化,并通过数码管显示倒计时时间;,交通灯控制系统可简单看作摩尔型状态机,可分为4种不同状态,详见下表;,6.3 双向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,双向交通灯控制系统工作原理 交通灯通常有东、西、南、北四个方,24,表1 交通灯的4种状态,状 态,东 西 方 向,南 北 方 向,绿 黄 红,绿 黄 红,1,1 0 0,0 0 1,2,0 1 0,0 0 1,3,0 0 1,1 0 0,4,0 0 1,0 1 0,双向交通灯控制系统工作原理,6.3 双向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,表1 交通灯的4种状态 状 态东 西 方 向南 北 方 向,25,交通灯时间分配:,1)东西向绿灯时间30秒,黄灯3秒,红灯20秒;,2)南北向红灯时间33秒,黄灯3秒,绿灯17秒。,双向交通灯控制系统工作原理,6.3 双向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,交通灯时间分配:双向交通灯控制系统工作原理 6.3 双向交,26,交通灯状态:,1)东西向绿灯(S,0,);,2)东西向黄灯(S,1,);,3)南北向绿灯(S,2,);,4)南北向黄灯(S,3,)。,双向交通灯控制系统工作原理,6.3 双向交通灯控制系统的设计,EDA技术应用,P6 交通灯控制系统的设计,交通灯状态:双向交通灯控制系统工作原理 6.3 双向交通灯,27,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_ARITH.ALL;,USE IEEE.STD_LOGIC_UNSIGNED.ALL;,ENTITY SM4 IS,PORT,(CLK:IN STD_LOGIC;,-时钟信号,CR:IN STD_LOGIC;,-复位信号,LAMP:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);,-红黄绿灯信号,WELED
展开阅读全文