|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 cuizehan 于 2010-8-15 11:22 编辑
7 [$ [0 X% ~8 }: g8 V1 J X& J+ y
我用的xilinx v6-lx130t-ff783-2的FPGA,来实现一个PCIe设备,整个系统的结构如下图 ( p% P% l" `# l3 A
. @5 L, P; O1 _* ?- b
0 w' @' P3 U& \) ]9 ]3 ZFPGA所在的板卡通过一根Cable连到PCIe转接卡,再通过金手指插到主机的PCIe插槽。 p0 |, s4 ~; n: a
; H- d, o0 ]# o. i
上图中只画出了PERST#信号的拓扑结构。( _6 h: n1 _7 P6 d
% q- K* `. m2 Q* W. `) K2 Z8 O: }/ w
正常的PCIe设备启动过程如下图
7 T* X4 S0 Z$ G9 `% ^
1 ]9 L, r" F% k6 a
! c0 s* m w7 r9 {/ M
预期的正常情况是:0 h9 ]* [" O5 s( k/ y" T& z
2 t" e5 L2 i) U ?2 F' c& s
1. 设备卡先加电,因此电源一直处于稳定状态,初始时PERST#被上拉到高电平。
( P7 m9 S( a, w3 t7 } 2. 启动主机,在主机POST过程中,PERST#被拉低一段时间,使所有的PCIe设备复位。
9 u) W3 Z/ I6 S* e3 w 3. 经过一段时间之后,大于tPVPERL,设备完成复位,准备好传输数据,主机撤去PERST#,设备开始工作。
4 d& [2 S* [ L2 G
4 i; e( o( R* X8 d( k# b* d& J! {, @( b3 Q9 }7 y. y
但是现在的情况是:
1 i0 k2 F; e% p+ k# p$ o) m9 C' ?( A, t5 Q4 H- B( P8 H4 j$ l
1. 如果设备卡不加电,则主机能够正常启动。
: |/ t- ^' m: e 2. 如果设备卡加电,则主机不能启动,显示器没信号,cpu、显卡风扇转速都很低,没有出现滴滴响声。
# ?9 b/ Q' @$ [% G9 T6 F' V$ Y5 {* b: h B$ n. t$ N( {: n
$ `! |- ~" N( o" s2 g% b我通过chipscope抓取了PERST#信号,发现设备卡加电时该信号时高时低,持续时间都不会超过1ms。
( q& s7 i; a$ k
2 ^2 P+ y# M( M# W' w5 k我做了如下分析:: t9 S: \ e$ K2 p
9 Y) z9 `* r% r* ^ 1. 通过万用表测量,发现主机上所有的PCI、PCIe插槽的PERST#引脚都是相连的。
7 `! E5 j' T# @ 2. 因此正是PERST#信号的时高时低,使得主机的所有PCIe设备都不能正常工作,包括显卡,因此显示器会没信号,进而不能启动。: w$ k& B: M: m1 u) }
( N/ m+ l7 N/ U7 P
但是我不知道是什么原因造成了PERST#信号的时高时低,从系统的拓扑结构来看,当主机撤去PERST#的低电平时,PERST#应该被上拉到高电平才对。- S1 z( u P! J6 k$ }( u4 f
1 }2 w+ ~. B: s& S& F: l2 K3 H
图中的3.3V - 2.5V电平转换器用的TXB0108芯片,参考的是xilinx ml605的原理图,因为v6的pcie核PERST#要求是2.5V电平的。 |
|