GT Transceiver的TX Buffer功能块

2021-11-12 18:29:27 浏览数 (3)

前言

上篇文章讲了8B/10B编码功能模块,这篇文章讲的是TX Buffer,但是在正式进入主题之前,为了内容的完整性,提一下Tx Gearbox,这是个什么?

我们看下图:

TX功能模块示意

TX Gearbox和8B/10B Encoder从电路结构上看,地位相同,都是进入一个选择器。其作用是提供64B/66B编码,一些高速数据率协议使用64B/66B编码,以减少8B/10B编码的开销,同时保留编码方案的好处。关于其具体的功能,以及使用注意事项,一时半会也弄不清楚,这里暂时就不讲了。深入了解,请看手册。

正文

TX buffer的作用

GTX/GTH收发器的TX数据通路有两个用于PCS的内部并行时钟域:PMA并行时钟域(XCLK)和TXUSRCLK域。为了传输数据,XCLK速率必须与TXUSRCLK速率相匹配,并且必须解决两个域之间的所有相位差。下图显示了XCLK和TXUSRCLK域的情况。

TX时钟域

GTX/GTH Transmitter包括一个TX缓冲器和一个TX相位校准电路,以解决XCLK和TXUSRCLK域之间的相位差异。当TX buffer被旁路时,TX相位校正电路(phase alignment)被使用。所有的TX数据路径必须使用TX缓冲器或TX相位对准电路。

TX buffer与TX phase alignment的优缺点

下面给出缓冲区和相位对齐之间的权衡。

  1. 易用性:
  • 在可能的情况下,建议使用TX缓冲器。它很稳定,而且更容易操作。
  • 相位对齐是一个高级功能,需要额外的逻辑和对时钟源的额外限制。TXOUTCLKSEL必须选择GTX/GTH收发器参考时钟作为TXOUTCLK的来源,以驱动TXUSRCLK。
  1. 延迟
  • 如果低延迟是关键,必须绕过TX缓冲器。
  • 相位对齐在TX数据通路中使用较少的寄存器,以实现较低的和确定的延时。
  1. TX Lane-to-Lane Deskew
  • TX相位对齐电路可用于减少独立的GTX/GTH收发器之间的线路偏移(lane skew)。所有涉及的GTX/GTH收发器必须使用相同的线路速率。

Tx buffer的部分端口与属性

下面介绍一下TX buffer的端口TXBUFSTATUS[1:0]:

TX缓冲区状态。TXBUFSTATUS[1]: TX缓冲区的溢出或下溢状态。当TXBUFSTATUS[1]被设置为高电平时,它一直保持高电平,直到TX缓冲器被复位。1:TX FIFO有溢出或下溢。0:TX FIFO没有溢出或下溢错误。TXBUFSTATUS[0]: TX缓冲区的满度。1:TX FIFO至少满了一半。0:TX FIFO小于半满。


再介绍两个属性:

TX_XCLK_SEL:

选择用于驱动PMA并行时钟域(XCLK)的时钟源。TXOUT: 选择TXOUTCLK作为XCLK的来源。在使用TX缓冲器时使用。TXUSR:选择TXUSRCLK作为XCLK的来源。在绕过TX缓冲器时使用。


TXBUF_RESET_ON_RATE_CHANGE:

GTX/GTH收发器在速率变化时内部产生的TX缓冲器复位。TRUE: 启用速率变化时的自动TX缓冲区复位。FALSE: 禁用速率变化时的自动TX缓冲器复位。


TX buffer的复位

每当TXBUFSTATUS表明出现溢出或下溢情况时,就应复位TX缓冲区。可以通过使用 GTTXRESET、TXPCSRESET 或当 TXBUF_RESET_ON_RATE_CHANGE = TRUE 时 GTX/GTH 收发器内部生成的 TX 缓冲器在速率变化时复位。

GTTXRESET的断言会触发一个序列,复位GTX/GTH收发器的整个发射器。

这些设置用于启用TX缓冲器,以解决XCLK和TXUSRCLK域之间的相位差异:

  • TXBUF_EN = TRUE
  • TX_XCLK_SEL = TXOUT

0 人点赞