最近在维护一些FPGA板卡(EP4CE30F23C8N),发现有十几块FPGA板的3.3V和1.2V都出现了对地短路,拆下外围一些3.3V供电的芯片后,仍然短路,没办法最后直接一狠心把FPGA芯片给拆了,结果短路现象竟然都消失了,原来是FPGA的3.3V和1.2V击穿短路了;
进一步查找原因,确定究竟是FPGA的哪个Bank的电源出现了短路,连续测量了好几个FPGA芯片,发现都是Bank5的问题;
继续深究,为什么偏偏就是Bank5出问题了呢,其中定有内因,猜想应该是该Bank的某些信号出现了异常导致该Bank被击穿;
为了确认这个假设,测量Bank5的相关信号对地阻抗,竟然真的验证了之前的假设,接I2C的两根信号线的阻抗都不同程度的出现了异常(正常的板都是无穷大,而出现问题的板接FPGA的I2C信号线都仅有 几欧到几百欧 的阻抗),看来是I2C信号对FPGA的管脚造成了冲击而导致FPGA电源被击穿短路(FPGA还是挺脆弱的,要小心喽,呵呵)。
针对这次的维护工作,对FPGA系统的调试和维修也做一下小结了。
FPGA系统工作异常,一般常见的有以下两种情况:
1、FPGA上电配置不成功;
2、FPGA虽上电配置成功,但未正常工作。
不管是哪种情况,首先都应该先检查 电源系统和晶振 是否正常工作,确认它们都没问题后再继续往下查找问题。
对于第一种情况,通常可定位在FPGA的配置电路:1、确认 配置模式 选择是否正确;2、配置相关信号线 阻抗 是否正常,这些信号线有 :Config_done ,nConfig,nCE,nSTATUS,nCS,ASDO,DCLK,DATA,其中,测量Config_done信号对地阻抗较容易确定配置电路问题所在(个人认为)。正常情况下,Config_done对地阻抗应该是至少 几千欧 级别(此处的阻抗约为 11K 欧左右),若测量其阻抗低于了1K,那基本就可以肯定该配置电路出问题了。
对于第二种情况,除去电源问题,一般就是晶振的问题。若以上措施仍未有效查找并解决问题,可进一步确认FPGA的全局信号线的硬件连接、软件设置是否正确,如: DEV_OE 、 DEV_CLRn 。