跨时钟域脉冲采样分为两种情况:一种情况是快时钟采样慢时钟域下的脉冲信号,另外一种情况是慢时钟采样快时钟域下的脉冲信号。
A:快时钟采样慢时钟域下的脉冲信号
这种情况较为简单,例如存在慢时钟CLKA域下的脉冲信号pulse_a,将脉冲信号pulse_a同步到CLKB时钟域下,只需要用CLKB时钟对pulse_a打三拍,然后对打拍后的信号进行组合逻辑,就可以得到CLKB时钟域下的脉冲信号。
B:慢时钟采样快时钟域下的脉冲信号
慢时钟clkb采样快时钟clka域下的脉冲信号puls_a_in,如果单纯采用打两拍的方式进行采样有可能采不到,因此需要对脉冲信号puls_a_in进行延展,直到慢时钟clkb采样到有效信号,再将有效信号同步至快时钟域clka,将延展的脉冲信号拉低即可。具体的结构图如下所示:
如图所示,得到signal_b_b1信号和signal_b_b2信号经过取反相与后,得到clkb时钟域下胡脉冲信号puls_b_out,各信号时序图凸显所示: