XILINX赛灵思FPGA_CPLD系列芯片-FPGA的多bit信号跨时钟域为什么不能使用两级同步处理
你的位置:XILINX赛灵思FPGA_CPLD系列芯片 > 芯片产品 > FPGA的多bit信号跨时钟域为什么不能使用两级同步处理
FPGA的多bit信号跨时钟域为什么不能使用两级同步处理
发布日期:2024-02-05 11:11     点击次数:117

如何处理跨时钟域的多bit信号?为什么不能用两级打拍?许多学生只记得结论,本文以图表的形式详细说明。        可以先回顾FPGA单bit信号跨时钟域处理方法(面试比问),可能会出现以下两种情况。单bit位宽数据两级同步情况

        情况一:下图为T0时间亚稳态,T1时间Q1输出稳定在高电平,满足Tsu和Th。因此,在T1时刻,Q2成功锁定了高电平。        情况2:下图显示了T0时间的亚稳态。T1时间Q1的输出稳定在低电平,满足TSU和Th。因此,在T1时刻,Q1成功地锁定了Q0的高电平,Q2成功地锁定了Q1的低电平。在T2时刻,Q2成功锁定了Q1的高电平。        可以看出,Q2最终会锁定到Q0的高电平。要么在T1,要么在T2。换句话说,Q2要么锁定旧数据,要么锁定新数据。

两个bit位宽数据同步        为2bit数据添加跨时钟域处理,也采用两级打拍同步,会发生什么?例如:原始数据为Q00和Q01,分别进行两级同步电路处理,最终输出Q20和Q21。        如果Q0从2‘b00跳转到2’b11,Q10在亚稳态后稳定在低电平,而Q11在亚稳态后稳定在高电平。        在T2时刻,Q2将采样到2‘b11的数据。在T1和T2之间取样到2’b10的数据。        换句话说,Q2不再锁定Q0的旧数据,也不再锁定Q0的新数据,而是可能出现其他数据。如果通过Q2==2’b10产生脉冲来控制其他逻辑,这里会出现功能错误。        

同样,更多bit数据跨时钟域采用两级同步处理,情况相似。