在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: wayong

同步FIFO和异步FIFO各在什么情况下应用

[复制链接]
发表于 2007-12-21 17:35:32 | 显示全部楼层

-

首先要明白这里的同步FIFO和异步FIFO的使用场合。当你的设计中只有一个时钟信号的时候,所有的寄存器都使用同一个时钟,他们之间不会产生传输速度不匹配的情况;而当你的设计中存在多个时钟信号,并且需要在这几个时钟域之间传输数据的时候,寄存器会由于时钟信号的频率不匹配而产生数据丢失等情况,这个时候需要用异步FIFO来进行缓存,保证数据能够正确传输,因此一般异步FIFO会包含一个双端口的RAM,用于数据记录,详细地可以参考FIFO的相关资料。这里的异步指的是不同频率/不同相位的时钟信号。而同步FIFO一般只用来作buffer。
大概就是这样子。
发表于 2007-12-23 16:54:45 | 显示全部楼层
同步FIFO就是读写时钟相位关系是确定的, 而异步FIFO就是读写时钟相位关系是不确定的.
发表于 2007-12-23 21:45:00 | 显示全部楼层
使用异步FIFO
肯定是跨时钟域的
发表于 2008-3-11 21:28:02 | 显示全部楼层
我也想知道,是否可以理解为当FIFO两端数据速率不匹配时用异步的,当速率相同时用同步的,这时FIFO可以实现数据位数的变换?
发表于 2008-3-12 09:28:02 | 显示全部楼层


原帖由 becoll 于 2008-3-11 21:28 发表
我也想知道,是否可以理解为当FIFO两端数据速率不匹配时用异步的,当速率相同时用同步的,这时FIFO可以实现数据位数的变换?



FIFO是不会实现数据位数的变换的。它只是实现了数据能被正确的传递。
同步就不用说了,异步时,当写满和读空时都有相应的信号告诉发送和接受模块,
这样就不会用冲突了
发表于 2008-3-13 09:29:55 | 显示全部楼层
找个例子自己看就知道了
发表于 2008-3-14 19:52:45 | 显示全部楼层


原帖由 bandao 于 2008-3-12 09:28 发表


FIFO是不会实现数据位数的变换的。它只是实现了数据能被正确的传递。
同步就不用说了,异步时,当写满和读空时都有相应的信号告诉发送和接受模块,
这样就不会用冲突了




支持,大概就是这个样子
发表于 2008-4-14 14:57:49 | 显示全部楼层
我有个想法,不知道可不可行。
即使两个异步的读写信号,我们也可以先不它们同步在一个clockdomain里(clock快的那个)。同时保证data进fifo时不会发生变化,dada出fifo后被下一个clock用的时候数据也不会发生变化。这样不是可以把异步fifo用同步fifo来实现了吗?
发表于 2008-4-19 14:33:42 | 显示全部楼层
同步FIFO用于缓存数据,读写用同一时钟;异步FIFO读写时钟不同,用来解决异步时钟域设计引起的亚稳态问题
发表于 2009-8-18 19:48:00 | 显示全部楼层


原帖由 wice3 于 2007-3-19 17:56 发表

如果ad送过来的数据随路时钟能跟fpga内部的接口、处理器时钟同步,那么用同步fifo完成数据的缓冲就ok了
如果异步,那要用异步fifo来完成时钟域的过渡。


请问一下,那我怎么才能让数据同步呢?什么时候才算是同步呢??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-3 22:49 , Processed in 0.030549 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表