《序列检测器设计.ppt》由会员分享,可在线阅读,更多相关《序列检测器设计.ppt(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课堂练习序列检测器设计1序列检测器设计序列检测器设计序列检测器是时序逻辑中的经典问题序列检测器一般有一个输入X和一个输出Y。输入信号在不断变化,从而形成一个与时间相关的输入序列。序列检测器就是当输入序列中包含特定串时,设置输出信号Y为高电平,表示检测到了特定串。本设计中需要检测的序列是“1110010”2序列检测器设计的关键是设计相应的序列检测器设计的关键是设计相应的有限状态自动机有限状态自动机自动机初始状态为S0;当自动机接收到一个“1”时,自动机进入S1状态;如果在S1状态接收到“1”时,自动机进入到S2状态;如果在S2状态接收到“1”时,自动机进入到S3状态;如果在S3状态接收到“0”时
2、,自动机进入到S4状态;如果在S4状态接收到“0”时,自动机进入到S5状态;如果在S5状态接收到“1”时,自动机进入到S6状态;如果在S6状态接收到“0”时,自动机进入到S7状态;如果自动机处于S7状态,则表示接收到了一个连续的串“1110010”,此时可以设置输出信号为高电平;这就首先得到了有限状态机的基本框架。这就首先得到了有限状态机的基本框架。3序列检测器的设计难点在于各种状态在各种输入情序列检测器的设计难点在于各种状态在各种输入情况下的下一状态设计况下的下一状态设计以S3状态为例,由于进入S3状态表示前一输入为“1”,因此如果在S3状态下输入“1”,则表示当前三个输入为“111”,考察
3、待检测序列为“1110010”,就知道此时状态机应保持S3状态4序列检测器的设计难点在于各种状态在各种输入情序列检测器的设计难点在于各种状态在各种输入情况下的下一状态设计况下的下一状态设计再如S4状态,由于进入S4状态前的输入序列为“1110”,因此如果在S4 状态下输入“1”,则表示当前输入序列为“11101”,考察待检测序列为“1110010”,可以发现实际输入了“1”,就知道此时状态机应转移到S1状态为了更清晰的表示各个状态之间的关系,应画出状态转换图5序列检测器的序列检测器的VHDL语言描述语言描述library ieee;use ieee.std_logic_1164.all;ent
4、ity FSM_sequence_detector isport(clk,xi:in std_logic;output:out std_logic );end FSM_sequence_detector;6序列检测器的序列检测器的VHDL语言描述语言描述architecture fsm of FSM_sequence_detector istype states is(s0,s1,s2,s3,s4,s5,s6,s7);signal state:states:=s0;beginprocess(xi,state)beginif clkevent and clk=1 then case state
5、iswhen s0=output=0;if(xi=1)thenstate=s1;else stateoutput=0;if(xi=1)thenstate=s2;else stateoutput=0;if(xi=1)thenstate=s3;else stateoutput=0;if(xi=0)thenstate=s4;else stateoutput=0;if(xi=0)thenstate=s5;else stateoutput=0;if(xi=1)thenstate=s6;else stateoutput=0;if(xi=0)thenstate=s7;else stateoutput=1;if(xi=0)thenstate=s0;else state=s1;end if;end case;end if;end process;end fsm;10序列检测器的功能仿真波形的建立序列检测器的功能仿真波形的建立11序列检测器的功能仿真结果序列检测器的功能仿真结果12
限制150内