008同步状态机.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
008同步状态机

同步状态机 第一课时 在数字设计系统中,同步状态机可以实现复杂而灵活的逻辑功能。因此掌握 同步状态机的设计原理十分重要。本次所讲同步状态机的原理、结构和设计。 1.1 状态机的结构 图1 时钟同步状态机(Mealy 状态机) 图1 表示的数字电路设计中常用的时钟同步状态机的结构。其中状态寄存器是由一组 触发器组成,用来记忆状态机当前所处状态。如果状态寄存器由n 个触发器组成(一个触发 器存储一位),则这个状态机最多可以记忆2n 个状态。所有的触发器的时钟端都连接在一 个共同的时钟信号上,所以状态的改变只可能发生在时钟的跳变沿时刻。可能发生的状态的 改变由正跳变还是由负跳变触发,取决于触发器的类型。状态是否改变,如何改变还将取决 于产生下一状态的组合逻辑F 的输出,F 是当前状态和输入信号的函数。状态机的输出是由 输出组合逻辑 G 提供的,G 也是当前状态和输入信号的函数。现在电路设计中常用正跳变 沿触发的 D 触发器,特别是在可编程逻辑器件上实现的用综合工具自动生成的状态机,其 电路结构往往都是使用正跳变沿触发的D 触发器。图中的F 和G 两部分都是纯组合逻辑, 它们的逻辑函数表达式为: 下一状态=F (当前状态,输入信号); 输出信号=G (当前状态,输入信号); 1.2 两种类型状态机 如果时序逻辑的输出不仅取决于状态还取决于输入,如图 1,这样类型的状态机称为 Mealy 状态机。而有些时序逻辑电路的输出只取决于当前状态,即输出信号=G (当前状态), 这样类型的状态机称为Moore 状态机,其电路结构如下图。 图2 时钟同步状态机(Moore 状态机) 这两种类型的状态机除了在输出电路部分有不同外,其他地方都是相同的。在实际设 计工作中,大部分所用状态机都属于 Mealy 型状态机,因为状态机的输出不仅与当前状态 有关还与当前输入有关。 在设计高速电路中,经常有必要使状态机的输出与时钟完全同步。有一个办法是把状 态变量直接用作输出,为此在指定状态编码时需要谨慎考虑。这种设计思路,在高速状态机 电路时经常使用,称为输出编码的状态指定。 设计高速状态机的另一种设计方法如下图所示。 图3 带流水线输出的Mealy 状态机 这种设计方法在输出逻辑G 后面再加一组与时钟同步的寄存器输出流水线寄存器,让 G 所有的输出信号在下一个时钟跳变沿时同时存入寄存器组,即完全同步输出,把这种输出 称为流水线化的输出的Mealy 状态机。 对状态机的精确划分并不重要,重要的是设计工程师如何把握输出的结构,使其满足 设计的整体目标,包括定时的准确性和灵活性。 第二课时 1.1 用Verilog 语言描述同步状态机 在 Verilog 语言中可以用很多方法来描述同步状态机,最常用的方法是用 always 语句和case 语句。下图所示为状态转移图表示了一个简单的有限状态机。 图1 状态转移图 上图所示的状态转移图描述了一个 4 状态的有限状态机,它的同步时钟为 clock,输入信号是A 和Reset ,输出信号是K2 和K1 。状态的转移只能在同步时 钟(clock )的上升沿时发生,转移到哪个状态取决于当前状态和当前输入信号。 1..1.1 Verilog 设计可综合状态机的典型方法 module fsm(Clock, Reset, A, K2, K1); input Clock, Reset, A; output K2, K1; reg K2, K1; reg [1:0] state; parameter Idle = 2 ’b00; parameter Start = 2 ’b01; parameter Stop = 2 ’b10; parameter Clear = 2 ’b11; always @ (posedge Cl

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档