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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: hiwzy

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

[复制链接]
发表于 2019-5-18 00:16:07 | 显示全部楼层
本帖最后由 SimonZhamg 于 2019-5-18 00:28 编辑

1. 首先,关于AFIFO的问题,确实,最起码可以考察出初级/资深 ASIC designer的区别。但是再往高,考察AFIFO就有点不合适。
2. 第二,有个铁律,任何afifo的应用都需要读写两端throughput balance。这是一个需要注意的点。
3. 第三,读看空,写看满。故空flag在读clock domain,满flag在写clock domain。这点需要再次注意。
4. 第四,afifo的空、满 flag都是保守flag,这是基于afifo的异步机制决定(写地址需要sync到读端,读地址需要sync到写端,格雷码转换……等等),所以,不要说两遍clock差100倍,即便差1万倍,afifo的function必定仍然能够正常work。
5. 非要说可能会发生啥事情,那就是这种设计注意下深度,throughput需要计算好。就这样。
发表于 2019-5-18 00:48:06 | 显示全部楼层
前面帖子有的说如果读写clock差别太大,会导致异步机制失效,即慢clock采快地址会同时几根地址先一块儿变,导致地址错误,从而引发错误的空满信号。这个是错误的理解格雷码了。
格雷码之所以为格雷码,是因为以时间为X轴来看,任何时刻格雷码地址均只有一个BIT在反转。不论采它的clock在时间轴的那个phase,均可能采到一个反转的地址线,即便采到亚稳态,也只有一个地址线存在亚稳态;换句话说,只可能采到“历史地址”,并非“错地址”。这是两个概念。
发表于 2019-5-27 16:27:19 | 显示全部楼层
我做fpga高速通信都好几年了,我也不知道。
发表于 2019-9-26 15:19:16 | 显示全部楼层
不错的经验分享,谢谢
发表于 2019-9-29 17:58:03 | 显示全部楼层
神经  一道前端设计题 硬生生扯成后端时序题   
发表于 2019-9-29 18:03:42 | 显示全部楼层
1. 首先,关于AFIFO的问题,确实,最起码可以考察出初级/资深 ASIC designer的区别。但是再往高,考察AFIFO就有点不合适。
2. 第二,有个铁律,任何afifo的应用都需要读写两端throughput balance。这是一个需要注意的点。
3. 第三,读看空,写看满。故空flag在读clock domain,满flag在写clock domain。这点需要再次注意。
4. 第四,afifo的空、满 flag都是保守flag,这是基于afifo的异步机制决定(写地址需要sync到读端,读地址需要sync到写端,格雷码转换……等等),所以,不要说两遍clock差100倍,即便差1万倍,afifo的function必定仍然能够正常work。
5. 非要说可能会发生啥事情,那就是这种设计注意下深度,throughput需要计算好。就这样。
-----------------------------------------------------------------------------------------------------------------------------
赞这个回复

我就想问一句  这道面试题考察的知识点 本质是什么   华为 呵呵  PPT写多了吧
发表于 2019-10-9 14:49:54 | 显示全部楼层


SimonZhamg 发表于 2019-5-18 00:48
前面帖子有的说如果读写clock差别太大,会导致异步机制失效,即慢clock采快地址会同时几根地址先一块儿变, ...


但是如果地址各bit时延差别比较大,有可能造成两个bit同时翻转,因为下一拍的翻转bit和本拍时延大的翻转bit有可能同时发生。
发表于 2019-10-9 14:53:14 | 显示全部楼层


gransport 发表于 2019-10-9 14:49
但是如果地址各bit时延差别比较大,有可能造成两个bit同时翻转,因为下一拍的翻转bit和本拍时延大的翻转b ...


不过这个跟读写时钟差别大无关,只是设计中要考虑的问题。
发表于 2019-10-9 20:58:43 | 显示全部楼层


gransport 发表于 2019-10-9 14:53
不过这个跟读写时钟差别大无关,只是设计中要考虑的问题。


对,所以关于格雷码异步界面,需要约束中设置所有bit的skew不能超过1个时钟周期。否则确实会有问题。
发表于 2019-10-22 11:03:59 | 显示全部楼层
不错的经验分享,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-27 14:32 , Processed in 0.027039 second(s), 5 queries , Gzip On, Redis On.

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