发 帖  
原厂入驻New
[问答] 请问如何在单独的FPGA中的两个GTP收发器的TXOUTCLK之间获得一致的相位偏移?
54 xilinx FPGA
分享
您好,我希望有人可以帮我确定我是否有可能做的事情。
我在两块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被重新编程时会持续存在。
我希望有一些方法可以实现这一点,或者如果没有,有人可以肯定地告诉我这是不可能的!
感谢您阅读以及您可以给我的任何反馈。
最好的祝福,
戴夫
0
2020-8-28 06:22:25   评论 分享淘帖 邀请回答

相关问题

7个回答
你在这里尝试做的很多方面是不可能的,有些方面比其他方面更不可能......
正如@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:29:50 评论

举报

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

Austin Lesea主要工程师Xilinx San Jose
2020-8-28 06:49:37 评论

举报

你在这里尝试做的很多方面是不可能的,有些方面比其他方面更不可能......
正如@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:02:40 评论

举报

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

举报

...相位插值器提供相位或频率调制收发器数据输出的能力,直接锁定到输入参考脉冲或时钟......
措辞有点令人困惑......
相位插补器允许您使用DRP命令向前或向后移动时钟的相位。
当您(例如)随着时间的推移将相位连续向前移动一定量时,净效应是平均频率的降低。
因此,内插器正在进行连续相移(可以发出DRP命令的速度,并且可能在一个命令中可能移位的相位),以便通过制作这些来锁定TX时钟的频率到RX时钟。
连续相移。
DRP命令速率和最大相位插值器移位的乘法确定了PIXCO可以“修复”的频率不匹配的数量 - 这就是本地REFCLK的频率和恢复的时钟速率必须在每个特定数量的部分内的原因。
百万。
Avrum
2020-8-28 07:29:24 评论

举报

正如之前的用户所提到的,当在2个GT之间进行传输时,相位信息会丢失,因此使用当前图表无法对齐两个阶段。
不确定你要做什么(“为什么”答案),但只是FYI:您可以使用PI来对齐2 GT的输出相位,然后打开连接到这两个GT的单个PICXO以保持频率对齐
到参考时钟(RXOUTCLK,或其他)。这样,输出是相位和频率对齐的。
即使使用这种技术,您确实需要某种协议来告诉您2 GT的对齐时间。
这两个GT必须在同一个设备中,因此不确定它是否可以帮助您的用例。
2020-8-28 07:37:46 评论

举报

再次感谢所有回复我帖子的人;
我非常感谢您对此主题的解释。
最好的祝福,
戴夫
2020-8-28 07:48:28 评论

举报

只有小组成员才能发言,加入小组>>

106个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表