一、问题场景说明
客户对产品有远程升级的需求,工程师使用的是AG10K/AG16K型号的AGM FPGA,额外增加模拟开关以实现JTAG烧录模式与ARM AS配置模式的切换。
通过JTAG烧录,Supra软件提示烧录成功,但是FPGA未能正常启动。经检查模拟开关硬件电路设计无误、通信链路正常,进行AS配置时,SPI FLASH的时钟与数据持续有信号,FPGA始终无法完成配置,也不能正常启动工作。

二、标准化解决流程
1.前置基础校验
首先完整排查硬件电路,确认硬件设计不存在错误,全链路通信状态正常。
2. 调整配置时钟频率
配置时钟速率过快是该场景下最常见的故障诱因,可通过修改ASF文件参数调整时钟速度:
在.asf文件中添加全局配置语句:set_global_assignment -name OSC_FREQUENCY 1 -extension
该参数的取值范围为0-7,其中0对应最慢配置时钟,7对应最快配置时钟
修改保存.asf文件后,在supra软件中打开对应项目Project,重新执行编译Compile操作生成全新的烧录文件。
3.验证生效 将新生成的烧录文件,无论是通过JATG烧录,还是通过ARM配置给SPI FLASH完成FPGA加载,都可以让FPGA正常工作,故障即可完全排除!Successful!

三、配套核心背景知识
(一) 不同系列AGM FPGA烧写文件说明

1. AG256 / AG576系列
<design>.prg:通过JTAG烧写的标准烧写文件
<design>_download.prg:AGM Downloader专用编程器对应的烧写文件,适用于批量快速烧写场景
<design>_SRAM.prg:用于片内SRAM写入,通过JTAG烧写后掉电即失效,可用于设计调试环节
2. AG10K/16K系列
<design>_SRAM.prg:用于片内SRAM写入,通过JTAG烧写后掉电即失效,可用于设计调试环节
<design>_master.prg:适用于Master(AS)配置模式,是通过JTAG烧写外部配置FLASH的专用文件
<design>_master.bin:适用于Master(AS)配置模式,是配置Flash的标准烧写文件
<design>_master_as.prg:该文件会调用上述的_master.bin文件,可通过AS口直接完成FLASH烧写
<design>.bin:基础配置文件,既可以用来衍生生成其他类型的烧写文件,也可直接用于Slave(PS)配置方式
rbf文件:是将上述bin文件的字节高低位反向转换后得到的文件
(二) 附加烧写功能说明
烧写<design>_master.prg前需要预先擦除FLASH,操作时可勾选"Full chip erase before program"选项
通过JTAG擦除配置FLASH,可选择"Erase configuration flash"功能,支持全片擦除或者指定地址内容擦除
通过JTAG读取配置FLASH内容,可选择"Read configuration flash to file"功能,设置输出bin文件的存储路径与读取起止地址即可完成操作。
(三) JTAG配置电路注意事项
AGM FPGA/CPLD通过JTAG完成配置与烧写时,可直接使用AGM USB-Blaster下载线或者AGM DAP LINK,硬件电路设计与Altera器件完全兼容。

请注意:如果采用非标准10针插座,Pin-2和Pin-10均需接地。

