文章目录
ISE、Vivado、MicroBlaze系列教程
1. FPGA固件升级方案
FPGA的硬件可编程性给设计带来了很高的灵活性,基于FPGA的产品也会有更新或升级的需求,而且大多数情况下由于现场环境、人力物力成本的限制,无法通过下载器JTAG方式进行刷新程序,比如机房服务器中的FPGA加速卡或采集卡,无法随便出入机房进行升级,FPGA部署在偏远山区的基站或高高的通信塔台等等场景,现场通过下载器JTAG方式升级固件,一方面影响用户体验和满意度,另一方面又要耗费大量的人力物力。所以就有了FPGA远程更新固件的需求,要满足以下升级要求:
- 基本的固件升级功能,传输方式可基于常见的通讯协议,如串口、USB、CAN、网口、WiFi、蓝牙、PCIe等协议来实现升级。
- 基本的防止变砖功能,即在升级过程中任何时刻,出现异常情况,如断电,线缆断开等,都应该能保证重新上电后,还可以再次完成升级流程,防止芯片变砖。
- 升级流程的优化,可靠的通讯协议,例如握手、校验、应答等等,在满足基本功能的情况下,更高的升级效率。
对于单片机来说,IAP固件升级有非常成熟的应用方案,升级方式也很丰富,尤其是在当前日益丰富的ARM芯片环境下,不同厂家的单片机升级程序之间进行移植也非常方便。
但是对于FPGA来说,IAP升级就比较复杂。目前Xilinx和Altera的FPGA都是基于RAM结构,内部没有Flash存储器,固件程序