- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WHEN S2=MK=0; IF (X=0) THEN NEXT_STATE=S3; ELSE NEXT_STATE=S2; END IF; WHEN S3=MK=0; IF (X=0) THEN NEXT_STATE=S4; ELSE NEXT_STATE=S1; END IF; WHEN S4=MK=1; IF (X=1) THEN NEXT_STATE=S1; ELSE NEXT_STATE=S0; END IF; END CASE; END PROCESS; PROCESS (CLK) BEGIN IF CLKEVENT AND CLK=1 THEN CURRENT_STATE=NEXT_STATE; END IF; END PROCESS; END; 性能比较: Gray码 One-Hot码 Binary码 非法状态: 7.6 状态机剩余状态处理 未定义的编码组合, 在状态机的正常运行中是不需要出现的。 处理方法: 1、对每一个非法状态都作出明确的状态转换指示 WHEN st_ilg1 = next_state = st0; WHEN st_ilg2 = next_state = st0; … 2、利用OTHERS语句中对未提到的状态作统一处理 WHEN OTHERS = next_state = st0; 状态机的优点 ? 状态机的结构模式相对简单。 ? 状态机容易构成性能良好的同步时序逻辑模块。 ? 状态机的VHDL表述丰富多样。 ? 在高速运算和控制方面,状态机更有其巨大的优势。 ? 就可靠性而言,状态机的优势也是十分明显的。 7.7 状态机的优点及应用 应用 广泛应用于各种系统控制,如:微处理器机中的总线仲裁以及与外设之间的控制;工业控制;数据的加密与解密;数字信号处理系统中的时序控制等。 作业: 用状态机实现循环彩灯控制器(含清零功能)。 * * (1)默认的状态编码是Binary编码,使用TYPE定义新的信号类型, 优点:简单,容错技术简单、剩余的非法状态少 缺点:但这种默认的Binary编码,在状态改变的位变化可能有时会超过一个bit以上(增加了从一种状态向另一种状态转换的译码组合逻辑),可能会保持瞬时态。应用于异步电路时,可能会发生严重问题。 001----000---010 (2)用n位来表示n个状态 优点:编码方式简单,提高了状态转换速度,与状态数无关 缺点:需要使用较多的寄存器来储存状态编码值 (3)相邻状态间仅差一位 优点:每次状态切换时,只变化一位 缺点:编码值不易辨识及状态改变需依序才适用 * 可靠 FSM 和其他设计一样,最好使用同步时序方式设计,以提高设计的稳定性,消除毛刺。一般来说,状态转移部分是同步时序电路而状态的转移条件的判断是组合逻辑。 而一段式FSM 描述不利于时序约束、功能更改、调试等,而且不能很好的表示米立FSM 的输出,容易写出Latches,导致逻辑功能错误。 在一般两段式描述中,为了便于描述当前状态的输出,很多设计者习惯将当前状态的输出用组合逻辑实现。但是这种组合逻辑仍然有产生毛刺的可能性,而且不利于约束,不利于综合器和布局布线器实现高性能的设计。因此如果设计运行额外的一个时钟节拍的插入,则要求尽量对状态机的输出用寄存器寄存一拍。但是很多实际情况不允许插入一个寄存节拍,此时则可以通过三段式描述方法进行解决。三段式与两段式相比,关键在于根据状态转移规律,在上一状态根据输入条件判断出当前状态的输出,从而在不插入额外时钟节拍的前提下,实现了寄存器输出。 * * 1.深入的理解问题(Understand the problem)。用非常严谨的风格去解释问题的描述是非常重要的。对于状态机,你必须搞清楚什么样的输入会产生什么样的输出。 2.????获得一个对状态机的理论性的描述(Obtain an abstract representation of the FSM)。一旦你理解了问题,你必须用一种易于操作的形式表达出来,状态图是一种比较好的表示方法。 3.????对状态机进行优化(Perform state minimization. )。从上一步过来,通常会导致很多状态,很多状态会有相同的行为描述,这些状态应该被优化成同一个状态。 4.????进行状态编码的赋值(Perform state assignment)。编码方式好坏决定了执行的速度。 5.????选择何种类型的触发器来实现状态机(Choose flip-flop types for implementing the FSMs
文档评论(0)