最近我的FPGA罢工了,而且是部分罢工,FPGA的JTAG口不能下载程序,这种事情不是第一次了,在我的项目中也出现过。而且出现的形式也极其相似,很离奇。前一天晚上用的还好好的,第二天就不行了,真是让人郁闷的不行。为了继续让他工作我换了好几个usb-blaster,可一点都没见成效。难道JTAG口真的坏了。上网百度了一下,结果发下了下面的结论,原文如下:
根据ALTERA官方FAE(现场应用工程师)的强烈建议,请注意不要随意带电插拔JTAG下载接口,否则会损坏FPGA芯片的JTAG口信号管脚。
现象:
在排除了下载线的问题后,还是不能访问FPGA的JTAG口,那么很有可能你的FPGA芯片的JTAG口已经损坏。此时请用万用表检查TCK,TMS,TDO和Tdi是否和GND短路,如果任何一个信号对地短路则表示JTAG信号管脚已经损坏。
原因分析:
我们经常为了方便,随意插拔JTAG下载口,在多数情况下不会发生任何问题。仍然有很小的概率因为热插拔而产生的JTAG口的静电和浪涌,最终导致FPGA管脚的击穿。
有人怀疑是否是D版的USB Blaster或者ByteBlasterII设计简化,去处了保护电路导致的。但事实证明原装的USB Blaster也会发生同样的问题。
我们怀疑是否是ALTERA的低端芯片为了降低成本,FPGA的IO单元没有加二极管钳位保护电路。
我们的建议:
请大家尽量按照以下步骤进行板子和下载线的上电、下电顺序:
上电顺序:
1.在FPGA板子断电的情况下,插上JTAG下载线接口
2.插上USB Blaster或者ByteBlasterII的电缆
3.插上FPGA板子的电源
下电顺序:
1. 断开FPGA板子的电源
2.断开USB Blaster或者ByteBlasterII的电缆
3.断开JTAG下载线接口
虽然上面的步骤有点繁琐,但是为了保证芯片不被损坏,希望大家按照上面的步骤来操作。
我就纳闷了,难道FPGA的JTAG口真的那么脆弱?我按照上述次方法,结果发现,TCK真的跟GND短路了,真是郁闷至极啊。只能动手术了,换了片子以后,JTAG口真的好了。我就想如何才能避免这种悲剧再次发生呢?自己加入一些保护电路可以么?百度了一下也没什么结果,为了避免再次罢工现象发生,我决定还是先按上述方法操作吧,在这里也给大家提个醒,尽量不要带电热插拔,以免步我的后尘。
FPGA 黑金开发板 JTAG NIOS