9959|64

6386

帖子

8

TA的资源

管理员

楼主
 

《深入理解Altera FPGA应用设计》书友会讨论第二期:进来随便聊聊状态机~ [复制链接]

 




大家参与上期讨论所获得的芯币会陆续到账。
由于不少网友已经在上期看过样章, 第5章.pdf (3.75 MB, 下载次数: 105) 所以我们本期讨论话题正是关于状态机的,请大家围绕下面几个问题随便进来聊聊:
1、状态机主要分哪几种?
2、大家在使用HDL进行状态机设计的时候一般都参与几个进程?
3、谈谈大家实际经历中都是使用单进程设计状态机还是使用多进程设计状态机?


@coyoo 也会跟大家一起互动聊天,大家可以在讨论过程中@coyoo 。

跟帖参与本次讨论就有机会获得1~500芯币奖励,积极参与互动的网友更有机会获得coyoo新书《深入理解Altera FPGA应用设计(高级技巧篇)》


恭喜上期讨论积极的网友htbadboy、suoma、16号哨兵、Laspide获得《深入理解Altera FPGA应用设计(高级技巧篇)》一本,请私信phantom7确认地址。希望大家都能积极的参与到以后的讨论中来,我们为你准备了N多惊喜哦

《深入理解Altera FPGA应用设计(高级技巧篇)》购买地址
1.当当网购买地址:点击此处前往
2.亚马逊网购买地址:点击此处前往



往期讨论:热烈庆祝坛友coyoo新书《FPGA设计实战演练》出版,跟帖讨论即有机会赢新书!




此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

最新回复

学习了,书应该写的很不错,准备入手一本。  详情 回复 发表于 2015-11-27 16:30
点赞 关注(1)
个人签名微信搜索公众号“EEWORLDBBS”快去添加关注吧!
 

回复
举报

1158

帖子

2

TA的资源

版主

沙发
 
恭喜了!!
此帖出自FPGA/CPLD论坛
 
 

回复

710

帖子

5

TA的资源

一粒金砂(高级)

板凳
 
恭喜得到书的各位
此帖出自FPGA/CPLD论坛
 
 
 

回复

3183

帖子

0

TA的资源

纯净的硅(高级)

4
 
恭喜啊,羡慕啊
此帖出自FPGA/CPLD论坛
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 
 

回复

269

帖子

4

TA的资源

一粒金砂(中级)

5
 
谢谢赠书,最近正好在学习黑金的开发板,状态机主要还是Moore型和Mealy型,Mealy型状态机输出不仅决定于状态,也取决于输入,Moore型状态机只取决于当前状态。使用情况上还是Mealy型状态机最常用,Moore型我几乎没有用到过帖子顶起来啊,不要沉了。
此帖出自FPGA/CPLD论坛
 
 
 

回复

165

帖子

0

TA的资源

一粒金砂(中级)

6
 
恭喜恭喜,水
此帖出自FPGA/CPLD论坛
个人签名什么都不会,只会水经验,请见谅。如果有什么得罪的地方,请找我们队长..................ID:lcofjp
 
 
 

回复

1702

帖子

4

TA的资源

纯净的硅(初级)

7
 
看起来好高级的样子,膜拜下
此帖出自FPGA/CPLD论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(中级)

8
 
本帖最后由 mayiqun720 于 2015-10-29 16:23 编辑

状态机分为moore型和mealy型,区别是mealy型状态机的输出不仅由状态决定,还由当前输入决定。实际使用中,我用一段式和三段式比较多,一般分为三个进程,另外不是有三个进程就是三段式。altera官方的很多例子使用的都是一段式状态机。一段式状态机的缺点是,在当前态描述下一个状态输入,有点别扭,再加上,往往代码比三段式复杂,不适合实现高速。三段式最合理,两段式,采取输出寄存的方式,一般用于高速设计中。两段式状态机不能实现时序逻辑,比如你的输出有计数器之类的,这时只能将逻辑输出进行寄存,用第三个always块实现。(参见特权的两段式状态机思维陷阱)。另外状态机编码也有多种方式,比如独热码,输出状态编码,还有普通的二进制编码,格雷码等等。独热编码的特点是:组合逻辑最少,触发器最多,工作时钟频率可以做到最高,但不是状态编码成独热码就完事的,主要是状态会跑飞,大家可以看看一篇文章:状态机设计 foreveryoung,写的不错,都涉及到了。

状态机设计_by_foreveryoung_V2.0.pdf

2.02 MB, 下载次数: 48

此帖出自FPGA/CPLD论坛

点评

