PCIe速率解析与硬件设计

汇聚之精 2026-05-03 4235人围观

1.PCIE相关速率说明

PCIE对应的总线速率:

PCIE7.0:128Gbps(已正式发布其规范),

PCIE6.0:64Gbps,

PCIE5.0:32Gbps,

PCIE4.0:16Gbps,

PCIE4.0:16Gbps,

PCIE3.0:8Gbps,

PCIE2.0:5Gbps,

PCIE1.0:2.5Gbps。

由于应用领域不同其所需总线速率也不同,目前接触到的设计,pcie 3.0局多,主要是CPU交换机之间通信,或CPU与FPGA之间的通信。

2.芯片所支持的pcie 协议及管脚确认

2.1CPU或AI处理器的pcie硬件管脚

对于CPU或AI处理器手册中会明确描述所支持的pcie接口及管脚,如RK3588中对pcie接口的描述见下图所示,因此对于CPU或AI处理器的pcie硬件设计时只需看此数据手册即可,比较简单;

0060fc72-3fa3-11f1-90a1-92fbcf53809c.png

2.2xilinx 7系列FPGA PCIE硬核资源查看

对于FPGA来说pcie所用的是GT资源,若使用PCIe硬核需要使用其硬核对用的管脚才可以,否则就要专门使用软核进行开发,有硬核资源的情况下建议优先使用硬核资源,如何查看FPGA对应的pcie硬核管脚需要按照以下步骤进行。

1、对于7系列FPGA来说先查看手册PG023,

2、确定位置后再根据手册UG476查看对应的硬件引脚,即可确定PCIe的硬核管脚:

汇总:A7/K7/Z7仅支持1个PCIe2.0(5Gbps)硬核,V7最大支持3个PCIe 3.0(8Gbps)硬核。对应X4的在前一BANK。PCIE lane序号和GTX标号需要确认清楚。

注意:使用不同系列的FPGA请查看对应的手册,能选择用硬核建议使用硬核资源。

3.PCIE交流耦合电容的选择

PCIE协议推荐的耦合电容范围如下:

011dbaec-3fa3-11f1-90a1-92fbcf53809c.png

对于pcie1.0和pcie2.0常用的交流耦合电容选用0.1uf,对于pcie3.0常用的交流耦合电容选用0.22uf,正常来说速率越高需要的耦合电容容值越小才对,但为什么这里会是反的,主要是考虑PCIE的执行编码方式8b/10b,此编码方式是为了DC平衡,综合考虑才选择的0.22uf。

另外,较小的封装尺寸可减小寄生效应和引入的阻抗不连续,对于PCIe 4.0和PCIe 5.0,0201尺寸的电容通常比0402尺寸更受推荐,如Intel的PCIe 4.0耦合电容通用设计规则中就提到虽0402尺寸是可以接受的,但0201尺寸电容更推荐使用。

4.PCIE协议

PCIe拓扑结构如下图所示:

4.1常用术语

Link:两设备间通过1对或多对差分线连接,形成的数据通道。

0212f87c-3fa3-11f1-90a1-92fbcf53809c.png

TLP:“事务包(TLP,Transaction Layer Packet)”;

4.2协议分层

三层:

026941aa-3fa3-11f1-90a1-92fbcf53809c.png

TransactionLayer(事务层):定义包的内容;作用:“决定传什么?传给谁”

Data Link Layer(数据链路层):传输包;作用:“确保传对,传完整”;

Physical Layer(物理层):信号编码,电信号传递;作用“把数据变为电信号/光信号”;

包在各层次封装的图示:

02c2310c-3fa3-11f1-90a1-92fbcf53809c.png

4.3协议分层协作流程:

为更直观理解三层如何配合,以“CPU读取PCIe SSD中的文件”为例,看数据的完整传输路径:

1、事务层(SSD端):

SSD接收CPU的“读数据请求”,事务层将“要读取的文件数据”+“CPU的目标内存地址”+“读指令”打包成TLP,传给数据链路层。

2、数据链路层(SSD端):

给TLP添加“链路控制头”和“CRC校验码”,打包成DLLP,同时记录“已发送的DLLP”(用于重传),传给物理层。

3、物理层(SSD端):

将DLLP的二进制数据编码成“高低电平信号”,通过PCIe x4通道(假设SSD用x4)的铜线传输到主板。

4、物理层(主板/ CPU端):

接收电信号,解码成二进制的DLLP,传给数据链路层。

5、数据链路层(主板/ CPU端):

用CRC码校验DLLP是否完好,若完好则回复“ACK”给SSD,同时去掉“链路控制头和CRC码”,还原出TLP,传给事务层。

6、事务层(主板/ CPU端):

解析TLP中的“目标内存地址”和“数据”,将文件数据写入CPU指定的内存地址,完成一次数据传输。

5.PCIE的硬件测试

对于这些高速信号,需要使用高速差分示波器进行测试,常用的示波器厂家有kesight和泰克,建议选择信号速率为2倍速率以上的仪器进行测试,防止示波器带宽不足,出现测试失真情况,影响对信号质量的判定。测试眼图如下图所示,若测试信号眼图质量较差,可通过调节CPU或FPGA的PCIE相关参数(均衡、加重、摆幅等相关参数)。若想了解均衡、加重、摆幅对眼图的影响可查询相关文章或测试说明。

031d9e2a-3fa3-11f1-90a1-92fbcf53809c.png

PCIe眼图测试

Powered By Z-BlogPHP