异步fifo的格雷码的约束核心在于各个bit走线延时的skew,也就是set_max_delay-set_min_delay,保证各个bit的走线尽可能一致。
为什么会有这样的要求?这个问题的根源在于为什么使用格雷码,格雷码的好处很明显,也就是相邻两位最多有1bit不同,那么对应到fifo中,指针都是逐一递增或者逐一递减的,
不设置max_delay的影响,最大的影响就是上面所提到的,数据错乱导致功能完全不能用,这里其实还暗含着一个问题,也就是性能下降的问题,如果格雷码走线延时太大,几个cycle,就会导致异步fifo可用的时间滞后,造成性能下降,极限的情况,delay3个cycle,深度为2,这也是不能使用的了