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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: hiwzy

[讨论] 今天华为面试题:异步FIFO读时钟是写时钟的100倍,或者写是读的100倍会出现什么问题?

[复制链接]
发表于 2020-10-20 21:32:35 | 显示全部楼层
谢谢大家,受教了
发表于 2020-10-26 15:59:01 | 显示全部楼层
同步的过程有两个:
(1)将写时钟域的写指针同步到读时钟域,将同步后的写指针与读时钟域的读指针进行比较产生读空信号
(2)将读时钟域的读指针同步到写时钟域,将同步后的读指针与写时钟域的写指针进行比较产生写满信号
大多数情形下,异步FIFO两端的时钟不是同频的,或者读快写慢,或者读慢写快,慢的时钟域同步到快的时钟域不会出现漏掉指针的情况,但是将指针从快的时钟域同步到慢的时钟域时可能会有指针遗漏,举个例子以读慢写快为例,进行满标志判断的时候需要将读指针同步到写时钟域,因为读慢写快,所以不会有读指针遗漏,同步消耗时钟周期,所以同步后的读指针滞后(小于等于)当前读地址,所以可能满标志会提前产生,满并非真满。进行空标志判断的时候需要将写指针同步到读指针 ,因为读慢写快,所以当读时钟同步写指针 的时候,必然会漏掉一部分写指针,我们不用关心那到底会漏掉哪些写指针,我们在乎的是漏掉的指针会对FIFO的空标志产生影响吗?比如写指针从0写到10,期间读时钟域只同步捕捉到了3、5、8这三个写指针而漏掉了其他指针。当同步到8这个写指针时,真实的写指针可能已经写到10 ,相当于在读时钟域还没来得及觉察的情况下,写时钟域可能偷偷写了数据到FIFO去,这样在判断它是不是空的时候会出现不是真正空的情况,漏掉的指针也没有对FIFO的逻辑操作产生影响。
发表于 2021-1-5 15:42:12 | 显示全部楼层
就是考虑吞吐量的问题,写时钟X数据宽度 需要和读时钟X 读数据宽度平衡才行,不然就是满和空
发表于 2021-2-9 17:48:58 | 显示全部楼层
慢时钟区域采集到的格雷码可能多bits 发生改变,这样慢时钟域的指针就会出错吧。
发表于 2021-4-23 15:49:57 | 显示全部楼层


骗我金币积分。这种资料博客里早烂大街了,看过无数遍了,还来卖金币。况且里面并没有讲什么解决方法
发表于 2021-4-27 11:06:51 | 显示全部楼层
mark一下,有空回头还要仔细看看各路大神的回复。有时候觉得自己数字电路不含糊了,但是看看大家说的,瞬间觉得还有好多东西要更加深入的研究才行。
发表于 2021-4-27 16:47:35 | 显示全部楼层


SimonZhamg 发表于 2019-5-18 00:16
1. 首先,关于AFIFO的问题,确实,最起码可以考察出初级/资深 ASIC designer的区别。但是再往高,考察AFIFO ...


再高一点,考察AFIFO不合适,那会考察什么呢  ?我怎么感觉,越是高级的设计,越是跟底层的小电路紧密相关?
发表于 2021-6-27 10:56:25 | 显示全部楼层


lxq124lxq 发表于 2017-5-11 18:06
FIFO两侧读写时钟速率差异太大时需要注意会同时置空满指示的问题:例如写时钟是100MHz,读时钟是1MHz,地址 ...


同意你的说法
发表于 2021-6-28 22:13:49 | 显示全部楼层
shooucang,deng等高手
发表于 2021-6-29 16:19:29 | 显示全部楼层
你答的可以,面试官在那装,他自己就没把问题问清楚
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 17:39 , Processed in 0.020956 second(s), 6 queries , Gzip On, Redis On.

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