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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: hiwzy

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

[复制链接]
发表于 2022-2-21 17:00:42 | 显示全部楼层


lxq124lxq 发表于 2017-8-17 15:12
这是Xilinx FIFO core文档中的描述:


还是说明了问题
发表于 2022-7-31 12:28:20 | 显示全部楼层
比较简单的异步fifo设计就是以地址位宽+1作为指针,然后将指针变为格雷码后跨时钟域后判断空满,满标志为最高两位相反其他位相同。

但是想到一个问题:比如当读的时钟频率为写的时钟频率的100倍时候,写时钟去采读的格雷码不是会出现漏采的情况吗,那判断满标志不就出现问题了?

请问是不是这种简易的fifo设计的漏洞了,是不是得改变跨时钟域的方法(不能简单打两拍),或者改变判断空满的方法?

如果通过加缓存避免漏采的话,那跨时钟域后的写指针是不是落后于实际的写指针了。

有没有大佬解答我的疑问呢?
发表于 2022-8-1 11:36:17 | 显示全部楼层


xkxxxxzzz 发表于 2022-7-31 12:28
比较简单的异步fifo设计就是以地址位宽+1作为指针,然后将指针变为格雷码后跨时钟域后判断空满,满标志为最 ...


满标志是“悲观”的,可能会造成实际非满而标志显示满,这个是可以接受的。
发表于 2022-8-17 22:44:10 | 显示全部楼层


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


题主的意思应该是,快到慢的时候,格雷码同步到读时钟域出现漏采集,所以不是相邻的格雷码,则会有多bit的跳变发正在读时钟域的格雷码转二进制码的组合逻辑中,从而导致产生错误的写地址同步
发表于 2022-8-17 22:55:24 | 显示全部楼层


国际米兰 发表于 2021-9-5 21:17
快时钟的格雷码确实可能发生了多bit的改变。但是这些多bit是不同的时刻变化的
对于慢时钟采集的那个沿的 ...


假设快时钟域的地址从1到5,而慢时钟的时钟沿只采集到1和5,则对于慢时钟域的器件来说,不就是同时发生了多bit跳变吗?
发表于 2022-10-22 21:51:09 | 显示全部楼层
image.png
发表于 2023-5-27 11:40:56 | 显示全部楼层
本帖最后由 manongyu 于 2023-5-27 14:22 编辑

个人想法:假设读写时钟为1:100,但是读或写操作在空或满的状态下即停止读写操作,所以我相信即使空满同时置位没有什么问题;另外一个问题,对于跨时钟域处理的问题,因为现在读写时钟差距较大,那么在慢时钟势必采到不连续的快时钟域地址(格雷码地址有多位变化),为了在慢时钟域的采样沿的建立时间或者保持时间内仅有一个跳变沿,那么不同的格雷码地址线的skew如何在综合室控制?
发表于 2023-5-29 15:37:43 | 显示全部楼层
fifo本身不会出错,afifo地址变换的时候出错很正常,但不会影响fifo的功能。只是要控制好fifo的深度,以及读写使能控制,及空满信号的使用
发表于 2023-5-31 13:28:20 | 显示全部楼层


zhangxuTHU 发表于 2022-8-17 22:55
假设快时钟域的地址从1到5,而慢时钟的时钟沿只采集到1和5,则对于慢时钟域的器件来说,不就是同时发生了 ...


跳变指的是要采集的数据(也就是触发器的D端数据)的变化,而不是看采集后的数据(即Q端的数据)的变化
跨时钟域时快时钟域地址是D端,快时钟域地址1~5变化,但每次变化只改变1比特
发表于 2023-6-3 21:59:10 | 显示全部楼层
假空假满的问题?
这个100倍是不是会导致假的程度?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 17:23 , Processed in 0.023530 second(s), 7 queries , Gzip On, Redis On.

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