这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 异步FIFO结构(写得很好,强烈推荐)

共174条 1/18 1 2 3 4 5 6 ›| 跳转至

异步FIFO结构(写得很好,强烈推荐)

高工
2009-09-22 14:53:19     打赏

异步FIFO结构(写得很好,强烈推荐)
作者:Vijay A.Nebhrajani
翻译:Adam Luo

第一部分
    设计一个FIFO是ASIC设计者遇到的最普遍的问题之一。本文着重介绍怎样设计FIFO——这是一个看似简单却很复杂的任务。
一开始,要注意,FIFO通常用于时钟域的过渡,是双时钟设计。换句话说,设计工程要处理(work off)两个时钟,因此在大多数情况下,FIFO工作于独立的两个时钟之间。然而,我们不从这样的结构开始介绍—我们将从工作在单时钟的一个FIFO特例开始。虽然工作在同一时钟的FIFO在实际应用中很少用到,但它为更多的复杂设计搭建一个平台,这是非常有用的。然后再从特例推广到更为普通的FIFO,该系列文章包括以下内容:
1.单时钟结构
2.双时钟结构——双钟结构1
3.双时钟结构——双钟结构2
4.双时钟结构——双钟结构3
5.脉冲模式FIFO


第二部分
    在先前的该系列文章中,我们看到了怎样用双端口、无寄存器输出的RAM设计同步FIFO。这部分我们将探讨同样的概念,并将其推广到怎样产生具有相互独立、自由工作的读、写时钟的FIFO。拥有自由工作时钟简化了很多问题,但是这导致了一个特殊情况下的解决方法。普通情况下不对时钟进行假设,甚至不假设其自由工作。我将在本系列文章的最后一部份讨论最普通的情况。
如果你看过先前的文章,你会发现只有status模块工作在两个时钟。存储器没有寄存输出,所以它确实不需要用读时钟;即使它是寄存输出,也可毫无问题的运行于读时钟上。Status模块本质的功能是对两个指针进行操作,而且这两个指针工作在不同的时钟域。这也是真正的困难所在。如果打算用写时钟来取样读指针或用读时钟来取样写指针,将不可避免的遇到一个问题:亚稳态。它将导致空/满标志的计算错误,并导致设计的失败。


第三部分
    在本系列文章的第一部分我们了解了FIFO的一般结构,并分析了单时钟FIFO的一个特例[1]。第二部分描述了双时钟设计的一种可能的结构。在第三部分我们将探究一种具有新颖结构的双时钟FIFO。这种结构未必更好——只是另一种实现的方法而已。

中文PDF,共18页,写得很好,强烈推荐。
为了让更多人看到,设置为“回复可见”,大家顶起啊!如果楼有幸盖到100楼时,再取消“回复可见”,谢谢各位。


异步FIFO结构.rar




关键词: 异步     结构     写得     很好     强烈     推荐     时钟    

菜鸟
2009-09-22 19:17:14     打赏
2楼
好像不错,我想看看。谢谢楼主

菜鸟
2009-09-22 20:59:27     打赏
3楼
顶起

助工
2009-09-23 08:43:05     打赏
4楼

好东西,不错


菜鸟
2009-09-23 09:59:29     打赏
5楼
ARM中的FIFO我总是不太明了,希望顶了后有用。

菜鸟
2009-09-23 11:12:22     打赏
6楼
正在学习中,谢谢

高工
2009-09-23 12:10:28     打赏
7楼
大家加油啊,离100楼的目标好远哦。但也别恶意灌水哦,呵呵

高工
2009-09-23 12:22:18     打赏
8楼
ARM中的FIFO,应该是指UART、I2C等外设的缓存吧,这些主要掌握寄存器的操作,多看些例子就会了。

菜鸟
2009-09-23 15:27:55     打赏
9楼

冒失不错,下来看看!


助工
2009-09-23 16:47:48     打赏
10楼
先看看吧,貌似quartus中有模块,可以直接调用吧?

共174条 1/18 1 2 3 4 5 6 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]