在利用v6 fpga 对afe5807多通道数据进行采集时,单片ADC的8个通道数据不同步。优化代码、约束、设置afe5807的同步寄存器,都没有找到问题所在。一步一步排查,adc的高速串行数据在进入fpga时经过了延时、ISERDESE1串转并。
首先查看是不是延时导致8个通道数据不同步,理论上延时是在2.5ns内,最多造成一到两为的数据延时,不会造成一帧的数据延时。将延时的数据接到测试脚上,示波器观察,跟推理的一样,延时模块输出的数据是一致的。
下来就剩下ISERDESE1串转并,既然fpga采集的数据是正确的,就说明ISERDESE1串转并模块已经工作,那是说明导致ISERDESE1串转并之间输出数据的不同步呢?翻看资料,发现复位信号的为题,写代码时将复位信号直接忽视。ISERDESE1复位同步要求如下:详细说明见UG361
RST must be deasserted synchronously with CLKDIV