集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: ccs

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

[复制链接]
 楼主| ccs 发表于 2010-10-31 15:27:14 | 显示全部楼层
1.GTP的PCS没有de/scramble,没有CRC,但是有8b/10b,COM Detect,elastic buffer等

2.PIPE是一个规范,如果要做PCI-e,必须遵守,否则不是PCI-e。可以参考附件中的一个老版本的PIPE Spec

3.PIPE中规定了8bit/16bit两种位宽,码率只有2.5Ghz(Gen1)以及5Ghz(Gen2)两种量产的规格,Gen3不清楚

4.xilinx例化一个GTP,实现了PIPE的功能。GTP还可以例化实现其他功能

5.Xilinx出来的62.5Mhz,是在GTP出来的PIPE的125Mhz基础上,加上de/scramble,COM alignment等功能后,再将GTP出来的16bit转为32bit的位宽,并不是GTP直接出来32bit。

6.假设PIPE采用32bit位宽,频率貌似下来了,但是中间的COM alignment,de/scramble,CRC等计算会复杂很多,延迟路径会更长。否则按照这个推论,128位宽可以解决任何问题了。

下面是一个GTP例化成PIPE的顶层描述,来源是xilinx提供的pci-express硬核的代码
数据位宽16位,GTP恢复出来的mgt_clk经过全局buffer送入当全局时钟

  // GT->PLM PIPE Interface rx
  wire [1:0]    rx_char_is_k;
  wire [15:0]   rx_data;
  wire          rx_enter_elecidle;
  wire [2:0]    rx_status;
  wire          rx_polarity;

  // GT<-PLM PIPE Interface tx
  wire [1:0]    tx_char_disp_mode;
  wire [1:0]    tx_char_is_k;
  wire          tx_rcvr_det;
  wire [15:0]   tx_data;

  // GT<->PLM PIPE Interface Misc
  wire          phystatus;

  // GT<->PLM PIPE Interface MGT Logic I/O
  wire          gt_reset_done;
  wire          gt_rx_valid;
  wire          gt_tx_elec_idle;
  wire [1:0]    gt_power_down;
  wire          rxreset;
  wire          gt_plllkdet_out;

BUFG  mgt_bufg    (.O(mgt_clk),    .I(clk_125));

gtpa1_dual_wrapper_top
mgt (
    .rx_char_is_k        ( rx_char_is_k      ),
    .rx_data             ( rx_data           ),
    .rx_enter_elecidle   ( rx_enter_elecidle ),
    .rx_status           ( rx_status         ),
    .rx_polarity         ( rx_polarity       ),
    .tx_char_disp_mode   ( tx_char_disp_mode ),
    .tx_char_is_k        ( tx_char_is_k      ),
    .tx_rcvr_det         ( tx_rcvr_det       ),
    .tx_data             ( tx_data           ),
    .phystatus           ( phystatus         ),
    .gt_usrclk           ( mgt_clk           ),
    .gt_usrclk2x         ( mgt_clk_2x        ),
    .sys_clk             ( sys_clk           ),
    .sys_rst_n           ( sys_reset_n_c     ),
    .arp_txp             ( pci_exp_txp       ),
    .arp_txn             ( pci_exp_txn       ),
    .arp_rxp             ( pci_exp_rxp       ),
    .arp_rxn             ( pci_exp_rxn       ),
    .gt_reset_done       ( gt_reset_done     ),
    .gt_rx_valid         ( gt_rx_valid       ),
    .gt_plllkdet_out     ( gt_plllkdet_out   ),
    .gt_refclk_out       ( gt_refclk_out     ),
    .gt_tx_elec_idle     ( gt_tx_elec_idle   ),
    .gt_power_down       ( gt_power_down     ),
    .rxreset             ( rxreset           )
  );
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 09:14 , Processed in 0.053994 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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