RX 复位设计
这里只包括用到 RXOUTCLK 时的复位。如果是用 TXOUTCLK 作为 RXUSRCLK/RXUSRCLK2时钟源的情形,可以参考 TX 复位设计部分。
RX 的结构比 TX 要复杂。相对应的复位也会复杂一些。主要原因是 RXOUTCLK 的源头可能是 CDR 送出的恢复钟。也就是说,需要 CDR 稳定工作后才能有稳定的 RXOUTCLK 输出。所以后续的复位需要与此相配。
CDR 在有信号送入时,会跟踪上输入信号的频率、相位;当没有信号送入时,它会慢慢锁到本地时钟上,直到又有信号送入。这个不是跃变的过程,而是慢慢变化的。这里不会引入恢复时钟的跳变。
一、RXOUTCLKSEL = RXOUTCLKPMA
这种情形下,RXOUTCLK 的源头就是 CDR 的恢复钟。
由于初始化复位时,我们还是用 QPLLLKDET/CPLLLKDET 作为 RXUSERRDY 的输入,这样在 PLL 锁定后可以完成 PMA/PCS 的初始化。
但是在工作起来后,CDR 会锁到输入信号上。在跟踪过程中,恢复钟(也就是RXBUFFER 的写时钟)会有个渐变的过程。这个可能会导致 RXBUFFER 溢出。所以用RXBUFSTATUS[2]送到 RXBUFRESET。这样在 RXBUFFER 溢出时复位 RXBUFFER。
对于多通道应用,也是需要在所有 RXRESETDONE 都拉高时复位 RXBUFFRESET 一下,这样可以减少各路的偏移。当然,任意一路有前面说到的溢出,也需要复位所有的RXBUFFER。
二、RXOUTCLKSEL = RXOUTCLKPMA,且用到 MMCM
这个情形下,我们需要注意的就是 MMCM/PLL 输入时钟源于 CDR 恢复时钟并给RXPCS 提供用户时钟。所以需要
1. MMCM 必须在 PLL 锁定后延时一段时间释放复位,这其中的时间就是 CDR 锁定的时间。
2. MMCM 的 LOCK 信 号 控 制 RXUSERRDY , 以 保 证 RXPCS 的 复 位 是 在RXUSRCLK/RXUSRCLK2 都稳定后释放的。
这种应用里,如果外部输入信号丢失,比如拔掉再插上光纤,那需要对接收侧做整体复位以保证接收的可靠。这时整个时钟都会重新复位一遍。
三、RXOUTCLKSEL = RXPLLREFCLK_DIV1/2
这种情形,RXUSRCLK/RXUSRCLK2 的源头都是参考钟,所以和 TXOUTCLKSEL = TXPLLREFCLKDIV1/2 的情形是一样的。在现实中会合并用 TXOUTCLK 来驱动 TXUSRCLK 和RXUSRCLK。
所以复位的方法参考 TX。
四、RXOUTCLKSEL = RXPLLREFCLK_DIV1/2, 且用到 MMCM
这 种 情 形 , RXUSRCLK/RXUSRCLK2 的 源 头 都 是 参 考 钟 , 所 以 和 TXOUTCLKSEL = TXPLLREFCLKDIV1/2 + MMCM 的情形是一样的。在现实中会合并用 TXOUTCLK 通过MMCM 来驱动 TXUSRCLK 和 RXUSRCLK。
所以复位的方法参考 TX。这里画出 2 中复位连接图:
五、RXBUFFER BYPASS
RXUBFFER BYPASS 模式下,由相位对齐电路实现 RXCLK 和 RXUSRCLK 的相位对齐。此时 RXUSRCLK 的源头必须来自 RXOUTCLKPMA, 而 RX_XCLK_SEL = RXUSR。
在大多数情况下,RX 工作在 SINGLE LANE 模式下。所以 RXPHASEALINGMENT 只要工作在 AUTO 模式下就可以了。
对于 GTX,RXPHASEALIGNMENT 的复位连接和波形如下:
RXPHALIGNDONE 作为 RX 逻辑的复位信号。
对于 GTH,RXPHASEALIGNMENT 的复位连接和波形如下:
RXSYNCDONE 作为 RX 逻辑的复位信号。
同样的要求:
1. RXDLYSRESET 的脉宽不能超过 50ns。
2. 相位对齐操作必须在 RXRESETDONE 拉高后进行。
总结
对于时序系统,复位的设计会极大影响到系统的工作结果。对于 7 系列的 SERDES,其重要性是不言而喻的。这里列举的是一些应用场景以及对应的复位设计。希望对大家有帮助。
文章评论(0条评论)
登录后参与讨论