什么是时钟域:
大多数复杂的设计都拥有不止一个时钟,多个时钟之间也常表现为异步的关系。设计中的不同功能模块如果被不同的时钟驱动,就会形成不同的时钟域(clock domain)。
问题:
单一时钟域模块的设计方式和验证环境较为简单,而拥有多时钟域的硬件,其跨时钟域的逻辑通信就需要考虑同步问题。用来验证这些设计要求的过程称为跨时钟域检查。 例如:
需要同步是因为考虑不同时钟域的信号采样问题,当时钟域A的信号进入时钟域B被采样时,每个周期都有相对于时钟B不同的延迟,这种随机性可能导致建立时间或保持时间无法满足,进而导致不可预期的功能失败。可以通过静态的跨时钟域检查分析这一问题。
总结
通过该方法,可以在早期的RTL阶段识别出跨时钟域的通信电路上是否有合适的同步处理,所以,跨时钟域检查(CDC)是为了保证所有信号都能得到正确的同步。目前支持CDC检查的商业工具有Spyglass