PCIe速率解析与硬件设计

描述

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硬件设计时只需看此数据手册即可,比较简单;

总线

总线

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协议推荐的耦合电容范围如下:

总线

对于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对或多对差分线连接,形成的数据通道。

总线

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

4.2协议分层

三层:

总线

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

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

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

包在各层次封装的图示:

总线

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相关参数(均衡、加重、摆幅等相关参数)。若想了解均衡、加重、摆幅对眼图的影响可查询相关文章或测试说明。

总线

PCIe 眼图测试

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分