抱歉,发表时有笔误。一段式状态机的缺点是,在当前态描述下一个状态输入(输入改为输出)。  详情 回复 发表于 2015-11-6 09:25
 
 
 

回复

428

帖子

0

TA的资源

一粒金砂(高级)

9
 
恭喜htbadboy、suoma、16号哨兵、Laspide四位朋友。大家都努力啊,好好讨论~~
此帖出自FPGA/CPLD论坛
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(初级)

10
 
恭喜恭喜啊!
此帖出自FPGA/CPLD论坛
 
 
 

回复

428

帖子

0

TA的资源

一粒金砂(高级)

11
 
本帖最后由 newnew0601 于 2015-10-29 12:58 编辑

状态机分为两种类型,一种叫Mealy型,一种叫Moore型。前者就是说时序逻辑的输出不仅取决于当前的状态,还取决于输入,而后者就是时序逻辑的输出仅仅取决于当前的状态。

经常使用单进程摩尔(moore)状态机

Mealy.jpg (14.8 KB, 下载次数: 0)

Mealy.jpg

Moore.jpg (11.09 KB, 下载次数: 0)

Moore.jpg
此帖出自FPGA/CPLD论坛
 
 
 

回复

670

帖子

0

TA的资源

一粒金砂(中级)

12
 
不是很懂,支持一下
此帖出自FPGA/CPLD论坛
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(中级)

13
 
1、状态机:简单的说就是通过不同的状态迁移来完成一些特定的顺序逻辑
2、状态机的基本要素:输入、输出、状态
3、状态机的分类:根据其状态变化是否与输入条件有关可分为两类:Moore型状态机和Mealy型状态机。Moore型状态机的状态变化仅和当前状态有关而与输入条件无关;Mealy型状态机的状态变化不仅和当前状态有关,还取决于当前输入的条件。有些还可将状态机分为有限状态机(FSM)和无限状态机(ISM)。
4、状态机一般有三种不同的写法,即一段式,两段式和三段式。一段式状态机把所有逻辑都在一个always块里解决,这种写法看上去比较简单,但往往不利于维护,状态稍微复杂些就容易出错;两段式状态机是一种常用的写法,本人在日常编程中用的也比较多,它把时序逻辑和组合逻辑分开来写,时序逻辑里进行当前状态和下一个状态的切换,组合逻辑里实现各个输入、输出和状态的判断。这种写法相对比较容易维护,不过组合逻辑输出易出现毛刺等常见问题;三段式状态机代码容易维护,时序逻辑的输出解决了两段式写法中的组合逻辑的毛刺问题,但从资源消耗的角度来说,三段式的资源消耗要多一些。三种状态机不可统一定性谁优谁劣,具体得结合实际工程项目需求来定,在实际编程过程中还要注意编写代码风格,否则可能会使编写的状态机不能综合。
此帖出自FPGA/CPLD论坛
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

14
 
恭喜
此帖出自FPGA/CPLD论坛
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

15
 
菜鸟,支持。
此帖出自FPGA/CPLD论坛
 
 
 

回复

125

帖子

0

TA的资源

一粒金砂(中级)

16
 
只用过 单进程设计状态机 ,多进程太复杂啦  
此帖出自FPGA/CPLD论坛
 
 
 

回复

125

帖子

0

TA的资源

一粒金砂(中级)

17
 
刚接触FPGA 不久 , 还没接触过多线程状态机 ,向楼主学习啦  
此帖出自FPGA/CPLD论坛
 
 
 

回复

265

帖子

15

TA的资源

一粒金砂(中级)

18
 
有限状态机是由寄存器组和组合逻辑构成的硬件时序电路。状态机是逻辑设计中最重要的设计内容之一通过状态转移图设计手段可以将复杂的控制时序图形化表示,分解为状态之间的转换关系,将问题简化。
有限状态机是设计复杂时序电路最有效的方法。特别是设计数字逻辑的控制核心时。
moore有限状态机:输出仅依赖于内部状态,跟输入无关。
mealy有限状态机:输出不仅决定于内部状态,还跟外部输入有关。

此帖出自FPGA/CPLD论坛
个人签名共同学习 共同进步
 
 
 

回复

107

帖子

0

TA的资源

一粒金砂(中级)

19
 
一般状态机就米利和摩尔两种。一般是2个到3个进程。基本上都是多进程的设计。最简单的实例就是帧同步。有预同步,同步和丢失三种状态。复杂一点的EOW公务电话设计。
此帖出自FPGA/CPLD论坛
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

20
 
状态机 我只知道 行为状态机  层次状态机 。
具体实现 记得 学校里 老师讲过 师通过原语的方式实现的
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表