1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA基础-8

* * 状态机编码风格 状态机编码对状态机速度和面积关系重大 常用编码 二进制码(binary) 独热码(one-hot) 格雷码(Gray) 二进制码与格雷码是压缩状态编码,使用最少的状态位进行编码。 二进制编码的优点是使用的状态向量最少,但从一个状态转换到相邻状态时,可能有多个比特位发生变化,瞬变次数多,易产生毛刺。 * * 状态编码 独热码N个状态使用N个触发器, 减少了状态寄存器之间的组合逻辑级数,因此提高了运行速度 触发器数量增加,组合逻辑电路减少; 任何状态都可以直接添加/删除等修改而不会影响状态机的其余部分。 由于译码简单,可提高速度,且易于修改。 * * 状态编码 独热码的缺点 变化的状态位越多,组合输出稳定前所需的时间就越长,产生的毛刺就越多 ; 多个寄存器可能受异步输入的影响,使得亚稳态发生的概率有所增加 ; 格雷码即可以消除状态转换时多状态信号传输延迟产生的毛刺,又可降低功耗。 在状态机很复杂状态跳转的分支很多时,要合理的分配状态编码保证每个状态跳转都仅有1位发生变化,这是很困难的事情 * * 状态编码 编码方法 面积 速度 状态数量 Binary (顺序二进制) 较好 较差 Log2(state N) One-hot 较差 较好 States Number Gray 较好 较差 Log2(state N) * * 状态机设计流程 定义状态变量 S 定义输出 下一个状态寄存器 建立状态转换图 状态最小化 选择合适的 flip-flops 选择状态分配 Assignment of binary codes to machine states 设计下一状态寄存器和输出—使用组合逻辑结构 * * * * Example State Diagram – Mealy Machine 1 2 3 4 5 6 7 0/0 1/0 1/1 1/0 1/0 0/0 0/0 0/0 0/0 0/0 1/0 0/0 1/0 1/1 * * Final State Transition Table State 1 2 3 4 5 6 7 0 2/0 2/0 2/0 2/0 2/0 2/0 2/0 1 7/0 3/0 4/0 5/0 6/1 6/1 7/0 x * * State Reduction N Flip-Flops = log2 ( N states) States 5 6 相同 States 1 7 相同 修改后的状态转换表 State 1 2 3 4 5 0 2/0 2/0 2/0 2/0 2/0 1 1/0 3/0 4/0 5/0 5/1 x * * State Assignment 二进制代码赋值给各个状态 State 1 2 3 4 5 y1 0 0 0 0 1 y2 0 0 1 1 1 y3 0 1 1 0 0 * * Coded State Transition Table State 1 2 3 4 5 0 001/0 001/0 001/0 001/0 001/0 XXX/X XXX/X XXX/X 1 000/0 011/0 010/0 110/0 110/1 XXX/X XXX/X XXX/X y1 0 0 0 0 1 1 1 1 y2 0 0 1 1 1 1 0 0 y3 0 1 1 0 0 1 1 0 x * * Problems 状态机的初始化如何解决? 加入reset信号初始化所有的FF; 当状态机进入不确定状态, 无法保证它进入合法的状态。 设计次状态的解码器,保证进入合法状态。 * * Corrected State Machine Design 1 2 3 4 5 7 0/0 1/0 1/0 1/0 0/0 0/0 0/0 0/0 1/0 X/X 1/1 8 6 X/X X/X * * Corrected State Transition Table State 1 2 3 4 5 6 7 8 0 2/0 2/0 2/0 2/0 2/0 1/0 1/0 1/0 1 1/0 3/0 4/0 5/0 5/1 1/0 1/0 1/0 x * * Improved Coded State Transition Table State 1 2 3 4 5 6 7 8 0 001/0 001/0 001/0 001/0 001/0 000/0 000/0 000/0 1 000/0 011/0 010/0 110/0 110/1 000/0 000/0 000/0 y1 0 0 0 0 1 1 1 1 y2 0 0 1 1 1 0 0 1 y3 0 1 1 0 0 0 1 1 x * * module moore_bad(Clk, Reset, In_Data, Ou

文档评论(0)

整理王 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档