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协议分层
三层:

Transaction Layer(事务层):定义包的内容;作用:“决定传什么?传给谁”
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 眼图测试
1万+

被折叠的 条评论
为什么被折叠?



