三段式状态机设计
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三段式状态机设计相关的知识,希望对你有一定的参考价值。
参考技术A 有限状态机采用三段式风格,即三个always块描述状态机.优点:书写清晰,组合与时序分离设计,易于综合,且在一定程度上避免了状态转移和输出等组合逻辑中的毛刺.
主要目的是为了提高状态机的可读性,为分析逻辑功 能提供方便,也可以是cstate or nstate.
建议使用的独热码,电路的速度和可靠性有显著的提高,但注意:存在多余的状态,就有一些不可到达的状态,需要在case语句的最后,加default分支,以确保能回到IDLE状态。
如何用verilog设计有限状态机
在用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过程中进行描述。
对于两段式描述,相当于-一个过程是由时钟信号触发的时序过程,时序过程对状态机的时钟信号敏感,当时钟发生有效跳变时,状态机的状态发生变化,一般用case语句检查状态机的当前状态,然后用if语句决定下一状态; 另一个过程是组合过程,在组合过程中根据当前状态给输出信号赋值,对于摩尔型(Moore) 状态机,其输出只与当前状态有关,因此只需用case语句描述即可;对于米里型(Mealy) 状态机,其输出则与当前状态和当前输入都有关,因此,可以用case语句和if语句组合进行描述。双过程的描述方式结构清晰,并且把时序逻辑和组合逻辑分开进行描述,便于修改。
在单过程描述方式中,将有限状态机的现态、次态和输出逻辑(CS+NS+OL)放在一个过程中进行描述,这样做带来的好处是,相当于采用时钟信号来同步输出信号。因此,可以克服输出逻辑信号出现毛刺的问题,这在--些让输出信号作为控制逻辑的场合使用,就有效避免了输出信号带有毛刺,从而产生错误的控制逻辑的问题。但要注意的是,采用单过程描述方式,输出逻辑会比双过程描述方式的输出逻辑延迟--个时钟周期的时间。 参考技术A 有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。状态机特别适合描述那些发生有先后顺序或者有逻辑规律的事情,其实这就是状态机的本质。状态机就是对具有逻辑顺序或时序规律的事件进行描述的一种方法
在实际的应用中根据状态机的输出是否与输入条件相关,可将状态机分为两大类,即摩尔 (Moore)型状态机和米勒 (Mealy) 型状态机。本回答被提问者采纳
以上是关于三段式状态机设计的主要内容,如果未能解决你的问题,请参考以下文章