ccs 发表于 2010-10-31 15:25:08

PCIe的RC和EP能同时跑在1.25G吗

PCIe的RC和EP能同时跑在1.25G吗
前两天还有人问V5的PCIe频率,偶以为125MHz pipe clock很轻松,没想到综合之后结果很不乐观.
目前在V5上做PCIe的原型验证,用块FPGA分别实现RC和EP.芯片选型时,对PCIe的规模没有估计充分,结果综合下来,资源占用率很高,频率跑不上去.Pipe_clk本来想跑125MHz,目前看来,只能到100MHz,很难有调整的余地了.

如果不重新换FPGA芯片或重新布板,而把RC和EP的refclk都降到50MHz(原来规划是100MHz), 能否在线路上实现1.25G, 而pipe_clk跑62.5MHz,,从而实现RC和EP的通信?

我对PCIe的物理层实现细节不太了解,不知道这种简单的降频处理,在实际应用中能否顺利实现?

ccs 发表于 2010-10-31 15:25:20

纯理论分析,只要你的位宽选宽,然后并行时钟是可以降下来的。

Gen1的线路码率2.5Ghz,10b一个symbol(就是一个byte)。如果Phy采用byte的接口,那么phy得到的并行时钟是2.5Ghz/10=250Mhz;如果采用word的接口,那么得到的并行时钟是2.5Ghz/20=125Mhz。如果抛开10b中的2b overhead,那么有效码率是2.5Ghz*80%=2Ghz,上述结果就变为200Mhz以及100Mhz。

上述就是目前Phy频率的大概范围。而在GTP都可以提供这些8b/16b接口的选择。

但是按照帖子的意思,将refclk降低来试图得到更低的线路码率,最显而易见的就是这个玩意儿根本不是pci-e了。而且pll以及里面的com detect这些都是模拟电路,特别是跟频率严格相关的com detect,个人推测完全不能实现1.25Ghz以及2.5Ghz同时支持。

好奇问一下,你那边资源占用是多少?我这边2.5Ghz X1的EP占的资源大概是6K LE(spartan6);RC没做,个人估计要在8~9K左右。当然我做的并不是完全兼容协议,只是在通用PC上测试没有问题。其他资源就是ram耗得太快,所以VC以及retry buffer仅仅是用最低花销的设计。

当时做的时候,de/scrambler最费时间,但是16位位宽跑125Mhz问题还是不大的。

ccs 发表于 2010-10-31 15:25:32

我这边GTP用的16bit接口,所以,期望的pipe clk为125MHz.
8b/10b, scramble这些变换,应该在GTP里面应该已经完成了吧.
Xilinx的LUT占用率超过90%了,所以,timing很紧,而且很难有调整空间.

如果线路上跑1.25Gbs,我主要担心两方面:
1. contoller里的一些timer有可能会不符合协议,不知道会不会导致链路错误,无法通信
2. RX CDR原本是去锁2.5G的信号.如果输入变成1.25G,不知道能否顺利锁定.

ccs 发表于 2010-10-31 15:25:43

100M是PHY的参考时钟,用来产生2.5G, 5G的bit clock.所以你不能降这个时钟的
但你可以通过加宽PIPE IF的data bus来达到降频的目的,一般PHY都support 2.5G/5G,
在link negotiation时决定link speed 是2.5G or 5G. PIPE IF 一般可以support
6/16/32 bits。所以link speed跟PIPE有如下的关系:

5G    32-bit125M
5G    16-bit250M
5G   8-bit500M

2.5G32-bit62.5M
2.5G16-bit125M
2.5G   8-bit250M

ccs 发表于 2010-10-31 15:25:54

90%你是没戏的了,我现在60%都run不到125M。
不过我的PIPE IF data bus为32-bit, try过16-bit的GTP,core这边run在62.5M,link
speed run在G1 mode. Timing 没什么问题的。

ccs 发表于 2010-10-31 15:26:14

这边从综合报告来看,只能跑到90M,离125M还有相当的距离

ccs 发表于 2010-10-31 15:26:23

FPGA跟ASIC完全不一样,即使你换大容量的芯片,也很难做到125M
我现在在用XC5VLX330T, 容量好像是最大的那块,run出来timing很
糟糕的

ccs 发表于 2010-10-31 15:26:37

这么说你们的PIPE interface 是16-bit??

ccs 发表于 2010-10-31 15:26:46

,我用的是110t
内部逻辑的话,其实只是在接口很小一部分是在125MHz下跑的,很快就过度了62.5MHz了
内部大量的逻辑,是在62.5MHz
换大容量的,应该情况好很多吧
原来觉得,用FPGA和外挂PHY,跑Gbit ethernet,不算很难的事情.
PCIe应该也差不多,从时钟频率来说.

ccs 发表于 2010-10-31 15:27:00

ASIC prototype还用掉90% 的LUT...
换pin兼容的大器件吧
页: [1] 2
查看完整版本: PCIe的RC和EP能同时跑在1.25G吗