JESD204B学习之关键点问答
-
1.概述
本文是用于记录JESD204B学习中的关键点,以问答的形式陈诉便于理清思路。
-
2.参考文档
1.《pg066-jesd204》
2.《ug476_7Series_GTX_GTH_Transceivers》
3.《AD9680》
4.《AD9144》
-
3.JESD204B关键问题
-
3.1 JESD204有多少个子类,怎么设置?
JESD204有3个子类:
- Subclass 0:主要用于JESD204A;
- Subclass 1:用于JESD204B,有确定性延时,带sysref与sync;
- Subclass 2:用于JESD204B,有确定性延时,值需要sync信号即可。
在IP核设置中,是通过AXI-LITE设置寄存器subclass mode,如下图。在AD或者DA芯片中是通过SPI等配置芯片的寄存器来设置。IP的设置与AD,DA芯片的设置需要一一对应。
-
3.2 IP核设置中的F/K依据是什么?
F:每帧的8位个数;
K:每个多帧的帧数;
F与K的设置是需要根据AD或者DA芯片的寄存器设置相互对应的。比如下图中是AD9680的配置选项图。
-
3.3 IP核设置中的参考时钟(reference clock),DRP时钟依据是什么?
Refclk:参考时钟是GT模块上的时钟,用于匹配线速率的,相当于核时钟。其值根据线速率来,为线速率的1/40;
Drp_clk:动态配置时钟,用于jesd204b phy的动态配置。其值为:200.0 for UltraScale,100.0 for 7 series。
-
3.4 Sysref与sync的来源是什么?
Sysref:系统同步参考信号。分接收参考(rx_sysref),与发送参考(tx_sysref)。
Sync:同步信号。分接收同步(rx_sync),与发送同步(tx_sync)。
Rx_sysref与tx_sysref可以来自外部给的同步参考。当然若外部没有输入同步参考,只有一个模块,则这个信号可以自己产生。
Rx_sync:是由jesd204b的接收IP核产生,输出给AD芯片。
Tx_sync:是由DA芯片产生,输入给jesd204b的发送模块。
-
3.5 所谓同步,是调节的什么?
- 同步指什么
同步:是指JESD204B的每根线的数据同步。即需要调整到每根线同时发送同一多帧中的同一帧的第一个数据。,在调节完成前,一直发送的是K码即逗号位。
2. 调节同步的原理(以子类1为例):
在子类1中调节同步就是调节sysref信号,作用于AD或者DA的数据链路层。
SYNC信号是根据SYSREF信号来了后才会拉高的,如下图所示。
发射时,lanes信号的同步是指:在SYNC信号没有拉高之前会缓存到一个类似寄存器的缓存器中,且当SYNC拉高后根据缓存情况(所有线的多帧的第一个帧开头都缓存下来后),在确定性延时结束后且,在SYNC拉高后的第一个LMFC时一起发送数据(从多帧的一个帧的帧头开始往外发)。
接收时,lanes信号的同步是指:在SYNC信号没有拉高之前会缓存到一个类似寄存器的缓存器中,且当SYNC拉高后根据缓存情况(所有线的多帧的第一个帧开头都缓存下来后),在确定性延时时间满了后在LMFC时接收到第一个多帧的第一个帧的帧头开始算是有效数据。
3. 调节同步的方法
根据前面两节可知,调节同步其实就是调节SYSREF的延时时间。
而SYSREF的延时时间是通过AXI4-LITE接口来配置寄存器来调节的。其寄存器情况如下图所示。
-
3.6 Jesd204_rx模块怎么恢复数据?
Jesd204_rx模块的数据即AD发送过来的数据。因此RX模块恢复数据是将AD发送过来的数据恢复成AD的采样位数的数据即16位、14位、12位等情况。
使用JESD204B的IP例程时里面有一个传输层,是专门用于将每根线的数据分成数据位与控制位的。且这个例程中的设计是默认为14位的数据位与两位的控制位,且控制位取的每16位的高2位。
但是这个只是给大家的一个示例,而不是在设计时我们就能直接使用的数据。我们应该是根据自己选择的AD判断数据位是几位,控制位是几位,控制位是占的哪几位。这里以AD9680(14位双通道AD采集器)举例说明。
如下图所示,AD9680的数据发送组成格式是先14位数据再2位控制位,且数据位先发。根据8B/10B编码接收规则可知先发送的a0则先接收a0,即可以把8B/10B理解为成一个FIFO。则接收到的AD9680的数据组成格式也是每16位数据的高14位为数据位,低2位为控制位。
且JESD204B的线组成格式为1根线32位再接收另一根线的32位,而AD的I、Q路数据是相互交叉形式,即第0路为I,则第1路为Q。所以再恢复成AD的位数相对应的数据后,通过并转串的方式组成常规数据流时需要注意I、Q各自的数据是哪些线的。
-
3.7 jesd204_tx模块怎么组合发送数据?
JESD204B_tx模块发送的数据是发送给DAC,让其输出想要的波形。
JESD204B_tx模块IP例程的传输链路层模块(jesd204_tx_transport_layer _mapper)中就是专门用于数据格式的组装,默认为14位数据位、2位控制位,且LANE1在前LANE0在后。但实际使用时需要根据选用的DAC做相应的调整。
这里以AD9144(4通道,16位DAC)为例,说下JESD204B发送数据时,JESD204B数据的组成格式。如下图所示,AD9144用四线两通道输出时的数据组成情况,LANE0发第一组的高8位,LANE1发第一组的低8位,LANE2发第二组的高8位,LANE3发第二组的低8位。
-
3.8 定义Frame与multiframe有什么意义?
Frame是帧,由设置的F个8位数据组成,具体个数根据选择的ADC/DAC芯片设定。
Multiframe是多帧,有M个Frame组成,具体个数根据选择的ADC/DAC芯片设定。
设置Frame与Multiframe的意义在于数据对齐,在数据没对齐发送之前,JESD204B一直发送的数据是K码(逗号),在数据对齐后先发送的是R码(多帧的起始位)。如下图中JESD204B的符号定义。
-
3.9 Sysref是周期的还是脉冲形式在哪里设置,有什么限制?
JESD204B使用子类1时,同步调试信号sysref主要通过AXI-Lite接口设置寄存器调整,也可在IP设置上也有默认设置选项。若在JESD204B的ip中设置了一种模式,在ADC或者DAC中也需要设置成相同的模式。如下图所示。
至于sysref的设置限制:sysref的周期必须是多帧周期的整数倍,如下IP核手册的描述。
-
3.10 JESD204B中的两种复位信号各有什么作用?
TX模块中的tx_reset是系统的复位,用于可以开始配置JESD204B的寄存器
TX模块中的tx_aresetn是JESD204B的寄存器配置完成后,用于指示可以开始发送有效数据。
RX模块中的rx_reset是系统的复位,用于可以开始配置JESD204B的寄存器
RX模块中的rx_aresetn是JESD204B的寄存器配置完成后,用于指示可以开始接收有效数据。
即:reset是用于系统复位,可以重新配置寄存器。
aresetn是JESD204B的数据复位,不能用于重新配置寄存器。