APP下载

浅谈数位电路设计中的异步FIFO(一)

消息来源:baojiabao.com 作者: 发布时间:2024-05-09

报价宝综合消息浅谈数位电路设计中的异步FIFO(一)

随着芯片技术的发展,人们总想在芯片里面实现更多的功能,新增不同的模组,所以导致设计的规模越来越大,在同一颗芯片内部,时钟网络也越来越复杂,往往有很多个时钟同时存在,并且需要在不同的工作模式下,进行时钟切换。这种多时钟域带来一个设计的难点,就是如何设计异步时钟之间的界面电路。

我们都知道,讯号在不同时钟域之间进行传输的时候,非常容易出现亚稳态(亚稳态的问题,今天先不细谈,可以简单的认为,亚稳态会导致暂存器采集到的资料错误)。

根据讯号的分类,单位元讯号多位元讯号,传送时钟域接收时钟域的快慢关系的不同,会有不同的解决亚问题的办法(后面会写文章详谈)。

在这些方法中,异步FIFO(First In First Out)是解决这个问题一种简便、快捷的解决方案。使用异步FIFO可以在两个不同时钟域之间,方便地传输实时资料。所以异步FIFO在网络界面、影象处理等领域, 得到了非常广泛的应用。

异步FIFO概念

异步FIFO是一种可以实现异步读写操作,先进先出(First In First Out)的电路,通常被使用在资料传输界面的部分,用来储存、缓冲资料,解决在两个异步时钟之间的资料传输问题。

在异步电路中,因为两个时钟之间的周期和相位之间,完全相互独立,所以在资料传送,采集过程中,有很大的概率,会发生资料丢失或者过取样问题(传送时钟域为快时钟,接受时钟域为慢时钟,出现丢失资料情况,传送时钟域为慢时钟,接受时钟域为快时钟,出现数据过取样情况)。

异步FIFO设计

FIFO的储存介质为一块双埠RAM,可以同时进行读写操作。

在写时钟域部分,由写地址控制逻辑,产生写地址和写控制讯号;在读时钟域部分,由读地址控制逻辑,产生读地址和读控制讯号;在空/满标志位控制部分,通过比较读写地址,产生空/满标志位。设计异步FIFO有两个难点:

如何同步异步讯号,抑制亚稳态的发生。如何正确地设计空、满标志位的控制电路。

抑制亚稳态的发生理论上讲,亚稳态是不可能完全消除的,只能通过技术手段,将发生的概率降低到可接受的范围之内。一般通过以下两种方式,来达到降低亚稳态发生概率的目的。

写地址/读地址用格雷码进行编码。因为格雷码具有,每次只变化一位元的特点,所以在资料变化过程中,可以有效地降低亚稳态的产生概率。 采用触发器来同步异步输入信。一般我们认为使用两级触发器,就可以将出现亚稳态的概率,降低到一个可以接受的程度(有研究证明,再采用更多级数的触发器,降低概率有限)。

小结

今天我们聊了异步FIFO的概念,和在进行FIFO设计中要注意的第一个问题。第二个空满标志位的产生问题,因为比较复杂且比较关键,所以后面会再写一篇文章详细介绍。
2019-07-12 12:52:00

相关文章