这次遇到的奇葩问题是高云的FPGA,芯片的型号是GW1N-LV1QN48C6I5。
具体遇到的问题是 用下载器读取芯片ID 功能时一切正常 如图。
当要下载到芯片(SRAM 或者EFLASH(内部flash))时就报错,而报错的原因主要是两个
一个是POR报错 一个是VLD报错 如下图
而读取芯片ID是完全正常的 ,这说明芯片至少在JTAG口这块是正常的 。但虽然芯片id是正确的 ,但staus code是错误的 。
我一度怀疑是某个电源IO没有焊接好 且重新焊接后 芯片温度较高时 有一定的概率芯片能够成功烧录(无论是SRAM还是FLash) 于是焊接了在焊接(我也感叹高云的fpga真耐干 )被我焊接了至少10回 拿下重新上锡了5回。
最后结论 后来我问了高云的技术咨询。得知此款芯片对电源的上电时序有较高要求。具体要求请参见高云手册。如果你的电源VCCIO和VCCINT(内核 此款芯片没有VCCX辅助电源IO)上电时序在200us以内是没有时序要求的,如果超过此范围最好是按照手册给定的范围操作。否则容易造成芯片不能启动而无出现无法烧录但能读取ID的情况。