参考:
https://mp.weixin.qq.com/s/vsWvH7DS9b0ZBE3NM-e88A
配置GT Selection界面
首先进入GT Selection配置界面,这个界面主要关注红框部分。
从前文对GT的时钟介绍可知,一个GT bank只有一个QPLL,红框部分表示把QPLL的代码放在IP外面实现,这样做的好处在于后续方便扩展收发器通道,便于二次开发。
Line Rate, Transceiver Selection界面
Line Rate, Transceiver Selection, and Clocki ng界面用于选择收发器位置和时钟,此页面左下图显示的可用收发器数量取决于所选的芯片型号和封装。
(1)、协议选择:在协议处可以选择各种协议
(2)、发送端口需要设置线速率、参考时钟频率、是否禁用接收通道。
在本次设计中发送通道的线速率(Line Rate)设置为10Gbps,参考时钟频率(Reference Clock)设置为156.25MHz,启用接收通道。
可选的频率非常多,不同协议需要不同的线速率,而不同的线速率就需求不同的时钟;
100,125,150,156.25都是比较常用的时钟频率;
例如:SATA协议,其所需求的线速率是6Gbps,需要使用150MHZ的时钟;
万兆网则需要156.25MHZ的时钟
(3)、接收端口需要设置的参数与发送通道类似,接收通道的线速率(Line Rate)设置为10Gbps,参考时钟频率(Reference Clock)设置为156.25MHz,启用发送通道。
(4)、用于选择高速收发器bank在FPGA内部的位置,是否启用QPLL的DRP接口。
Use Common DRP:勾选后,用户可以通过DRP接口动态配置QPLL,修改QPLL的参考时钟来源等等信息。
(5)、PLL选择对于GTX来说,如果发送通道和接收通道的线速率小于6.5Gbps,那么可以使用QPLL也可使用CPLL,否则只能使用QPLL。
由于2和3处将线速率设置为10Gbps,因此此处只能使用QPLL生成的时钟作为发送通道和接收通道的时钟信号。
(6)、收发器通道选择,在左下侧的框图中,可以选中相应的通道,然后在6中勾选Use GT XmYn,即可使用坐标为(Xm,Yn)的收发器。
但是这种方式对于设计者来说并不方便,需要用户知道后续要使用通道在芯片中的坐标。
还有另一种方式也可以对通道位置进行修改,就是通过约束发送和接收通道的引脚,来确定使用的通道,并且约束引脚的优先级大于此处IP设置的位置,因此常用的方式是通过约束引脚来确定使用具体的收发器资源。
由此处可知,可以在一个IP中勾选多个通道,这种方式也行,但是更加常用的方法是生成单通道的IP,需要使用多通道时,多次例化该IP即可,这也是为什么需要把QPLL放在IP外部的原因,防止将QPLL多次例化。
其中TX Clock Source用于确定发送通道的时钟来源,
在前文分析过QPLL和CPLL的时钟只能来自GT bank的差分时钟引脚,因此TX Clock Source只能来自参考时钟0管脚或者参考时钟1管脚输入的差分时钟。
RX Clock Source和TX Clock Source是来自同一个QPLL或者CPLL输出时钟,因此设置需要保持一致。
Advanced Clocking Option:勾选后,可以把所有的参考时钟端口开放给用户,用于动态时钟切换。
PRBS pattern generator and check:伪随机序列(Pseudo-random bit sequences,PRBS),频谱接近白噪声,一般用于高速串行通信通道传输的误码率测试。相关的设置端口如下所示,原理与M序列类似。
PRBS模式产生和检测功能经常用来验证信道质量测试。(用于测试眼图和误码率等)
Encoding and Optional Ports界面
如下图所示,对Encoding and Optional Ports界面进行配置,主要完成接收端编码、接收端解码、发送通道内部和接收通道内部同步数据的方式。
(1)、发送通道的用户数据位宽及编码方式配置如果线速率大于6.5Gbps,
那么用户数据位宽(Extemal Data Width)可以设置为32或者64位,否则用户数据位宽可以设置为16、20、32、40、64、80位。
编码(Encoding)可以使用8B/10B、64B/66B、64B/67B,也可以不使用编码方式。
线速率也会影响通道内部数据传输位宽的设置,如果线速率大于6.5Gbps,那么内部数据位宽(Internal Data Width)只能设置成40位,否则可以设置位16、20、32、40位。(只有四字节模式可以满足需求)
(Extemal Data Width)与(Internal Data Width)的相关问题在讲解发送通道的时候讲解过,需要了解的可以前往查看。
(2)、接收通道的解码方式和数据位宽设置,与发送端保持一致即可,当然接收端和发送端的(Internal Data Width)不一致也不会影响数据传输,这个位宽是通道内部的一个位宽。
(3)、DRP System Clock Frequecy:设置DRP接口的时钟频率,这个时钟对来源没有要求,因为是配置端口嘛,对速率一般没有要求。因此选中常用的100MHz系统时钟即可。
(4)、与编码相关的可选端口
表1 编码相关的可选端口
端口 |
含义 |
TXBYPASS8B10B |
允许字节交错数据以每字节为基础旁路8B / 10B编码器,高电平有效。TX8B10BEN必须为高此信号才有用。(常用于Debug和查找错误) TXBYPASS8B10B [ x] = 1,字节x绕过编码器。 TXBYPASS8B10B [x] = 0,字节x使用编码器。 |
TXCHARDISPMODE |
在启用8B/10B编码时,这两个选项同时勾选可以在字节编码前将运行不一致性强制为正;只勾选“TXCHARDISPMODE”选项可以在字节编码前将运行不一致性强制为负;只勾选“TXCHARDISPVAL”选项时可以在字节编码前将运行的差异性反转;不勾选“TXCHARDISPMODE”和“ TXCHARDISPVAL”时可以保持运行的差异性不变。当发送通道不启用8B/10B编码时,可以利用“TXCHARDISPMODE”和“ TXCHARDISPVAL”扩展端口位宽。(Debug和协议反转) |
TXCHARDISPVAL |
|
RXCHARISCOMMA |
高电平有效,表示RXDATA上显示的相应字节是K码。comma,可能是特殊K码(此时断言) |
RXCHARISK |
高电平有效,当启用8B / 10B解码时,RXDATA上显示的相应字节为K字符。(都是检测K码) |
(5)、发送通道的同步设置在前文讲解发送通道时,
经过这部分内容,可以使用buffer或者对齐电路来同步数据,buffer的劣势在于延迟比较大,对齐电路需要用户自己设计这部分电路,难度比较大。
本文将发送端的buffer使能(勾选Enable TX Buffer),
将PCS并行时钟域的时钟源(TXUSRCLK Source)设置为IP输出的时钟TXOUTCLK,并且勾选TXOUTCLK来源于发送通道的PLL参考时钟信号。
(6)、接收通道的同步设置这部分内容与发送端也是类似的,只不过接收端的是弹性Buffer,相比发送端的buffer功能更多,详细内容可以查看接收通道弹性buffer部分。
注意接收通道PCS并行时钟域(RXUSRCLK Source)也可以设置为TXOUTCLK。
(7)、复位相关的可选端口
表2 复位相关的可选端口
端口 |
含义 |
TXPCSRESET |
发送通道PCS复位信号,高电平有效。 |
TXPMARESET |
发送通道PMA复位信号,高电平有效。 |
TXSYSCLKSEL |
选择驱动TX数据路径的参考时钟源。 |
TXRATE |
传输速率改变端口,该端口动态控制TX串行时钟分频器D的设置,并与TXOUT_DIV一起使用,具体含义参考发送通道的时钟讲解。 |
TXBUFSTATUS |
TX buffer的状态,TXBUFSTATUS[1]为高电平表示TX buffer溢出或下溢状态。TXBUFSTATUS [0]表示TX buffer充满度,高电平表示TX buffer至少半满。 |
TX8B10BEN |
高电平表示启用8B / 10B编码器。 |
RXPCSRESET |
接收通道PCS复位信号,高电平有效。 |
RXPMARESET |
接收通道PMA复位信号,高电平有效。 |
RXSYSCLKSEL |
选择驱动RX数据路径的参考时钟源。 |
RXRATE |
接收速率更改端口,类似于TXPATE。 |
RXBUFSTATUS |
指示接收通道弹性buffer的状态:当检测到错误条件时,建议RX弹性缓冲器复位。 000b:在正常范围内 001b:缓冲区中的字节数小于CLK_COR_MIN_LAT 010b:缓冲区中的字节数大于CLK_COR_MAX_LAT 101b:RX弹性缓冲器下溢 110b:RX弹性缓冲区溢出 |
RXBUFRESET |
接收通道弹性buffer复位信号,高电平有效。当接收通道弹性buffer被旁路时,不能勾选此选项。 |
RXCDRHOLD |
保持CDR控制循环冻结。 |
CPLLPD |
CPLL掉电接口。 |
QPLLPD |
QPLL掉电接口。 |
CLKRSVD |
OOB电路时钟信号。 |
PART
04Alignment, Termination界面
Alignment, Termination, and Equalization界面配置如下图所示,主要包括逗号对齐和均衡处理两个部分。
图5 配置Alignment, Termination, and Equalization界面
(1)、逗号相关设置Use Comma Detection:启用接收K码检测,用于标识数据流中的K码字符和SONET框架字符。
Decode Valid Comma Only:启用接收逗号检测时,将检测限制在特定的已定义逗号字符,即K28.1或K28.5。
Comma Value:选择标准逗号模式或用户定义的模式之一以输入自定义模式。
Plus Comma:表示要匹配的正差异K码的10位二进制模式(RD+),模式的最右边位是串行到达的第一位。
Minus Comma:表示要匹配的负视差K码的10位二进制模式,模式的最右边位是串行到达的第一位。
Comma Mask:10位二进制模式,表示逗号匹配模式的掩码。
1表示要匹配逗号模式中的相应位,0表示不关心逗号模式中的相应位。
Align to...可以选择Any Byte Boundary、Two Byte Boundary、FourByte Boundary等选项,一般保持默认设置即可。
Any Byte Boundary:检测到逗号时,使用逗号模式将数据流与最近的字节边界对齐。
Two Byte Boundary:检测到逗号时,使用逗号模式将数据流与2字节边界对齐。
FourByte Boundary:检测到逗号时,使用逗号模式将数据流与4字节边界对齐。
Combine plus/minus commas:表示使用双逗号检测功能。
下表是逗号检测可选的一下信号,作为辅助控制或者检测。
表3 逗号对齐可选端口
选项 |
含义 |
ENPCOMMAALIGN |
高电平有效,当检测到K码(RD+)模式时,启用字节边界对齐过程。 |
ENMCOMMAALIGN |
高电平有效,当检测到K码(RD-)模式时,启用字节边界对齐过程 |
RXSLIDE |
高电平有效,每次置位都会将字节对齐调整一位,优先于普通逗号对齐。 |
RXBYTEISALIGN |
高电平有效,表示接收端已经完成字节对齐。 |
RXBYTEREALIGN |
高电平有效,表示接收端正在进行字节对齐。 |
RXCOMMADET |
高电平有效,表示逗号对齐逻辑在数据流中检测到逗号模式。 |
(2)发送端加重、接收端均衡设置
Differential Swing and Emphasis Mode表示选择加重的模式,xilinx提供了一些加重模式,本文选择自定义模式即可,如下图所示。
Equalization Mode:
设置接收通道的均衡模式,根据接收通道的讲解,一般设置为LPM就行。
Automatic Gain Control:设置接收器的自动增益控制,设置为自动即可。
Termination Voltage:
有GND、Floating、AVTT、可编程等几个选项。
其中GND会使内部终端网络接地,
Floating可隔离网络,
AVTT会将内部参考电压源应用于终端网络,
选择可编程选项后,可以通过更改Trim Value的值修改接收通道终端网络的电压。
之后就是一些可选的端口,一般会勾选极性翻转信号,
TXPRECURSOR、TXPOSTCURSOR、TXDIFFCTRL等信号。
这些可选信号的含义如下表所示。
表4 加重等可选信号含义
选项 |
含义 |
TXPOLARITY |
用于发送通道的差分引脚极性翻转,高电平有效。 |
TXINHIBIT |
强制变送器输出处于稳定状态,高电平有效。 |
TXDIFFCTRL |
发送通道的摆幅控制。(幅值电压是多少) |
TXPOSTCURSOR |
TXPOSTCURSOR端口。 |
TXPRECURSOR |
TXPRECURSOR端口。 |
TXMAINCURSOR |
高电平有效信号可启用QPI偏置。 |
TXQPISENN |
传输QPI端口(负极性)。 |
TXQPISENP |
传输QPI端口(正极性)。 |
TXQPIBIASEN |
高电平使能QPI偏置。 |
TXQPIWEAKUP |
QPI高电平有效信号发送器。 |
TXQPISTRONGPDOWN |
传输QPI掉电端口。 |
RXPOLARITY |
反转接收数据信号的极性,高电平有效。 |
RXDFELPMRESET |
复位接收DFE/LPM模块。 |
RXDFEAGCOVRDEN |
DFE AGC覆盖的高电平有效信号。 |
RXLPMLFKLOVRDEN |
接收低通覆盖使能端口。 |
RXQPIEN |
禁用QPI协议的接收端接。 |
RXQPISENN |
检测输出在MGTRX N引脚上的电平状态。 |
RXQPISENP |
检测输出在MGTRX P引脚上的电平状态。 |
RXLPMEN |
高电平启用带有自适应线性均衡器的LPM模式,低电平启用高性能DFE模式使能。 |