如何实现远程FPGA版本更新和重启?

FPGA/ASIC技术

205人已加入

描述

  电子发烧友网核心提示:如今,大多数通讯系统均将FPGA作为其产品解决方案,且已有大量FPGA应用到通讯系统之中。为了达到降低系统维护的成本的目的,我们就需要实现FPGA远程更新重启系统的功能。本文将以Xilinx VIRTEX-6 FPGA开发板为例,给大家介绍FPGA远程更新重启系统的整个配置过程。

  FPGA加载主要分为2大类,一类是主动模式(master)另一类是从模式(slave)。在主动模式时FPGA会外挂存储器存储FPGA bit映像,FPGA 会主动提供时钟访问外部存储器。在从模式时,FPGA作为从设备被挂在控制器CPU上由处理器控制对FPGA编程。上述两种模式中,因为从模式FPGA由外部CPU控制编程,可以通过远程更新CPU文件就可以实现对FPGA的版本更新,非常方便。但是当CPU外挂的FPGA较多时会使系统加载时间过长,降低系统启动速度。这里将利用FPGA 多重启(multi-boot)功能实现在主动模式下版本更新。

   远程更新流程

  当系统需要升级时,中心控制系统需要将新的FPGA比特映像文件直接发布到远程子系统,由远程 子系统将比特文件更新到非易失存储器。然后由FPGA内部控制逻辑重新启动。比特映像文件更新后,下次上电启动将从新的比特映像文件。如图 1FPGA远程更新系统

Xilinx
图 1 FPGA远程更新系统

  多重启动 FPGA 介绍

  a)多重启动介绍

  VIRTEX6可以支持2套配置文件,第一个版本为安全版本存放在起始位置(spi起始地址为0),第二个版本为最终启动版本。当FPGA启动时,加载控制器会从地址0开始读取加载指令。当读到WBSTAR和IPROG指令时,控制器就跳转到WBSTAR指定的地址读取新的加载指令。在第二个配置文件中不再发IPROG指令,控制其将顺序执行以直到配置文件结束。配置顺序如图 2。

  Xilinx

图2 多配置文件加速过程

  b)多重启动模块

  i) 配置存储器访问接口

  在FPGA配置过程中,FPGA通过指定的配置管脚访问外部非易失存储器,当配置结束后,部分管脚被释放可以用作普通逻辑管脚,但部分FPGA配置管脚是配置专用,在用户应用中是不可见的,需要例化专用模块STARTUP_VIRTEX6才能允许用户逻辑访问这些专用管脚。

 Xilinx 

图3 VIRTEX6访问外部存储器逻辑框图
表1 STARTUP_VIRTEX6管脚定义
Xilinx

  注意:这里只列出与重启相关的管脚,其他管脚定义请查阅手册UG360.PDF

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分