基于 Xilinx 7 系列的 FPGA 在线升级方案,整体做得挺灵活的。用了双 Flash 结构,主控可以跑在 PS 或者 PL 里,升级逻辑比较清晰,不绕弯子。

系统的 Flash 拆成两段,一段跑现网程序,另一段写新固件。升级时切换启动地址就行,像换个引导门,重启一下新程序就上线了,思路挺像 U-Boot 的双系统切换。

ICAP是核心,Xilinx 自己的配置端口,用它来实现在线重配置,还挺稳定的。你也可以试试PCAP或者JTAG升级,但 PCAP 更适合 Zynq 类芯片。

文件传输这一块可以走UARTSPI,甚至PCIe,看你板子上啥资源多。比如你用的是黑金 K7 那类开发板,直接参考这篇 PCIe 图像传输的案例,它本身就支持高速在线升级。

升级过程中注意电源别抖,Flash 写入别被中断。不然你会发现程序跑一半死机,重启就砖了,尤其是主 Flash 只有一块的情况。

整体来看,这套升级方案适合稳定型项目,比如图像、工业控制这类对系统可靠性要求高的场景。如果你追求“稳中求进”,这套思路还蛮推荐的。

如果你刚好在搞 Xilinx 7 系列的项目,又不想每次升级都烧写器上阵,真可以试试这个方案。