同步状态机的原理、结构和设计.ppt
《同步状态机的原理、结构和设计.ppt》由会员分享,可在线阅读,更多相关《同步状态机的原理、结构和设计.ppt(58页珍藏版)》请在三一办公上搜索。
1、同步状态机的原理、结构和设计,汪彦刚,FSM,状态机分类Moore型状态机设计状态机复位Moore型状态机信号输出方法Mealy型状态机状态机容错设计,状态机一般定义,(Finite State Machine,FSM),状态机 一个离散数学模型。给定 一个输入集合,根据对输入的接受次序 来决定一个输出集合。(摩尔状态机),状态 系统的基本数学特征。,有限状态机 输入集合和输出集合 都是有限的,并只有有限数目的状态。,什么是状态机,有限状态机(简称状态机)相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实
2、现逻辑功能的过程。,为什么使用状态机,有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。设计方案相对固定,结构模式简单,可定义符号化枚举类型的状态。状态机的HDL描述层次分明,结构清晰,易读易懂。状态机容易构成性能良好的同步时序逻辑模块。在高速运算和控制方面,状态机更有其巨大的优势。基于有限状态机技术设计的控制器其工作速度大大优于CPU。就可靠性而言,状态机的优势也是十分明显的。基于有限状态机技术设计的控制器其可靠性也优于CPU。,输入集合 A,输出集合 X,状态记忆,输出形成,状态迁移,状态机一般结构,CLK,组合逻辑,时序逻辑,同步,当前状态,后续状态,S,a1,a2,an,x1,x
3、2,xn,状态位置,状态名称,转移方向,输入集合(触发事件),输出集合(执行动作),状态等待,状态迁移图,nn,a1,a2,an,x1,x2,xn,状态位置,状态名称,转移方向,输入集合(触发事件),输出集合(执行动作),状态等待,状态迁移图,S,状态编码,FSM应用,FSM通过状态图描述状态转换过程FSM:数字系统控制单元的建模数字系统:受控模块:功能模块,设计较易控制模块实现CPUFSM执行耗费时间,执行时间的确定性方面,FSM优于CPU,FSM 构成,FSM用来解决一般时序逻辑电路问题,包括同步/异步时序逻辑状态寄存器当前状态(现态)寄存器组合逻辑电路下一状态(次态)组合逻辑输出组合逻辑
4、,FSM分类,Moore型:输出信号仅与现态相关Mealy型:输出信号与现态和输入相关,DFFs,OutputComb.Logic,FeedbackComb.Logic,DFFs,OutputComb.Logic,FeedbackComb.Logic,Moore,Mealy,现态,次态,输入,输出,现态,次态,输出,输入,Moore型状态机设计方法,摩尔型状态机的典型结构,Moore型状态机设计方法,More型状态机输出仅和存储电路的状态有关,与外部输入无关,即:外部输出是内部状态的函数。,状态转移图描述方式:,Mealy型状态机设计方法,米勒型状态机的典型结构,Mealy型状态机输出不仅和存
5、储电路状态有关,还和外部输入信号有关,即:外部输出是内部状态和外部输入的函数,状态图描述方式:,Mealy型状态机设计方法,Example of a 5-state Mealy FSM,module mealy(data_in,data_out,reset,clock);output data_out;input 1:0 data_in;input reset,clock;reg data_out;reg 2:0 pres_state,next_state;parameter st0=3d0,st1=3d1,st2=3d2,st3=3d3,st4=3d4;/FSM registeralways
6、(posedge clock or negedge reset)begin:stateregif(!reset)/asynchronous resetpres_state=st0;elsepres_state=next_state;end/statereg,/FSM combinational blockalways(pres_state or data_in)begin:fsmcase(pres_state)st0:case(data_in)2b00:next_state=st0;2b01:next_state=st4;2b10:next_state=st1;2b11:next_state=
7、st2;endcasest1:case(data_in)2b00:next_state=st0;2b10:next_state=st2;default:next_state=st1;endcasest2:case(data_in)2b0 x:next_state=st1;2b1x:next_state=st3;endcasest3:case(data_in)2bx1:next_state=st4;default:next_state=st3;endcasest4:case(data_in)2b11:next_state=st4;default:next_state=st0;endcasedef
8、ault:next_state=st0;endcaseend/fsm,/Mealy output definition using pres_state w/data_inalways(data_in or pres_state)begin:outputscase(pres_state)st0:case(data_in)2b00:data_out=1b0;default:data_out=1b1;endcasest1:data_out=1b0;st2:case(data_in)2b0 x:data_out=1b0;default:data_out=1b1;endcasest3:data_out
9、=1b1;st4:case(data_in)2b1x:data_out=1b1;default:data_out=1b0;endcasedefault:data_out=1b0;endcaseend/outputsendmodule,Example of a 5-state Moore FSM,module moore(data_in,data_out,reset,clock);output data_out;input 1:0 data_in;input reset,clock;reg data_out;reg 2:0 pres_state,next_state;parameter st0=
10、3d0,st1=3d1,st2=3d2,st3=3d3,st4=3d4;/FSM registeralways(posedge clock or negedge reset)begin:stateregif(!reset)pres_state=st0;elsepres_state=next_state;end/statereg/FSM combinational blockalways(pres_state or data_in)begin:fsmcase(pres_state)st0:case(data_in)2b00:next_state=st0;2b01:next_state=st4;2
11、b10:next_state=st1;2b11:next_state=st2;endcase,st1:case(data_in)2b00:next_state=st0;2b10:next_state=st2;default:next_state=st1;endcasest2:case(data_in)2b0 x:next_state=st1;2b1x:next_state=st3;endcasest3:case(data_in)2bx1:next_state=st4;default:next_state=st3;endcasest4:case(data_in)2b11:next_state=s
12、t4;default:next_state=st0;endcasedefault:next_state=st0;endcaseend/fsm/Moore output definition using pres_state onlyalways(pres_state)begin:outputscase(pres_state)st0:data_out=1b1;st1:data_out=1b0;st2:data_out=1b1;st3:data_out=1b0;st4:data_out=1b1;default:data_out=1b0;endcaseend/outputsendmodule/Moo
13、re,verilog语言描述FSM的建立过程,跟据具体要求分析控制过程,建立状态转移图后:1。定义枚举类型的信号描述状态2。建立第1个always,描述次态组合逻辑,现态和输入信号作为敏感量,3。在进程中定义状态转移CASE 语句的一条表示一个状态,状态转移通过IF ELSE语句实现4。对于双进程FSM,建立第2个进程,现态寄存器描述进程,CLK,RST为敏感量;对于单进程FSM,则在一个进程中完成同步状态转移。,Mealy状态机:如果时序逻辑的输出不仅取决于状态还取决于输入,那么称之为Mealy机。而有些时序逻辑电的输出只取决于当前状态,即输出信号=G(当前状态),这样的就称为Moore状态
14、机。,两种电路结构除了在输出电路部分有些不同外,其他地方都是相同的。在设计高速电路时,常常有必要使状态机的输出与时钟几乎完全同步。有一个办法是把状态变量直接用作输出,为此在指定状态编码时多费一些脑力,有可能会多用几个寄存器。设计告诉状态机还有一个办法,在输出逻辑G后面再加一组与时钟同步的寄存器输出流水线寄存器,让G所有的输出信号在下一个时钟跳变沿时同时存入寄存器组,即完全同步的输出,这种输出称为流水线化的输出的Mealy状态机。,Flip-Flops,FLIP-FLOPs are trivial FSMsUse state diagrams to remember flip-flops fun
15、ctions,S&R,S&R,SR,FSM performance,Maximum frequency of operation is computed as:,Tnextstate,Tsetup,Td,Tout,FSM Equations,What values of D1 and D2 will move the FSM to the state 01?,FSM next state and output logic can be easily derived by inspecting the state diagram.,To move the FSM to state 01 the
16、next state logic must produce 1 on D2 and 0 on D1.,D2=Q2+=in1&00#in1&11#in1&01#.,D1=Q1+=,coming from state:00 11 01,FSM Equations,The output logic can be easily derived as a logical sum of all the states where 1 on the output is produced(Moore).,D2=Q1+=in1&00#in1&11#in1&01#.,D1=Q1+=.,D2=Q1+=in1&Q1&Q
17、2#in1&Q1&Q2#in1&Q1&Q2#.,Out1=Q1&Q2#.,FSM Equations,Moore型FSM信号输出方法,由状态编码位经组合译码后输出并行输出寄存器的译码输出状态位里的编码输出一位有效编码方式,FSM输出方法1,由状态编码位经组合译码后输出 delay,FSM输出方法2,并行输出寄存器的译码输出,FSM输出方法3,状态位里的编码输出缩短输出延时要求状态位编码与输出信号要求的值相结合,DFFs,OutputComb.Logic,FeedbackComb.Logic,FSM输出方法4,ONE HOT编码使用N位状态寄存器表达具有Ng 状态的FSM,每个状态具有独立的寄存
18、器位。任意时刻只有1位寄存器为1,即hot point。此为one hot。One hot 编码方程用简单的次态方程驱动,减少了状态寄存器之间的组合逻辑级数,因此提高了运行速度。同时是以牺牲寄存器逻辑资源和提高成本为代价的。目标器件具有较多寄存器资源,寄存器之间组合逻辑较少时比较适用。,FSM的容错设计,枚举型数据状态编码在综合时转换为矢量信号,状态位数目=log2N,N:状态数若log2N不为整数,存在未定义状态,非法状态。不考虑非法状态则可减少设计的逻辑数目,考虑非法状态则可降低系统容错性原因:干扰,噪声,电源变化等引起触发器翻转误入非法状态,造成死锁。处理:转入空闲态;转入指定态;转入预
19、定义的错误处理告警状态default:State=idle;-转入空闲态;default:State=“XXXXX”;-忽略;对one hot型FSM,可编写检错程序,判断是否同时又多个状态寄存器为1,若有做相应出错处理。,状态机的状态编码 有限状态机设计是基于状态描述的,因此首先必须对系统中的每一个工作状态有一个合理的表达。对于设计者而言,为了表达简捷方便通常使用符号化状态机。例如:二进制编码方案:是用N位二进制数,表示M个工作状态,当然必须满足2N大于等于M。一位热码编码方案:用N位二进制数表示N个状态,每一位编码对应一个触发器,状态机中的每个状态都由其中一个触发器的状态来表示。,Choo
20、se bit vectors to assign to each“symbolic”stateWith n state bits for m states there are 2n!/(2n m)!state assignments log n=m=2n2n codes possible for 1st state,2n1 for 2nd,2n2 for 3rd,Huge number even for small values of n and mIntractable for state machines of any sizeHeuristics are necessary for pr
21、actical solutionsOptimize some metric for the combinational logicSize(amount of logic and number of FFs)Speed(depth of logic and fanout)Dependencies(decomposition),State Assignment Strategies,Possible StrategiesSequential just number states as they appear in the state tableRandom pick random codesOn
22、e-hot use as many state bits as there are states(bit=1 state)Output use outputs to help encode states(counters)Heuristic rules of thumb that seem to work in most casesNo guarantee of optimality an intractable problem,One-hot State Assignment,SimpleEasy to encode,debugSmall Logic FunctionsEach state
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同步 状态机 原理 结构 设计
链接地址:https://www.31ppt.com/p-5944950.html