跨时钟域FIFO的老话题:快时钟域的地址信息如何同步到慢时钟域?
昨天面试被问题这个问题,面试官问译码FIFO的关键技术,如何解决? 我当时以为理解的没问题,就按照Clifford Cummings的论文上来讲。关键技术在于处理译码读写时钟域的地址信息,产生空满信号。解决方法是使用同步器降低亚稳态,使用格雷码保证每次只变1位,即使采错也是+1或-1的问题,不会造成致命错误。 但那个面试官就说,如果两个时钟相差很大,怎么保证快时钟域的信号传递到满时钟域? 我说需要在快时钟域进行信号宽带的展宽,保证被慢时钟域采到。 接着他就问,那FIFO两侧不能这样做吧,怎么保证快时钟域的地址被慢时钟域采到?会不会出现问题? 我就蒙了,感觉有问题,但觉得应该没问题。。。。就说没问题,但不知道为什么? 希望明人指点~~~~ |