| |
现有模块A,B分别属于时钟域C,时钟域D.
信号valid从低变高(高变低)跳变表明模块A有数据已准备就绪,且valid只有在模块A计算的时候才会从高变低(低变高),valid信号由CDC(时钟域C同步到时钟域D,CDC:三级寄存器打拍子)进行同步。
当时钟D变频的时候,时钟D在一段时间内可能是处于静止状态。在这段时间内,valid信号先从低变高(高变低),再从高变低(低变高)。由于没有了D时钟,CDC的输入端有变化,但是输出端没变化,最终导致的结果CDC没有将valid的变化同步到时钟域D,模块B无法检测到valid从低变高(高变低)跳变的变化。模块A传递数据到模块B失败。