EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 alexwang 于 2018-7-3 11:14 编辑
7 Q9 ~ P4 a' t+ `0 \" I9 A$ k, F5 H; Y5 U1 b9 R# T
- h& l2 |; c/ ]- ?+ g
前言 PCI-E总线是个复杂的总线,也是很多计算机类高速总线的基础,具体的测试可能涉及到从信号质量层面到协议层面的验证。下面根据笔者的经验,对一些PCI-E测试中经常出现的问题做一下列举和总结。
; {1 J* _% T; Y) x& D, F; x" P, L
7 x" ]3 g: s$ { # k& m8 s( ~7 M+ g8 F9 {4 s8 J
- h% u3 x- y8 n: _5 x
, I0 X Y1 j w T: K( G" HQuestion 我的被测件不是标准的PCI-E插槽的金手指的接口,怎么进行PCI-E的测试? Answer 如果是标准的PCI-E插槽的金手指的接口,可以连接PCI-E协议提供的标准的PCI-E夹具进行测试,信号要求按照PCI-E的CEM规范;如果不是标准的PCI-E插槽接口,用点测或焊接探头在信号的发送或接收端进行测试,信号要求可以参考PCI-E的BASE规范。
% L: q+ k; G2 u; N: P![]()
) o; q3 [4 k! u8 d
8 Z- @( R; C% v: `) u: tQuestion PCI-E的信号测试中是否一定要使用一致性测试码型? Answer 建议使用一致性测试码型进行信号的测试,这样可以保证测试方法和测试结果的一致性。如果被测件实在发送不出一致性测试码型,也可以用真实的通信中的码型进行测试,但测试出来的幅度、抖动等结果可能和使用一致性测试码型时有细微差异。
: g% a( H2 Y4 C, { * T# L2 U; w- M* X
9 l) Z* I) E! H( h/ q- g( U
Question 我的被测件发不出标准的PCI-E的一致性测试码型,为什么? Answer 按照PCI-E规范中有关于LTSSM(LinkTraining and Status State Machine)的定义。PCI-E芯片内部的状态机在检测到对端的匹配电阻存在(差分线的正负端各有50Ω的对地电阻)后,就应该进入Polling状态,在发出Polling 码型一段时间(大约几百ns)后如果收不到对端的回应就要自动进入Polling.Compliance模式,在这种模式下被测件会有一致性测试码型发出。如果没有一致性测试码型发出,可能是没有给被测通道提供正确的匹配,可能是被测件的BIOS的状态机有问题,也可能是被测件的接收端收到了对端的回应而进入了后续的Configuration状态。
a# h; U7 v' i0 y9 n" B ; N7 m) w- Q9 N0 e: s
& L! H+ e3 U8 Q! `8 yQuestion 在PCI-E的信号质量测试中需要捕获多少的数据进行分析? Answer 按照规范要求,需要捕获至少1M个数据比特进行信号分析。
! l( b$ M) C1 X& L7 T6 ]' f/ D$ M0 a, Z![]()
. p- g/ N2 A* d- h9 Q* u$ z7 D2 W. A
Question 如果我的被测件不是标准的PCI-E插槽接口,如何进行PCI-E的协议分析? Answer 如果被测件是标准的PCI-E插槽接口,可以把协议分析仪的Interposer探头插在主板和插卡间引出信号至协议分析仪;如果不是标准的PCI-E插槽接口,可以用飞线探头焊接在连接器或隔直电容上测试,不过如果要测试的线对数量很多,焊接会比较麻烦,所以建议在PCB板上预留Midbus的探头接口(信号事先引出到两排按一定间距排列和定义的焊盘上)。 " N9 f0 {' x6 E2 }( Z/ O
! s1 M: s. T1 F; @/ q7 y& J7 E
Question 使用PCI-E协议分析仪能不能直接告诉我总线上的协议错误? Answer 这取决于具体要分析的错误。PCI-E协议分析仪只是把总线上的数据捕获下来并解包分析,对于一些明显的错误,比如校验错误、帧格式错误等,协议分析仪可以在显示或者统计分析时进行着重显示。但是对于一些更深层次的错误,协议分析仪并不能直接给出pass或fail的结果,而是需要用户对捕获和解码后的数据包的交互过程进行分析,从而判断是否有问题。因此PCI-E的协议分析仪主要用在芯片的BIOS开发等调试阶段。协议的一致性测试需要使用专门的PTC。
) u" ` C6 A3 u1 t
; x# e" N: Q* L- \0 W# W0 W& s: S$ K
|