赛灵思
直播中

杨悟牛

7年用户 154经验值
私信 关注
[问答]

请问如何在单独的FPGA中的两个GTP收发器的TXOUTCLK之间获得一致的相位偏移?

您好,我希望有人可以帮我确定我是否有可能做的事情。
我在两块PCB上有两个Artix-7 FPGA(参见下面的简单草图;我将左侧FPGA称为“FPGA1”,将右侧FPGA称为“FPGA2”)。
我将数据从FPGA1中的GTP传输到FPGA2中的GTP。
每个FPGA都有自己的本地收发器参考振荡器。
我有两个目标,我想要实现:
频率匹配FPGA1和FPGA2上的TXOUTCLK,和
即使在重新编程FPGA之后,FPGA1和FPGA2上的TXOUTCLK之间也具有相同的相位偏移(但不一定是零偏移)。
我已经通过使用Xilinx PICXO IP实现了第一个目标。
PICXO能够对FPGA2中的RXOUTCLK和TXOUTCLK信号进行频率和相位对齐,并且因为FPGA2中的RXOUTCLK信号与FPGA1中的TXOUTCLK信号具有相同的频率,这意味着FPGA2中的TXOUTCLK信号具有与TXOUTCLK信号相同的频率。
在FPGA1中。
但是,FPGA2中的RXOUTCLK信号与FPGA1中的TXOUTCLK信号的相位不同。
实际上,每当我重新编程FPGA时,FPGA2中的RXOUTCLK信号和FPGA1中的TXOUTCLK信号之间的相位偏移都会发生变化。
因此,我无法找到一种方法来在两个FPGA上的TXOUTCLK之间获得一致的相位偏移,这在FPGA被重新编程时会持续存在。
我希望有一些方法可以实现这一点,或者如果没有,有人可以肯定地告诉我这是不可能的!
感谢您阅读以及您可以给我的任何反馈。
最好的祝福,
戴夫

回帖(7)

陈玉筠

2020-8-28 06:29:50
你在这里尝试做的很多方面是不可能的,有些方面比其他方面更不可能......
正如@austin提到的,只要你使用“好”的外部抖动清除器,就可以使用MGT的RXOUTCLK作为另一个MGT的REFCLK。
仅使用内部资源,这是不可能的。
PIXCO适应两个时钟之间的比特率差异(只要本地振荡器“足够接近”)。
这使高速串行时钟(以及TXOUTCLK的频率)同步,但不控制TXOUTCLK的相位 - 高速比特率或分频TXOUTCLK速率。
事实上,无法以具体的方式知道TXOUTCLK或RXOUTCLK的相位 - 这些信号相对于PISO时钟的延迟和CDR时钟(产生它们的高速时钟)完全不受约束,并且会有所不同
横跨PVT(可能超过一个比特期)。
但更重要的是,将PISO时钟分频(最终)生成TXOUTCLK的分频器和生成RXOUTCLK的CDR时钟不能确定地重置。
例如,如果您的数据宽度为20位宽,则RXOUTCLK以1/20的CDR速率运行,但除以20的除法器无法复位,这意味着它无法与其他任何内容同步。
此外,这样做是不可能的 - 任何能够做到这一点的复位都必须精确到一个比特周期内并在FPGA之间进行通信 - 再次,这是不能做到的......
所以,这一切都是不可能的。
我将重复@ austin的问题 - 为什么你需要这样做?
高速串行I / O的重点是使这样的同步无关紧要。
Avrum
在原帖中查看解决方案
举报

潘晶燕

2020-8-28 06:49:37
d,
为什么这很重要?
一旦接收的时钟恢复接收数据,就不需要相位匹配。
匹配频率对于防止FIFO过流或欠流非常重要。
通常A2中的恢复时钟用于A2处理所有接收的数据。
它可以被清理(抖动被移除)然后用作传输时钟返回A1(这是同步两个板的最常用方法,其中链路期望以足够长的间隔运行,否则FIFO缓冲将超过或流过流量)

Austin Lesea主要工程师Xilinx San Jose
举报

陈玉筠

2020-8-28 07:02:40
你在这里尝试做的很多方面是不可能的,有些方面比其他方面更不可能......
正如@austin提到的,只要你使用“好”的外部抖动清除器,就可以使用MGT的RXOUTCLK作为另一个MGT的REFCLK。
仅使用内部资源,这是不可能的。
PIXCO适应两个时钟之间的比特率差异(只要本地振荡器“足够接近”)。
这使高速串行时钟(以及TXOUTCLK的频率)同步,但不控制TXOUTCLK的相位 - 高速比特率或分频TXOUTCLK速率。
事实上,无法以具体的方式知道TXOUTCLK或RXOUTCLK的相位 - 这些信号相对于PISO时钟的延迟和CDR时钟(产生它们的高速时钟)完全不受约束,并且会有所不同
横跨PVT(可能超过一个比特期)。
但更重要的是,将PISO时钟分频(最终)生成TXOUTCLK的分频器和生成RXOUTCLK的CDR时钟不能确定地重置。
例如,如果您的数据宽度为20位宽,则RXOUTCLK以1/20的CDR速率运行,但除以20的除法器无法复位,这意味着它无法与其他任何内容同步。
此外,这样做是不可能的 - 任何能够做到这一点的复位都必须精确到一个比特周期内并在FPGA之间进行通信 - 再次,这是不能做到的......
所以,这一切都是不可能的。
我将重复@ austin的问题 - 为什么你需要这样做?
高速串行I / O的重点是使这样的同步无关紧要。
Avrum
举报

李欣榕

2020-8-28 07:10:59
@austinand @avrumw,谢谢你的回复。很抱歉,我真的不能说我希望能够做到这一点,但它与实际发送和接收收发器数据完全没有关系。
正如你所说的那样,收发器发送和恢复数据并不需要这些,我现在已经做了一段时间了。
我认为PICXO会匹配RXOUTCLK的相位(而不仅仅是频率)的原因是因为XAPP589中的这个陈述,但听起来我误解了:“......相位插值器提供相位或频率的能力
调制收发器数据输出直接锁定到输入参考脉冲或时钟......“在我的情况下,PICXO的输入参考时钟是RXOUTCLK,因此我认为它将相位和频率锁定TXOUTCLK到RXOUTCLK。
但我现在从你告诉我的内容中了解到它只是将TXOUTCLK频率锁定到RXOUTCLK。
再说一次,为了澄清,我知道这根本不是串行通信所必需的。
感谢您解释从线速率到数据字速率的分频器如何不能确定性地重置。
我担心可能是这种情况,但我不确定。
这无疑证明了我所尝试的阶段关系是不可能的。
再次感谢你的帮助,
戴夫
举报

更多回帖

发帖
×
20
完善资料,
赚取积分