跨时钟域(Clock domain crossing,简称CDC),或称时钟域交叉,在数字电子设计中,是指定時器訊號在同步電路中从一个时钟域进入另一个时钟域的过程。如果信号保持有效时间不足且未被寄存,在进入目标时钟边界时可能表现为异步信号。
同步系统由单个电子振荡器产生的定時器訊號及其时钟域组成。时钟域包括由该振荡器直接驱动的存储元件,以及连接在这些存储元件输出端的组合逻辑。
由于光速传播延迟、时钟偏移等因素, 此类同步系统中时钟域的规模与时钟频率成反比。早期计算机通常所有数字逻辑运行在单一时钟域上。由于传输线导致的信号完整性损失与失真,在印制电路板走线上传输高于66 MHz的数字信号较为困难。运行更高频率的CPU通常为单片系统设计,并在片上使用锁相环(PLL)或其它振荡器,将最高速的信号限制在芯片内部。最初每颗 CPU 芯片各自运行在自己的单一时钟域,而计算机的其余数字逻辑运行在另一个较慢的时钟域。部分现代 CPU 的时钟速度极高,设计者被迫在单颗 CPU 芯片上划分多个不同的时钟域。
不同的时钟域可能具有不同的时钟频率、不同的相位(由不同时钟延迟或不同的时钟源引起),或两者兼有。无论哪种情况,都不可假定或依赖两个时钟域的时钟边沿之间的相对关系。
将单比特信号同步到频率更高的时钟域,可以通过在源域时钟下用触发器对该信号进行寄存来实现,从而将信号保持足够长时间,以便被高频目标域检测到。
CDC亚稳态问题可发生在异步时钟域之间;这不同于复位域跨越导致的亚稳态,后者可以发生在同步与异步时钟域之间。为避免目标时钟域出现CDC亚稳态问题,通常在目标域中至少加入两级重新同步触发器。将单比特信号同步到频率更低的时钟域更为繁琐。通常需要在每个时钟域放置寄存器,并由目标域向源域提供某种反馈,表明信号已被检测到。其他可能的跨时钟域设计错误包括毛刺和数据丢失。
在某些情况下,时钟门控可能导致两个时钟域,其中“较慢”的域会在一秒与下一秒之间发生改变。
参见
- 串扰
- 亚稳态 (电子)
- 格雷码
参考
相关
- (10 pages)
- (17 pages)
*
评论 (0)