ADC、DAC的多芯片同步和确定性延迟

多芯片同步确定性延迟是高速采集和波形产生中经常碰到的概念,特别是使用最新的基于JESD204B协议的ADC、DAC。这两个概念在JESD204B协议产生前就有了,不过采用204B协议后,实现多芯片同步和确定性延时变得简单了
在204B协议中,我们都知道:

**subclass 0不支持确定性延时,
subclass 1支持确定性延时,使用sysref信号
subclass 2支持确定性延时,使用sync信号

按照字面理解,多芯片同步就是多个器件延时一致。例如,同一触发控制多片ADC采集同一个点频信号,FPGA中接收到的多片ADC数据其初相应该一样。当然,可能这次上电和下次上电,初相可能会变。比如这次初相是0度,下次可能是45度。虽然多芯片同步了,但延时却并不固定。
同样按照字面理解,确定性延迟就是说延时固定。这里所的固定,对于多次上电也是有效的。比如一片ADC采集一个点频,这次上电初相为20度,下次上电还是20度。一片ADC实现了确定性延时,多片ADC当然实现了多芯片同步。

所以说,多芯片同步并不保证每次上电延时一致,确定性延时却保证了每次上电一样。确定性延时满足时,必然多芯片同步了。

subclass 0中,虽然不能实现确定性延时,却能实现多芯片同步。如下图所示,在subclass 0下使用了sysref信号,当然还是要保证sysre和采样时钟f到每个ADC延时一致。在sysref上升沿到来时,在数据中插入控制位即时间戳。在FPGA端,通过检测控制位,便可对齐多片ADC的采样数据了。
ADC、DAC的多芯片同步和确定性延迟
通过时间戳实现多芯片同步的结果如下图所示。虽然多芯片同步了,但却不能保证每次上电相位一致。这种不一致,可以通过每次上电校正来补偿。
ADC、DAC的多芯片同步和确定性延迟
在subclass 1或者2中,确定性时延的实现是通过在RX端增加一个接收缓冲实现的subclass 0没有该接收端缓冲,所以对有每次上电导致的可变延迟没有办法)。通过sysref实现所有204B期间的多帧时钟即LMFC对齐,然后以sysref对齐后的LMFC为基准,释放接收端缓冲。注意下图中,红色椭圆标注的部分即接收端缓冲。
ADC、DAC的多芯片同步和确定性延迟
另外lane对齐中,使用了elastic buffer。在此处确定性延迟中,使用了receiver buffer。

另外,上面所说的初相是针对连续波点频信号的,可以这么理解:ADC配置好后,一个触发信号功分后,一路送信号源出点频,一路送FPGA。每次触发,FPGA在触发时刻采集到的多路ADC数据初相(可以看成起始点位置)一致,说明多芯片同步了。如果给ADC和FPGA重新上电,重新触发,如果这次上电采集到的初相和上次上电初相一致,说明实现了确定性时延。