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

如今,大多数通讯系统均将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远程更新系统
图 1 fpga远程更新系统
多重启动 fpga 介绍
a)多重启动介绍
virtex6可以支持2套配置文件,第一个版本为安全版本存放在起始位置(spi起始地址为0),第二个版本为最终启动版本。当fpga启动时,加载控制器会从地址0开始读取加载指令。当读到wbstar和iprog指令时,控制器就跳转到wbstar指定的地址读取新的加载指令。在第二个配置文件中不再发iprog指令,控制其将顺序执行以直到配置文件结束。配置顺序如图 2。
图2 多配置文件加速过程
b)多重启动模块
i) 配置存储器访问接口
在fpga配置过程中,fpga通过指定的配置管脚访问外部非易失存储器,当配置结束后,部分管脚被释放可以用作普通逻辑管脚,但部分fpga配置管脚是配置专用,在用户应用中是不可见的,需要例化专用模块startup_virtex6才能允许用户逻辑访问这些专用管脚。
图3 virtex6访问外部存储器逻辑框图
表1 startup_virtex6管脚定义
注意:这里只列出与重启相关的管脚,其他管脚定义请查阅手册ug360.pdf

小米max2什么时候上市?小米max2最新消息:小米6持续缺货,小米max2和红米Pro来撑场
TD-SCDMA论坛换帅 3G中国标准转入实战阶段
酒店宾馆闭路监控报警系统方案及布防点设计
触摸感应电路中的ESD保护结构设计方案
python程序里如何链接MySQL数据库
如何实现远程FPGA版本更新和重启?
智能音箱回归商业的本质 拼规模并不是终极追求
丰田的新能源路线清晰实用,未来前景无限
华为Mate9、小米Note2、锤子M1L谁才是续航神器?
卡塔尔航空联手Inflight VR 为其航线新增娱乐产品VR体验
msp430有几种时钟源
国际AI线上学术会议,竟在AI云游戏《逆水寒》里举办?
IOLITE和Lantiq共同为联网家庭提供标准的、与设备无关的开放式智能家居平台
德国硅晶圆大厂下调2019年营收预期
两种针对恶劣环境的系统热管理方法
加持AI超分技术的视觉处理器,带来手机游戏画质的飞跃
digilent Spartan-3E FPGA训练板介绍
镭神车规级激光雷达,颠覆汽车前装市场
CPS的精髓在于数字世界,对物联网尤为重要
蓝牙耳机什么牌子好,音质最好的国产蓝牙耳机