关于时钟
- 参考
- https://zhuanlan.zhihu.com/p/405934692
- 《硬件架构的艺术》
1. 同步时钟 & 异步时钟
1.1 同步时钟
- 如果多个时钟都起源于同一时钟,并且它们的相位和频率关系是已知的,那么它们可以看成是同步时钟。
- (1) 同源同频同相位
- 来源于同一时钟源,频率和相位都是相同的。只需要满足正常的建立和保持时间就可以。
- (2) 同源同频不同相位
- 相位差为一恒定值,会有更小的建立/保持时间的裕量,对组合逻辑的约束更紧。
- 例如两个时钟路径不同,导致时钟之间存在一定的时钟偏移;可以在版图级对时钟偏移进行填补。
- 相位差为一恒定值,会有更小的建立/保持时间的裕量,对组合逻辑的约束更紧。
- (3) 同源不同频,但存在整数分频比
-
相位差仍然是固定的。
-
通常都是可以满足建立保持时间的。
- 最差建立时间检查在时钟边沿相位差为T时进行,最差保持时间检查在时钟边沿相位差为零时进行。
- 最差建立时间检查在时钟边沿相位差为T时进行,最差保持时间检查在时钟边沿相位差为零时进行。
-
对于慢时钟到快时钟、整数倍频率,快时钟总能采到慢时钟的数据信号。
-
对于快时钟到慢时钟,如果快时钟域的信号长度过窄,那么慢时钟域采样时可能会漏掉该信号。
- 对于两个时钟频率相差不大情况,可以将快时钟信号进行打拍,具体打几拍根据分频比确定。
- 对于两个时钟频率相差较大情况,可以在快时钟域采用计数方法(计数值根据频率差计算)来展宽信号的有效时间。
- 快时钟域到慢时钟域的处理还可以使用脉冲同步器和握手协议等实现。会在跨时钟域处理篇详细介绍。
-
- (4) 同源不同频,非整数倍分频比
- 因为是同源时钟,所以相位差也是可以计算出来的。
- 对于相位差较大时,可能是可以满足建立保持时间的,但是如果增加延时大的组合逻辑就需要使用同步器。
- 两个时钟的边沿可能间隔性的非常接近,对于画圈周期,时钟沿非常接近,可能会出现亚稳态,但是下个周期的裕量就会很大,以便数据可以被目标时钟正确捕获。
- 时钟间相位差小,并且连续存在几个周期。
- 前面两个可能会违背建立时间,而后面两个会违背保持时间,需要进行同步处理。
- 前面两个可能会违背建立时间,而后面两个会违背保持时间,需要进行同步处理。
1.2 异步时钟
- 无法确定相位或频率关系的时钟,对于来自不同时钟源的时钟一定是异步时钟。
- 异步信号同步处理见跨时钟域篇博客.
2. 时钟属性
-
skew:时钟前往不同寄存器的时钟端口会有不同的线网延迟,不同寄存器之间的时钟信号相位差称为skew。与时钟频率无关,只与线长,电容等相关。
-
jitter:相对于理想时钟,实际时钟会在理想时钟左右存在一定的偏移,不随周期积累。与时钟频率无关。这两者被称为时钟不确定性(uncertainty)。
-
transition:与器件特性和电容负载有关,并不是理想的直上直下,而是有一定的坡度。
- 时钟转换时间越短,而且上升和下降越对称,时钟质量越好。
-
latency:包括时钟源延迟(source latency)和时钟网络延迟(network latency)。
- 时钟源延时是时钟源到时钟定义点的延时。
- 时钟网络延时是时钟定义点到寄存器时钟端口的延时。
-
这篇博客中也有时钟属性相关的介绍,在DC中,skew、jitter值与建立时间检查之间的关系。