如何实现FPGA固件远程升级
一、功能介绍
在实际的项目开发中,为了便于产品的后续维护和代码的功能升级,往往需要实现FPGA固件的远程升级。FPGA固件升级可以由很多种方式,比如使用外部单片机、ARM等控制芯片接收上位机下发的FPGA固件信息,并将其写入FPGA的配置Flash中。如果我们的实际电路上并没有单片机、ARM等控制芯片或者并未连接到FPGA的Flash芯片,我们除了修改电路重新打板外,还可以通过在原有的FPGA代码中加入Flash写入程序,实现对FPGA自身配置Flash的固件升级。这里我们介绍一种使用上位机通过串口对Xilinx系列FPGA固件进行远程升级的方法,并由FPGA完成固件的接收和对自身配置Flash的写入。当然串口也可以改用更快速的网口实现,这个根据项目实际情况进行决定。二、实现框架
整个框架很简单,仅由PC、FPGA、Flash组成。升级时,PC将FPGA固件(如bin文件)通过串口下发至FPGA,然后FPGA从串口解码出固件信息,并将固件信息通过SPI接口写入自身的配置Flash芯片中。
三、升级流程
四、防止变砖
由于升级过程中可能会出现升级出错或异常断电等情况,这些问题会导致FPGA升级失败和变砖,无法再继续进行固件升级。为了解决这个问题,需要使用multiboot技术,下面我来简单介绍一下multiboot的基本工作原理。
如您有此功能的定制开发或其他的FPGA设计需求,请查看下面这篇文章了解我们的业务范围和联系方式,我们将竭诚为您服务。