文档详情

EDA有限状态机.docx

发布:2017-02-25约2.36千字共10页下载文档
文本预览下载声明
有限状态机定义:由寄存器逻辑和组合逻辑构成的硬件时序电路,一般包括组合逻辑和寄存器逻辑两个部分。 寄存器逻辑的功能是存储有限状态机的内部状态(寄存器组的0和1构成有限状态);组合逻辑分为次态逻辑和输出逻辑两部分:次态逻辑:确定有限状态机的下一个状态输出逻辑:确定有限状态机的输出状态机可分为两类:米里型(Mealy)和摩尔型(moore)。区别:摩尔型状态机的输入发生变化时需要等待时钟的到来。米里型的输出是在输入变化后立即变化,多了输入连到输出逻辑的线; //摩尔型状态机的输出信号仅与当前状态有关,即可以把摩尔型有限状态机的输出看成当前状态的函数,米里型状态机的输出信号不仅与当前状态有关,而且还与输入信号有关,即可以把米里型有限状态机的输出看成是当前状态和所有输入信号的函数。MooreMealy CPU通过操作指令和硬件操作单元来控制功能的实现,有限状态机通过状态转移来实现。适用于PLD,通过恰当的Verilog语言描述和EDA工具综合,可以生产性能优越的有限状态机。有限状态机(Finite State Machine, FSM)是时序电路设计中经常采用的一种方式,尤其适于设计数字系统的控制模块。优点:具有速度快,结构简单,可靠性高等优点 ,过程明确,适用于控制。一般结构:(参照程序来理解)1、说明部分:状态转换变量的定义和所有可能状态的说明2、主控时序过程:状态机的运转和状态转换的过程3、主控组合过程:根据当前状态和外部的信号发出控制信号,同时确定下一状态的走向4、辅助过程:配合状态机工作的组合过程和时序过程一些补充说明:1. 状态机有三种表示方法:状态图(state diagram)、状态表(state table)、流程图 2. 状态机设计中主要包含三个对象: (1)当前状态 ,或称为现态(current state,cs) (2)下一个状态,或称为次态(Next State,ns) (3)输出逻辑(out logic,ol) 相应的,在用verilog描述有限状态机时,有下面几种描述方式 (1) 用三个过程描述:即现态(cs),次态(ns),输出逻辑(ol)各用一个always过程描述 (2) 双过程描述(CS+NS,OL双过程描述):使用两个always过程来描述有限状态机,一个过程描述现态和次态时序逻辑(CS+NS);另一个过程描述输出逻辑(OL) (3) 双过程描述(CS,NS+OL双过程描述);一个过程用来描述现态(CS);另一个过程描述次态和输出逻辑(NS+OL). (4) 单过程描述:在但过程描述方式中,将状态机现态。次态,和输出逻辑(CS+NS+OL)放在一个always过程中进行描述。 FSM设计举例!!!!必考!!!!PPT的例子:双过程(CS,NS+OL) 单过程状态机编码:有两种方式定义状态编码,分别用parameter和define实现。 一位热码的特点:虽然多用触发器,但可以有效节省和简化译码电路。对于FPGA器件来说,采用一位热码可有效提高电路的速度和可靠性,也有利于提高资源利用率。在Verilog语言中,有两种方式可用于定义状态编码,分别用parameter和define语句实现,比如要为state0、state1、state2、state3四个状态定义码字为:00、01、11、10,可采用下面两种方式。方式1:用parameter参数定义 parameter state1=2b00,state2=2b01,state3=2b11,state4=2b10; …… case(state) state1:…; //调用 state2:…; ……状态编码的定义方式2:用define语句定义define state1 2b00 //不要加分号“;”define state2 2b01define state3 2b11define state4 2b10case(state)state1:…; //调用,不要漏掉符号“”state2:…;……要注意两种方式定义与调用时的区别,一般情况下,更倾向于采用方式1来定义状态编码。一般使用case、casez和casex语句来描述状态之间的转换,用case语句表述比用if-else语句更清晰明了。 不会这么贱吧,考下面~~~~5. 状态机的复位(同步复位和异步复位(P209)) 状态机一般都应设计为同步方式,并有一个时钟信号来触发。实用的状态机都应该设计为由唯一时钟边沿触发的同步运行方式。时钟信号和复位信号对每一个有限状态机来说都是很重要的。 同步复位型号在时钟的跳变沿到来时,对有限状态机进行复位操作,同时把复位值赋给输出信号并使用有限状态机回到起始状态。 在描述带同步复位有限状态机时,对同步复位信号进行判断的if语句中,如果不指定输出信号的值,
显示全部
相似文档