- UltraScale FPGAs Transceiver Wizard ip原理及其配置
- UltraScale FPGAs Transceiver Wizard工作原理
US Transceiver Wizard又称高速串行收发器。许多高速接口都需要用到此收发器,如PCIE,SFP+,以太网接口等等。在这里我们主要是将GTH用作SDI视频传输接口的收发。
- GTH高速收发器的结构
GTH高速收发器通常用quad来划分,一个quad上由四个GTHE3/4_CHANNEL 语和一个GTHE3/4_COMMOM原语组成,当需要用到QPLL时钟时,才需要实例化GTHE3/4_COMMOM。一个COMMOM原语中有两个QPLL(QPLL0和QPLL1)
图1
每个quad上有两个参考时钟可以选择CLK0、CLK1,四组TX/RX收发接口表示四个channel。
图2
每个 GTHE3/4_CHANNEL 由一个 channel PLL(CPLL)、一个 transmitter,和receiver 组成。一个参考时钟可以直接连接到一个 GTHE3/4_CHANNEL 原语,而不需要实例化 GTHE3/4_COMMON。
GTH收发器的发送端和接收端是相互独立的,都是由物理媒介适配层MPMA和物理编码子层PCS组成。PMA 内部集成了串并转换(PISO)、预加重、接收均衡、时钟发生器和时钟恢复等;PCS 内部集成了 8b/10b 编解码、弹性缓冲区、通道绑定和时钟修正等。
图三
- 参考时钟的选择和分配
每个Quad中有六个参考时钟对,两本地时钟对(GTREFCLK0/1),分别来自南面和背面的时钟对。通过QPLL0REFCLKSEL[2:0]与QPLL1REFCLKSEL[2:0]选择。同理CPLL。
- Transmitter端
并行数据从设备逻辑给到TX接口,首先进入到PCS层经过8B/10B编码之后进入到Phase Adjust FIFO。如下图所示,GHT收发器有两个时钟,一个是PMA的并行时钟(XCLK)和PCS的并行时钟(TXUSRCLK)。要实现数据的传输,两边的时钟信号一定要同步,一般默认通过TX buffer解决。如果其被旁路,则通过TX相位校准电路去调整相位差。最后通过高速Serdes进行并串转换(PISO),经预/后加重,输出串行高速数据。
- Receiver端
RX接手的信号首先经过RX均衡器,均衡器主要是用于补偿信号的高频损失,LPM和DFE分别是两种均衡器(),接受GTH数据的时候是不带时钟的,所以我们要自己去回复它,就需要经过RC CDR模块,恢复出数据与时钟。数据经过CDR之后,就通过polarity来进行极性控制,如果输入的数据是PRBS,那么接下来用内嵌的PRBS进行check,如果是8b10b编码,那么就会多次传出的数据进行对齐和解码。
最后是RX elastic buffer这个部分,同上面一样主要是处理PMA与PCS异步时钟域问题,同TX端一样。与此同时,RX elastic buffer还具有时钟纠正和通道绑定功能。
- 时钟说明
- RX端与TX端各时钟说明。
根据线速率需求,用户设计可以灵活使用QPLL或者CPLL的不同组合来驱动TX以及RX数据路径。QPLL和CPLL是根据速率来选择。这里有两个时钟选择译码器,一个是参考时钟选择QPLL0REFCLKSEL[2:0],一个是TX(RX)SYSCLKSEL[1:0]
.
其内部TX 和 RX 时钟分频器可以单独从 QPLL 或 CPLL 中选择时钟,允许 TX和 RX 数据通道使用不同的参考时钟输入在异步频率工作
PLL时钟输出频率以及transceiver的线速率:
内部时钟走向如下图
内部时钟架构
TXOUTCLK时钟由参考时钟或者PMA或PCS端时钟给出。这里的TXOUTCLK指的就是线速率。对应我们的原理图,如下图
部分输出端代码如下图:
用户时钟的输出如下:
代码中输出的用户时钟,由线速率(Txoutclk)与data_width共同决定,txoutclk的输出源可以通过我们的vivado IDE界面选择。
- IP核的相关配置
PMA与PCA层时钟相位对齐buffer,对于低延时将其旁路,使用相位校准电路
|
|
CPLL(2.0-6.25G) QPLL0(9.8~16.375G) QPLL1(8~13G)
|
|
根据SDI的模式的模式选择 SD-SDI 0.27 G, HD-SDI 1.485 3G-SDI 2.97 6G-SDI 5.94G 12G-SDI 11.88
|
|
以PMM为单位指定扩频时钟(SSC)调制。SSC影响接受器CDR设置
|
|
以PPM为单位指定接收数据和发送数据之间的偏移量,这里要根据具体协议填写
|
|
选择具体要使用的收发器以及参考时钟,和具体的引脚约束对应
|
|
选择具体要使用的收发器以及参考时钟,和具体的引脚约束对应
|
|
Rx端解码格式 对于8b/10b编码选择K28.5
|
|
二、