MyFPGA Forum

 找回密码
 注册
搜索
查看: 2281|回复: 0
打印 上一主题 下一主题

【转载】Intel Stratix10收发器时钟网络介绍

[复制链接]
跳转到指定楼层
1#
发表于 2020-6-18 17:32:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wyzhou 于 2020-6-18 17:58 编辑

版权声明:本文为CSDN博主「huan09900990」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。



现在intel的中高端FPGA(A10,S10等)的高速收发都是采用的模块化的形式来组成的,这样更加的灵活。下图就是一个高速收发器的设计框图(包含了PHY, reset,PLL,MAC4个模块)。本文主要介绍下其中的PLL模块。

1、参考时钟输入
每个tile有8个专用参考时钟输入管脚,每个tile由4个bank组成,所以,每个bank有2个专用参考时钟输入管脚。各自对应BOTTOM和TOP的PLL。

2、PLL资源介绍
每个bank有2个ATX PLL,2个FPLL,2个CMU PLL以及两个MCGB。ATX PLL是收发器主要使用的PLL,其能支持收发器的全速率需要的时钟,同时性能也最好。注意CMU PLL是嵌入在收发器通道里的,只有通道1和4里才有,可以用作发送PLL。但用作发送PLL时,该通道是不能作为接收通道的。相关的介绍如下:


下面是3个PLL支持的速率
3、transmitter时钟网络
发送时钟网络的功能就是将PLL输出的时钟连接到每个收发器通道,它提供两种类型的时钟到收发器通道。
(1)High-Speed Serial Clock高速串行时钟–给serializer用的即PMA高速发送用的。
(2)Low-Speed Parallel Clock给serializer和PCS用的。并行时钟主要是PCS部分给并行的数据使用的。
在bonded通道配置时,Serial Clock和并行时钟都是从transmitter PLL连接到收发器通道的。
在non-bonded通道配置时,只有Serial Clock时钟是从PLL连接来的,而 Parallel Clock是每个通道自己生成的。
为了支持不同种类的bonded和non-bonded时钟配置,FPGA提供了4中类型的发送时钟网络布线资源。
(1)x1时钟网络
(2)x6时钟网络
(3)x24时钟网络
(4)GXT时钟网络
----x1时钟网络
x1时钟连线用来将PLL输出的高速串行时钟连接到同一个bank的任意channel。Low-Speed Parallel Clock然后由特殊通道(ch1和4)的 Local CGB产生。non-bonded的时钟配置使用x1时钟网络就可以了。
从下图可以看出x1时钟网络可以由同一个Bank里的ATX,FPLL或者CMU PLL驱动。然后再连接到同一个bank的每个通道。

----x6时钟网络
x6时钟连线也是用来走同一个bank的时钟网络。x6时钟连线是由Master Clock Generation Block(MCGB)来驱动的。这里MCGB又只能由ATX PLL或FPLL来驱动。由于CMU PLL不能用来驱动MCGB,所以,CMU PLL不能用作通道绑定时的时钟。每个bank里有两个x6时钟网络,一个向上连接,一个向下连接。各自对应一个MCGB。同一个bank里的任意通道都可以由x6时钟网络来驱动。
在bonded通道配置时,由MCGB输出的低速并行时钟来驱动serializer和PCS,同时Local CGB就被旁通不使用了。都是从transmitter PLL连接到收发器通道的。
在non-bonded通道配置时,当你有多个通道被同一个ATX /FPLL驱动或者这些non-bonded的通道跨越bank时,可使用MCGB来输出高速的串行时钟到每个通道。*即在non-boned时,可以使用MCGB输出的串行时钟来驱动同一个tile的24个通道。*同时x6时钟网络可以用来驱动x24时钟网络,这样就可以将时钟输出到相邻的bank。


-----x24时钟网络
x24时钟网络将收发器时钟连接到同一个tile的不同bank。MCGB驱动x6时钟网络,x6时钟网络又驱动x24时钟网络,每个bank有两个x24时钟网络,一个向上连接相邻的bank时钟网络,一个向下连接下面相邻的时钟网络。x24时钟网络可以用于bonded和non-bonded两种模式,对于bonded配置,由MCGB输出的低速并行时钟被使用而Local CGB被旁通。对于non-bonded,当你有多个通道被同一个ATX /FPLL驱动或者这些non-bonded的通道跨越bank时,可使用MCGB来输出高速的串行时钟到每个通道。用MCGB来提供一个高速的串行时钟到每个通道。当同一个Tile里的bank的工作电压不同时,这个x242时钟网络只能用于连续的通电压的bak的时钟连线。

每个收发器通道都有一个Local CGB,对于non-bonded配置,传输PLL产生一个串行时钟来驱动每个通道的Local CGB.Local CGB然后再生成并行时钟用于serializer和PCS。MCGB和LCGB的功能都一样,只是MCGB输出的时钟可以通过x6 网络来驱动同一个bank的其它通道,也可以通过x24网络驱动到其它bank的通道。而LCGB只能驱动自己对应的通道。每个通道都有一个选择开关来选择时钟源是来自MCGB还是LCGB。

4、Channel Bonding,non-bonding
对于S10有两种类型的bonding模式
(1)PMA bonding
可以用来减少通道间PMA的skew,该模式下,只有PMA部分才进行了skew补偿的,而PCS没有进行skew补偿。该模式下只能使用x6/x24网络。只用一个PLL来驱动多个通道。
(2)PMA and PCS bonding
可以用来减少bonding通道组间PMA和PCS的skew.一些在bonding组内通道的PCS控制信号被使用专用的硬件电路使其skew对齐。


—non-bonding模式
只有一个高速的串行时钟从PLL输出收发器通道(x1或者MCGB到x6),低速并行时钟是由每个通道的LCGB自己产生的。下图就是一个PLL产生MCGB来驱动多个通道的non-bonding模式。

在列话的ATX PLL里设置如下
(1)如果是同一个bank的通道,可以直接通过tx_serial_clk(x1line)输出然后连接到通道
(2)如果有多个跨bank的通道,则需要生成MCGB时钟来驱动x6网络,x6再去驱动x24网络

—bonding模式
该模式下,**高速串行时钟和低速并行时钟都是由PLL输出到收发器通道的。**所以每个通道的LCGB被旁通了,并行时钟都是由MCGB产生的。

bonding模式,通道间收发器的skew是最小的。常用于比如PCIE,Interlaken等。下面就是一个10个通道bonding的方式。看着跟non-bonding是相似的,但是ATX PLL的设置不一样,以及PHY的设置也不一样,此时是

ATX PLL设置如下

这时在native PHY里需要设置通道为bonding


这时ATX PLL输出的是tx_bonding_clocks[5:0],而tx_serial_clk信号就没用了,需要悬空。PHY是有10个通道,有tx_bondin_clks[59:0],每个通道是需要输入一组tx_bonding_clocks[5:0],所以,此时需要把时钟信号复制为10组分别输入到10个通道的时钟端口。




您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-5-27 03:37 , Processed in 0.064953 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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