一、CDC(跨时钟域处理)适用场景
(一)多时钟域的SoC(片上系统)设计
- 不同功能模块的时钟差异
- 在SoC设计中,包含多个功能模块,如CPU、GPU、DMA(直接内存访问控制器)、各种外设接口(如UART、SPI、I2C等)。这些模块对时钟频率和性能的要求不同。
- 例如,CPU可能需要高速时钟以实现快速运算,而像UART这样的低速外设接口,其工作时钟频率相对较低。当数据或控制信号需要在这些不同时钟频率的模块之间传输时,就需要CDC处理。例如,CPU可能需要向UART发送控制指令来配置波特率等参数,这个过程涉及跨时钟域传输,必须进行CDC以确保数据正确到达UART模块。
- 异步时钟源的整合
- 有些SoC可能会整合来自不同源的时钟信号。例如,一个SoC可能同时使用内部晶振产生的时钟和外部输入的时钟信号。这些时钟信号可能是异步的,当信号在由这两种时钟信号控制的模块之间传递时,就需要CDC。比如,外部时钟可能用于与外部设备的同步通信,内部时钟用于内部数据处理,当外部设备的数据要进入内部数据处理模块时,就需要CDC来跨越这两个时钟域。
(二)高速数据传输与处理系统
- 数据缓存与不同速率时钟间的传输
- 在高速数据采集系统中,如高速ADC(模数转换器)与后续数据处理单元之间。ADC可能以很高的采样时钟频率工作&