原创 再说状态机

2014-8-16 15:31 813 8 9 分类: FPGA/CPLD 文集: FPGA

前边有四篇博文,《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一个道理。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1613626 2014-9-10 17:13

“也就是dataout在state2时,其值还依赖于前边的状态,那么用nextstate就无法表达 !” 这时候是Mealy型的FSM,输出需要同时判断nextstate和input。

用户1531781 2013-6-3 13:14

谢谢分享
相关推荐阅读
pengchengcheng082_593158939 2015-08-21 16:26
Linux 下 的 vi 编辑器
一、按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi :q 不保存文件,退出vi :wq 保存文件并退出vi :q! 不保存文件,强制退出vi :w! 强制保存,不推出...
pengchengcheng082_593158939 2015-07-28 15:57
面向对象和面向过程区别
转自 http://blog.sina.com.cn/s/blog_4dd5955301000a2m.html     面向对象和面向过程的区别,实在是难用一两句话说明白。   ...
pengchengcheng082_593158939 2015-05-23 10:39
后仿真能否被形式验证(Formal Verification)和静态时序分析(Static Timing Analysis)所取代
转自 http://www.cnblogs.com/jyaray/archive/2011/04/26/2029856.html 验证的主要目的:就是检查时间模型是否满足时间要求,是否实现了时...
pengchengcheng082_593158939 2015-05-19 11:18
两种代码方式
下面的两段程序等价,RTL图以及综合后的结果 完全一样。看似简单,其实是两种不同的思维方式。在复杂电路中能体现出两种方式各自的特点,第一种容易理解,第二种则结构更清晰,更接近综合后的结果。以前习惯用上...
pengchengcheng082_593158939 2015-05-14 16:28
Linux 下 的 cc 和 gcc
转自 http://www.cnblogs.com/zhouyinhui/archive/2010/02/01/1661078.html   在Linux下一会看到cc,另一会又看到gcc...
pengchengcheng082_593158939 2015-05-13 17:19
mips 编译器
1、linux 系统下编程的编译器 GNU toolchain(GNU工具链)是一个包含了由GNU项目所产生的各种编程工具的集合。这些工具形成了一条工具链,用于开发应用程序和操作系统。  ...
EE直播间
更多
我要评论
1
8
关闭 站长推荐上一条 /3 下一条