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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: hiwzy

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

[复制链接]
发表于 2017-2-15 11:37:41 | 显示全部楼层
个人理解下, 异步fifo的实现不同的design有很多差别。 读写时钟快慢问题, 应是通过仿真和电路function进行保证的。即如果fifo一侧连续有效操作太快(请注意是连续有效操作太快),另一侧地址同步根本来不及或者同步出现错误,导致异步fifo crash 。 所以还得主要看应用的功能和仿真结果是否可以保证异步fifo的正确使用。
发表于 2017-2-15 14:35:50 | 显示全部楼层
mark!!!
发表于 2017-2-15 20:41:03 | 显示全部楼层
回复 1# hiwzy 相差100倍,如果用almost empty/almost full就要考虑fifo的深度是否够深了,深度估计起码要400以上。
因为地址同步时一般会至少延迟2个cycle,必须保证2个慢cycle内,快cycle不会累计1个fifo深度,
所以fifo深度必须>200以上才能用常用的FIFO设计方法。考虑almost empty,深度估计还要增加1倍,〉400。
发表于 2017-5-11 18:06:02 | 显示全部楼层
FIFO两侧读写时钟速率差异太大时需要注意会同时置空满指示的问题:例如写时钟是100MHz,读时钟是1MHz,地址指针同步会有延迟,且延迟的时间由慢时钟决定,一般会有五个周期的延迟,此例中延迟时间会大于5×1000ns=5000ns。
开始写入数据之前,FIFO置空指示信号,写入数据后,由于写地址同步到读时钟域有延迟,因此空指示仍然有效,如果FIFO深度不够,当数据写满之后,写地址还是没有成功同步到读时钟域,这个时候就会同时置空满指示信号。例如,FIFO深度为256时,写满FIFO只需要256个写时钟周期,即2560ns,而在这个时间内,变化的写地址都还没有能够同步到读时钟域。
因此,当读写时钟速率差异太大时,需要注意FIFO的深度是否合适。
发表于 2017-5-12 10:13:45 | 显示全部楼层
大家搞清楚人家问题,读写时钟对调100M 两个可互换的条件,很明显问会产生什么样时序问题
发表于 2017-5-12 10:20:05 | 显示全部楼层




   还请明示会产生什么样的时序问题?
发表于 2017-5-12 10:21:58 | 显示全部楼层


大家搞清楚人家问题,读写时钟对调100M 两个可互换的条件,很明显问会产生什么样时序问题
expoed 发表于 2017-5-12 10:13



还请明示会产生什么样的时序问题?
发表于 2017-5-26 03:53:33 | 显示全部楼层
直接不用做了,问这种问题估计就是不想让你通过。
实际上如果iC里有这种结构的话,IC失败的概率大于90%
发表于 2017-5-26 17:51:52 | 显示全部楼层
回复 11# 杰克淡定


    你说的很对。
    实际上这些问题在sunburst的文章中都是提到了的。
发表于 2017-5-27 02:10:37 | 显示全部楼层
回复 45# eesub
国内不缺你这类的,说话不带个dirty word好像都串不起来是吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 22:10 , Processed in 0.022061 second(s), 5 queries , Gzip On, Redis On.

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