ARM系列的芯片(例如STM32系列)可以通过YMODEM协议实现在线升级,在芯片中写入BOOT程序、APP程序就可以实现。那FPGA可以这样做吗,答案是可以的。要想搞清楚流程就必须了解FPGA的启动过程。FPGA一般会外挂一个FLASH,FLASH中装的就是FPGA的配置信息。FPGA一上电首先会读取FLASH的配置信息,保存在RAM然后通过这些配置信息来运行逻辑,所以FPGA在运行过程中与外挂的FLASH无关,所以可以实现在线升级。ALTERA系列FPGA有一个IP核叫ASMI,可以自己操作自己的FLASH。
具体实现:ASMI+YMODEM协议+UART(USB、网口)