跨时钟域处理之一:源同步信号初步分析
最近由于公司的项目,涉及到了源同步信号这个概念。所谓源同步信号,也就是传输待接收的数据和时钟均由发送方提供。
假设现在有DSP与FPGA通过SPI总线进行通信,DSP为主机,FPGA为从机。此时FPGA怎么来采集DSP传输的数据或指令呢?在这个例子中,SPI上的四根线就属于源同步信号。
对于这个例子中,在FPGA端我们是否需要对传输的数据进行跨时钟域处理呢?答案是不需要。在这个例子中,我们完全可以利用SPI总线上的时钟信号来对SPI上传输的指令或数据进行采集,等数据采集完成之后,FPGA再在部分模块中利用SPI的sck来工作。这就是源同步信号的特点,我们可以利用自带时钟来进行数据的采集。
当然也并不是所有的源同步信号都不需要进行跨时钟域处理的。假设SPI总线的sck为50MHz,而FPGA的系统时钟是25MHz,在不使用PLL的情况下,就必须进行跨时钟域处理了。因为你相当于用25M的时钟去采50M的时钟,这是不可能的。
下面Kevin简单的总结一下:虽然在某些情况下,对于源同步信号可以不进行跨时钟域处理,但一定要切记在相应的模块中也一定要利用好源同步信号中提供的时钟。