|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 cuizehan 于 2010-8-15 11:23 编辑
$ k8 d2 O: q+ J6 ~+ v- G% e1 M
我用的xilinx v6-lx130t-ff783-2的FPGA,来实现一个PCIe设备,整个系统的结构如下图5 e/ [' J/ e9 i. x
+ y3 W; i* b' B2 |7 pFPGA所在的板卡通过一根Cable连到PCIe转接卡,再通过金手指插到主机的PCIe插槽。/ O+ ~; _; g' R
' |3 r- j* w" ]$ k( f上图中只画出了PERST#信号的拓扑结构。
: ^7 e, M+ b6 q2 j- `* H `2 o# P4 X$ A! ~
! P& S9 z1 E9 X正常的PCIe设备启动过程如下图; M' E/ B, Q% f E
2 R8 S# K4 v# n
^! g: w' h* n; K' i# t
预期的正常情况是:! h& M( y2 W% F6 r: [
7 [ \: m) y/ @1 P- i1 r
1. 设备卡先加电,因此电源一直处于稳定状态,初始时PERST#被上拉到高电平。
- {: x; h* a* w% T 2. 启动主机,在主机POST过程中,PERST#被拉低一段时间,使所有的PCIe设备复位。9 ~$ v x/ W9 E; a" X
3. 经过一段时间之后,大于tPVPERL,设备完成复位,准备好传输数据,主机撤去PERST#,设备开始工作。9 m2 l6 P/ U3 S2 R& M' {6 ~; O5 O
8 J$ e9 z+ o8 c6 I. \: F6 g8 M- L; s4 I: k4 w! V) y3 T7 A7 U- `
但是现在的情况是:
; B8 }' d% |, T6 z! l5 N4 z. b; l
1. 如果设备卡不加电,则主机能够正常启动。
$ g* J2 g. v. O I+ N 2. 如果设备卡加电,则主机不能启动,显示器没信号,cpu、显卡风扇转速都很低,没有出现滴滴响声。: p' H6 n. A1 X* x0 X! |
3 n4 |$ y0 Z* \, e
e: X" {# z$ p9 r6 T5 _我通过chipscope抓取了PERST#信号,发现设备卡加电时该信号时高时低,持续时间都不会超过1ms。
% C8 c, L% C3 w1 R8 v8 c1 v
: C' Z ~4 y/ |8 ]# m( F我做了如下分析:
% c7 |9 {4 ~3 f7 \4 N3 _
" m+ n, h5 `. W. D. N" G* y6 J 1. 通过万用表测量,发现主机上所有的PCI、PCIe插槽的PERST#引脚都是相连的。" \, Q, J" M6 x5 v+ Y
2. 因此正是PERST#信号的时高时低,使得主机的所有PCIe设备都不能正常工作,包括显卡,因此显示器会没信号,进而不能启动。
% r( s1 g- M+ T8 ~' X" v# @* A- M5 X) r2 c
但是我不知道是什么原因造成了PERST#信号的时高时低,从系统的拓扑结构来看,当主机撤去PERST#的低电平时,PERST#应该被上拉到高电平才对。7 A8 K s# j0 t6 g
$ L* O. V5 n! c- g) F2 Z w
图中的3.3V - 2.5V电平转换器用的TXB0108芯片,参考的是xilinx ml605的原理图,因为v6的pcie核PERST#要求是2.5V电平的。 |
|