全文字数1562 | 阅读需要4分钟
关键词:通道位置翻转、错序连接、链路初始化与训练、PCB导孔、阻抗不连续。
导读:
PCIe总线可以支持多通道(Lane)的连接,常见的通道数量为x4,x8以及x16,而且链路(Link)两端的设备是依照通道位置依序连接。但在PCB layout设计上,常会受限于芯片以及连接器件的位置,而必须增加PCB导孔(Via),导致讯号质量降低。因此,PCIe规范允许链路两端的设备所使用的通道位置(Lane number)可以错序连接(Out of order),称该功能为通道位置翻转(Lane Reversal)。
PCIe通道位置翻转(Lane Reversal)的定义
PCIe链路两端的设备物理层电路连接,常见的连接方式是依照通道位置(lane number)依序连接,如图1所示。但是,PCB layout设计常会遇到芯片或是连接器的通道位置定义(Pin definition)不对称,有些零件是顺时钟排列,有些零件是逆时钟排列,导致PCIe走线交错的情况发生,如图2所示。因此,PCIe规范【1】允许通道位置可以错序连接(out of order), 如图3所示。当系统设备开机起电,PCIe链路两端的装置会进行链路初始化与训练(Link Initialization & Training),其中有项工作是对通道位置进行匹配,链路两端其中之一的装置会进行通道位置翻转,让装置的通道0连接另一端装置的通道0,装置的通道1连接另一端装置的通道1,后续通道依序配置。需注意,PCIe规范通道位置翻转功能属于可选择的(Optional),意即非PCIe装置的必备功能。
PCIe通道位置翻转技术可以提高PCB的讯号质量
图2所示的PCIe走线交错情况,若不进行通道位置翻转,则必须使用PCB导孔(Via)换层,才能顺利连接。但对于高速讯号而言,导孔产生的寄生电容效应,会导致走线发生阻抗不连续,如图4所示,阻抗从100欧姆掉到接近90欧姆,这会产生讯号反射与衰减。因此,采用通道位置翻转技术,可以降低导孔使用数量,提升讯号质量。
图 4 PCB导孔(Via)产生的走线阻抗不连续
PXIe背板与外设卡的PCIe通道位置对应关系
PXIe背板的外设槽最高支持8个PCIe通道,与外设卡的通道对应关系,常见如图5与图6两种连接方式,市场上普遍的PCIe switch与FPGA皆支持这两种方式。但是若链路两端的通道数量不一致,而且采用通道位置翻转,如图7所示,这样的接连方式并非所有装置都可以支持,应用上需要格外小心。
PXIe背板是否支持PCIe通道位置翻转?
PXIe背板采用PCIe switch扩充通道数量,市场上常见的PCIe switch例如IDT、PLX、Microsemi等厂商,这些厂商全系列的芯片皆支持通道翻转功能,而且是所有通道排列组合的型式皆可支持。如图8所示IDT PES24N3芯片的支持能力【2】,总共有8种信道排列组合的型式。
图 8 IDT PES24N3芯片的信道反转支持能力
FPGA是否支持PCIe通道位置翻转?
外设卡常用的FPGA常见如Altera与Xilinx,这两家厂商的芯片普遍支持通道位置翻转功能,如图9所示Altera FPGA Arria V Hard IP通道位置翻转能力,所有通道位置排列组合的型式都可以支持【3】。
图 9 Altera FPGA Arria V Hard IP通道位置翻转能力
Xilinx FPGA Zynq-7000通道翻转能力如图10所示【4】,可以发现并非所有通道位置排列组合型式都可以支持,当链路两端的通道数量不一致而且通道位置翻转情况下,是不支持这样的工作模式。Xilinx Ultra-scale与Ultra-scale+系列芯片也同样有相同的使用限制。
图 10 Xilinx FPGA Zynq-7000通道位置翻转能力
总结
PCIe通道位置翻转技术对于PCB layout设计带来便利性,提升高速讯号的质量。对于外设卡的PCB layout设计工程师而言,需要考虑更加周详,背板可以支持所有通道位置排列组合型式,但无从得知背板PCIe的通道位置。因此,设计时必须同时考虑所有的通道可能排列组合型式,确认FPGA芯片支持的能力是否满足,然后采用适合的接线方式,才能避免开机出现无法识别的窘境。
参考
PCI Express Base Specification Revision 1.1 , March 28, 2005
https://pcisig.com/specifications/pciexpress/
IDT PCI Express Gen1 Hardware Design Guide
https://www.idt.com/us/zh/document/apn/727-pes32nt24ag2-hardware-design-guide
Arria V Hard IP for PCI Express User Guide
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-01105-1_6.pdf
7 Series FPGAs Integrated Block for PCI Express v3.0 LogiCORE IP Product Guide
https://www.xilinx.com/support/documentation/ip_documentation/pcie_7x/v3_3/pg054-7series-pcie.pdf