近期项目的板卡焊接回来,开始进行硬件调试。在调试FPGA最小电路能否正常工作的时候,出现了这样一个问题:用JTAG烧写器往FPGA中烧写配置文件的时候,文件可以正常烧写,但是FPGA并没有相应的反应,就是FPGA并没有工作。又尝试了一下AS模式配置FPGA,同样,配置文件也可以烧写进去,FPGA同样不工作。而且重新上电之后FPGA也同样不能正常工作,只有当烧写器连在AS配置接口的时候,重新上电FPGA才能成功重配置并且正常工作。
首先检查的是FPGA供电电路,测量供电电路正常供电。
其次检查的是FPGA的配置电路,包括JTAG配置电路和AS配置电路。用万用表测量相关配置引脚的电平值,发现相比起FPGA正常起来时候各配置引脚的电平值,起不来时候的引脚电平异常。检查FPGA的配置电路,发现配置相关的引脚nCONFIG、nSTATUS、CONF_DONE、DCLK、DATA0、ASDO这六个引脚通过一个阻排跟ARM部分的电路连接到了一起,问题可能就出在这里。把ARM部分与FPGA的配置电路断开,FPGA就可以正常配置正常工作了。
ARM电路影响FPGA配置的原因是:ARM的IO引脚直接跟FPGA的配置引脚相连,在上电的时候ARM的IO引脚默认为输出状态,在FPGA配置引脚受ARM的IO引脚电平影响的情况下,配置引脚电平被拉低,导致FPGA无法完成配置。nCONFIG被拉低,配置文件可以写入,nSTATUS和CONF_DONE被拉低导致虽然配置文件写入到FPGA中,但FPGA却无法完成配置,FPGA自然就不能正常工作了。
下图是FPGA的配置流程:
用户1851850 2016-4-27 19:54