芯片公司面试常问的‘跨时钟域处理(CDC)’问题,除了双锁存器和异步FIFO,还有哪些必须掌握的方案和检查要点?
准备数字IC设计和FPGA的面试,CDC是必考题。我知道最基础的是双锁存器同步器,以及处理数据流的异步FIFO。但面试官往往会深入问:单bit信号用同步器就够了,多bit数据总线该怎么办?握手协议(handshake)具体怎么实现?还有格雷码的使用场景。更重要的是,在实际项目中,如何保证CDC设计是正确的?需要做哪些检查(比如形式验证工具CDC检查)?希望能系统性地梳理一下CDC的知识点和面试回答思路。