由上图可以看到,PCIe接口由数据接收差分管脚PCIE_RX_P,PCIE_RX_N,数据发送差分管脚PCIE_TX_P,PCIE_TX_N,以及SMBUS(SMBCLK, SMBDAT),JTAG管脚,参考时钟PCIE_REFCLK_P,PCIE_REFCLK_N以及复位管脚PCIE_PERST_N组成。其中JTAG管脚和SMBUS可以不连,参考时钟也可以选择用本地时钟或者选用接插件过来的PCIE_REFCLK_P,PCIE_REFCLK_N。前面提到,由于重点怀疑复位信号有所动作,因此对该复位信号用示波器进行监测。在若干次实验以后,发现在某次插入模块后失效时,捕捉到了PCIE复位信号PCIE_PERST_N有一个持续时间约为2.3个us的低电平脉冲,正是该脉冲信号让FPGA的PCIE IPCORE复位,导致PCIE通讯中断的原因。该脉冲信号如下图所示:
该干扰脉冲从何处而来?经过实验发现是静电导入。我们在插拔模块时,由于模块本身外壳有部分金属,因此静电从外壳金属进来后经过某些路径耦合到PCIe复位线上,引发了该问题。