前边有四篇博文,《FSM状态机设计》《三段式VS一段式状态机》《从程序到电路-心无代码有电路》《从程序到电路-心无代码有电路(续)》写了状态机的一些东西,包括几段式状态机,以及状态机综合后的底层电路;
在前边提到的一段式状态机变成三段式状态机时,输出的第三段《FSM状态机设计》中使用的state,而《三段式VS一段式状态机》中第三段使用的nextstate,这两种都可以,很多资料都是采用的nextstate形式,但是这里边有个问题,如果输出不是基于状态的,那么nextstate方法会有问题。。
比如,state1转到state2,输出dataout=1; state3转到state2,输出dataout=3;
也就是dataout在state2时,其值还依赖于前边的状态,那么用nextstate就无法表达 !
怎么办?
1、用一段式状态机;
2、用三段式状态机,采用state形式;
3、用三段式状态机,增加状态,使输出只依赖于状态,还采用nextstate即可;
注意; 由于编译工具越来越智能,无论采用几段式状态机,综合出的电路差异越来越小;写电路不要进入思维定式,理解方法,融会贯通,就像三段式状态机也能用state一个道理。
用户1613626 2014-9-10 17:13
用户1531781 2013-6-3 13:14