可编程ASIC设计--状态机设计.ppt

  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文档。上传文档
查看更多
可编程ASIC设计--状态机设计.ppt

可编程ASIC设计 状态机设计 学时分配:2 进度 1.绪论 。 2.设计流程 。 3.模块化硬件与进程模型 。 4.信号传输模型 。 5.核心语法与基础电路设计 。 6.状态机设计 。 7.可靠设计与高速设计 。 8. 可编程逻辑器件。 9.数字信号处理的fpga实现。 10.数字系统的RTL设计。 回忆计数器设计 设计一电路,包含基4计数器,和译码输出模块。计数器的输出(Present_value)从0到3循环;当计数值为2时,译码输出(DataOut)为“1”,否则输出“0”。 状态机分类 状态机分类 状态机的表示方法1 状态机的表示方法2 状态机的表示方法3 状态机的表示方法3 状态机的应用设计 状态转换图设计(Moore) 波形 波形如下图所示 状态转换图设计(Mealy) 状态机的代码实现 状态定义 Architecture rtl of Syn is … -- 其他信号定义。 Type SynFsmState is ( s0, s1, s2, s3, s4, s5); Signal SynCst, SynNst : SynFsmState; Begin … -- 结构体。 End rtl; 状态机的代码实现 状态寄存器进程描述 状态寄存器进程描述 状态机的代码实现 状态转换进程描述 状态转换进程描述 状态机的代码实现 输出进程描述 输出进程描述 思考1 思考2 Mealy机的输入进入输出译码模块,从而输出可以比Moore机早一个时钟周期;但是这同时会造成Mealy机的什么弱点? 思考3 思考3 思考3 状态机设计小结 Moore机的输出z仅是当前状态q的函数;而Mealy机的输出z是q和输入a的函数; Mealy机的输出z可以比Moore机早一个时钟周期; Mealy机中,输入端的干扰容易被传播到输出端,而Moore机则不会。这是Moore机比Mealy机稳定的地方。 状态机设计小结 记得使用others来包含所有的“无效态”,以保证状态机的安全运作。 任何状态,任何条件下,都应该对“次态”和所有的输出z赋值,以避免生成锁存(后面内容会详细讲述)。 再次思考 状态机设计中,如果状态数很多,则状态Q的位数就比较多,从而容易导致输出Z产生明显的毛刺。如何解决这个问题? 再次思考 Regs 译码 Clk Present_state Q(n) Next_state Q(n+1) 译码 DataOut Z(n) din 电子科技大学 Regs +1 Clk Present_value Q(n) Next_value Q(n+1) 译码 DataOut Z(n) Regs +1 Clk Present_value Q(n) Next_value Q(n+1) 译码 DataOut Z(n) 00/0 01/0 10/1 11/0 Regs +/-1 Clk Present_value Q(n) Next_value Q(n+1) 译码 DataOut Z(n) 00/0 01/0 10/1 11/0 扩展一个输入端din,当din = 1时计数器递增计数;当din = 0时计数器递减计数。 din Din = 1 Din = 1 Din = 1 Din = 1 Din = 0 Din = 0 Din = 0 Din = 0 Regs +/-1 Clk Present_value Q(n) Next_value Q(n+1) 译码 DataOut Z(n) 再将计数器修改成一个状态转换器,状态为S0, S1, S2, S3。每个状态的取值根据具体情况而定。比如S0 = 00, S1 = 11, S3 = 01, S4 = 10。 din Din = 1 Din = 1 Din = 1 Din = 1 00/0 01/0 10/1 11/0 Din = 0 Din = 0 Din = 0 Din = 0 Regs 译码 Clk Present_value Q(n) Next_value Q(n+1) 译码 DataOut Z(n) 再将计数器修改成一个状态转换器,状态为S0, S1, S2, S3。每个状态的取值根据具体情况而定。比如S0 = 00, S1 = 11, S3 = 01, S4 = 10。 din Din = 1 Din = 1 Din = 1 Din = 1 S0/0 S1/0 S2/1 S3/0 Din = 0 Din = 0 Din = 0 Din = 0 Regs 译码 Clk Present_state Q(n) Next_state Q(n+1) 译码 DataOut Z(n) din Din = 1 Din = 1 Din = 1 Din = 1 S0/0 S1/0

文档评论(0)

sunyi8246 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档