时钟偏移反映了时钟信号到达同一时序路径上的不同寄存器的时钟端口之间的时间差异,如下图所示。时钟clk从源端到达寄存器FF1的时间点为Tclk1,到达寄存器FF2的时间点为Tclk2,故时钟偏移即为Tclk2与Tclk1的差。若clk源端记为零时刻点,那么Tclk1和Tclk2分别对应发送时钟路径延迟和捕获时钟路径延迟。
时钟偏移可正可负。通常,若数据流向与时钟前进方向一致,那么时钟偏移为正。否则为负,如下图所示。
时钟偏移对时序收敛有什么影响呢?我们从建立时间裕量和保持时间裕量两个角度分析。先以正向的时钟偏移为例。建立时间裕量分析如下图所示,发起沿和捕获沿相差一个时钟周期。由图中建立时间裕量表达式可以得出结论:正向的时钟偏移对建立时间收敛是有利的,相当于捕获寄存器的建立时间由Tsu减小至Tsu-Tskew。
保持时间裕量分析如下图所示,保持时间检查的发起沿和捕获沿为同一时钟沿(保持时间检查是基于建立时间检查的,要求当前发送沿发送的数据不能被前一个捕获沿捕获;下一个发送沿发送的数据不能被当前捕获沿捕获)。由图中保持时间裕量表达式可以得出结论:正向的时钟偏移不利于保持时间收敛。相当于数据在有效沿到达之后还要稳定保持的时间变长了,由原来的Th变为Th+Tskew。这显然阻碍了保持时间收敛。
结合建立时间裕量和保持时间裕量表达式,若Tskew为负,则建立时间收敛更加困难,保持时间收敛更加容易。
文章来源《AMD FPGA设计优化宝典》
转载事宜请私信 | 获得授权后方可转载