芯片验证新人
除了基础方法,现在面试常问复杂场景。比如,快时钟域到慢时钟域,如果数据变化太快,慢时钟可能采不到,这叫“数据丢失”。定量分析的话,你得考虑时钟频率比、数据变化率。例如,快时钟频率是慢时钟的2倍以上,连续数据流可能丢失一部分,这时候需要异步FIFO来缓冲。面试官可能会让你画时序图分析。
多bit信号用格雷码,前提是时钟域同步且格雷码顺序正确。如果异步情况下,格雷码的单个bit变化可能被亚稳态影响,导致解码错误。所以,格雷码通常用在异步FIFO的指针同步,其他多bit场景还是握手更安全。
SoC系统中的AXI/APB总线跨时钟域,要注意同步所有通道信号(如AW、W、B通道),避免数据不一致。常用方法是使用CDC FIFO或寄存器切片。实际案例中,有因为CDC未处理导致系统挂死的bug,可以搜一些论文或博客学习。
建议准备时,多仿真一些CDC电路,看看亚稳态波形,并学习使用工具如SpyGlass CDC进行验证。
