xilinx FPGA jesd204b ADC篇(0):JESD204术语-CSDN博客
xilinx FPGA jesd204b ADC篇(1):什么是JESD204-CSDN博客
xilinx FPGA jesd204b ADC篇(2):JESD204的意义-CSDN博客
xilinx FPGA jesd204b ADC篇(3):高速数据转换器的输出接口-CSDN博客
xilinx FPGA jesd204b ADC篇(4):JESD204B接口介绍-CSDN博客
xilinx FPGA jesd204b ADC篇(5):JESD204B接口的关键-CSDN博客
xilinx FPGA jesd204b ADC篇(6):JESD204B IP核简介-CSDN博客
xilinx FPGA jesd204b ADC篇(7):JESD204B IP核端口介绍-CSDN博客
xilinx FPGA jesd204b ADC篇(8):JESD204B IP核寄存器-CSDN博客
xilinx FPGA jesd204b ADC篇(9):JESD204B IP核设计实现-CSDN博客
xilinx FPGA jesd204b ADC篇(10):JESD204B IP核的AXI4-lite配置接口读写-CSDN博客
xilinx FPGA jesd204b ADC篇(11):JESD204B ADC硬件实现架构-CSDN博客
xilinx FPGA jesd204b ADC篇(12):JESD204B ADC数据采集实现-CSDN博客
*******私信博主请加V:FPGA_GO*******
博主小飞继续和大家分享xilinx FPGA jesd204b ADC篇的第5部分相关内容~
JESD204B是JEDEC委员会提出的一种串行接口标准,这种接口标准定义了数据转换器(ADC、DAC)和数字处理器(FPGA、 ASIC等)之间的数字信号传输方式。JESD204B作为第三代标准,补充了JESD204、JESD204A这前两代标准的不足之处。它的主要优点包括:极为简单的布线减少了PCB面积、不需考虑数据传输的建立时间和保持时间、转换器芯片封装更小。
虽然JESD204B接口带来了硬件设计的诸多便利,但是它相比于传统的CMOS、LVDS接口来说具有更为复杂的协议标准,因此要实现起来其实并不容易。
与更通用的并行数据传输方式相比,JESD204B标准提供了一种方法,通过更高速的串行接口将一个或多个数据转换器连接到数字信号处理设备(通常是ADC或DAC连接到FPGA)。该接口的最高速度可达12.5 Gbps/ lane,使用帧结构的串行数据链路,并在数据链路中嵌入时钟和校准字符。
该接口通过减少设备之间的布线数量,从而减少了布局布线的匹配需求,并消除了建立和保持时间约束问题,最终简化了高速转换器数据接口的实现。JESD204B的实现需要在正常采样数据传输之前建立一个稳定链接,因此需要新的挑战和技术来识别接口是否正常工作,以及如果没有正常工作,该如何处理。
简要来说,JESD204B接口利用三个阶段来实现链路同步,也就是数据传输工作:
1)代码组同步(CGS)
2)初始化链路同步(ILAS)
3)正常数据传输
完成链路同步所需的信号有系统参考时钟(设备时钟)、至少一组CML物理信号连接(one lane)以及同步信号(SYNC~和可选的SYSREF)。以上所需的信号根据JESD204B子类的不同会不一样:
1)子类0需要设备时钟、lanes、SYNC~
2)子类1需要设备时钟、lanes、SYNC~、SYSREF
3)子类2需要设备时钟、lanes、SYNC~
子类0能够适应绝大多数应用,子类1和子类2则比子类0多出了一个功能,即提供了建立确定性延迟时间的手段,这对于某些需要同步多个设备或需要系统同步或者需要固定的信号延迟的应用就显得很重要。
下图1展示的是一个简洁的JESD204B链路传输过程,数据从ADC内部处理后经过一条lane传输到FPGA。JESD204B链路的主要参数如下:
1)M:转换器数量
2)L:lane的数量
3)F:每帧字节数量
4)K:每个多帧里的帧数量
5)N:转换器的分辨率
6)N,:每个采样数据的位数(4的倍数),其中N,=N+控制位+空位
子类0:同步步骤
如上所述,许多应用可以使用相对简单的子类0操作模式,这也是建立和验证链路的最简单方式。子类0使用三个阶段来建立和监控同步:CGS阶段、ILAS阶段和数据阶段。与每个阶段相关的图形以不同的格式表示数据,它们可以在示波器、逻辑分析仪或FPGA虚拟I/O分析仪(如Xilinx ChipScope或Altera SignalTap)上观测到。
代码组同步阶段(CGS)
下图2显示了可以通过链接监测到的CGS阶段的最重要部分,以及图中5个突出显示点的描述。
1)Rx通过驱动SYNC拉低向TX发出同步请求。
2) Tx连续传输/K28.5/字符(10位/字符)。
3)当Rx接收到至少4个连续的/K28.5/符号没有错误,然后Rx驱动SYNC引脚拉高。
4) Rx必须接收至少4个/K28.5/无误字符,否则同步失败,链接保留在CGS阶段。
5)CGS阶段结束,ILAS阶段开始。
初始化链路同步阶段(ILAS)
在ILAS阶段,Tx通过发送4个多帧来确保Rx对齐所有链路的lanes,并允许Rx验证链路参数。Rx端的lane之间对齐是必需的,以适应走线长度的差异和任何字符歪斜。每个连续的多帧都紧跟前一多帧(下图4)。另外无论jesd204协议的扰码功能是否启用,ILAS阶段总是不加扰地传送数据。
SYNC拉高后,ILAS阶段开始。当ADC传输模块在内部跟踪到一个完整的多帧后,它将开始传输4个多帧。此时多帧内部的采样数据都使用的是虚假的空采样数据填充,以保证一个多帧的完整性。4个多帧结构如下:
1)多帧1:以/R/字符[K28.0]开始,以/A/字符[K28.3]结束
2)多帧2:以/R/字符开始,紧跟/Q/[K28.4]字符,然后紧跟14个字节的链接配置参数,最后以/A/字符结束
3)多帧3:和多帧1结构一致
4)多帧4:和多帧1结构一致
如下图5所示为4个多帧用到的控制字符:
如下表1所示为发送器JESD204B的14个字节的链路配置参数,其具体含义在官方标准中和具体使用的数据转换器芯片手册里都会详细给出:
数据传输阶段
在数据传输阶段,同样用特殊的控制字符对帧的对齐状况进行监控,且字符替换规定只能在帧结束时使用。由于在数据传输阶段没有额外的链路开销来满足数据或帧对齐,因此字符替换允许在“当且仅当”当前帧的最后一个字符可以替换为上一帧的最后一个字符时,在当前帧边界处发出一个对齐字符,这有助于(偶尔)确认自ILAS序列以来的对齐没有改变,其具体的字符替换规则请参照JESD204B协议。
Tx和Rx均有一套多帧计数器,计数器从0累加到F*k-1,然后周而复始。信号SYSREF就是用来复位并同步Tx、Rx端的多帧计数器。
当SYNC拉高后,Tx端就会在下一个多帧计数器的0点开始进入ILAS阶段。如果F*K传输所需时间>发送编码时间+走线延迟时间+接收解码时间,那么接收到的数据将在下一个LMFC之前传出Rx的SerDes,进而进入FIFO中,在下一个LMFC来的时候,再从FIFO中读取接收数据。通过LMFC这种机制,就可以控制Tx端发送数据到Rx的FIFO读出数据的这段时间不变,这就是所谓的确定性延迟。