找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 2965|回复: 0
打印 上一主题 下一主题
收起左侧

FPGA中的亚稳态和异步FIFO的作用

[复制链接]
跳转到指定楼层
楼主
ID:104835 发表于 2016-2-1 00:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在分析verilog代码的时候,遇到了听说过但是没有明白它真正含义的名词,亚稳态和异步FIFO的作用。

    FPGA中的亚稳态是跨时钟域设计师最基本也是最重要的一个问题。要明白亚稳态首先要知道在数字电路中最简单的双稳态电路就是两个反相器首尾相连,加一些简单的控制逻辑就变成了锁存器或者触发器,然而这种电路其实还有第三种半稳定态,就是当两个反相器都处于中间值的情况,这就成为亚稳态。由于反相器在非逻辑值范围的反馈系数是非常大的,一旦因为干扰或者噪音离开了这个中心点,就会很快的进入逻辑范围。经数学分析,从亚稳态进入稳态,正如放射元素的衰变是一个指数的过程。当器件处于亚稳态是消耗的功率很大,但是亚稳态最大的危害不是功率的消耗,而是逻辑的混乱。,这是数字电路设计中最不好的。那么我们究竟如何避免亚稳态呢?由于它的变化规律是指数的,因此最好的办法就是等待,等到足够的时间,指导这个几率变得小的几乎不会发生。到底要等待多少时间呢?有的厂商有数据,但是有的没有,按照最普通的做法,就是至少等待一个时钟周期,这个就是所谓的异步数据要用两个触发器打一下,这样就可以避免亚稳态的发生。
    另外,异步FIFO也是跨时钟域设计方法的集中体现,体现了很多方法,不过最重要的就是亚稳态和多控制/状态信号的跨时钟域传递。具体地说,就是把一组信号传递到另外一个时钟域的时候,这组信号可能因为延时不同,得到的数据相差一个老的时钟域时钟周期,这和避免亚稳态的原理是一样的。
   在分析代码时,觉得自己真的学会了许多东西。也许以前有些东西是自己碰到过的,可是并没有真正理解,通过这种学习方式,我发现不仅可以学习新的知识,而且对自己写代码很有帮助,我会继续努力的。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表