2021-05-07

本文档介绍了通过网络更新FPGA固件的需求,重点阐述了BIT、BIN、MCS文件格式,以及配置文件写入FLASH和FPGA从FLASH中读取配置的过程。探讨了Multiboot多重配置启动技术,包括ICAP核、IPROG命令序列和STARTUP原语。此外,还提到了实现远程更新FPGA固件的硬件要求和具体步骤。
摘要由CSDN通过智能技术生成

网络升级FPGA方案调研与调试

 

需求概述

根据相关项目需求,需要提供通过网络更新FPGA固化程序的功能。相关关键字为多重启动,Multiboot,个人理解多重启动是指FPGA的配置文件包含两个以上,可以有策略的选择加载哪一个配置文件。

 

BIT、BIN、MCS文件格式

BIT文件是加了一些文本信息头的二进制配置文件,当然这些文本信息头不会被配置进FPGA。

如图是一个工程的bit文件。文本信息头包含bit流名称、FPGA型号、用户ID、时间等,图中例子中可以看出bit流名是ZD_Monitor_64S。

BIN文件是不包含二进制信息头的二进制配置文件,对比BIT文件图如下。

可以对比看出,BIN文件不带文本信息头。

MCS文件是一种INTER HEX文件;常用与XILINX专用工具结合烧录FPGA flash。关于INTER HEX文件的分析详情,参见文档INTER HEX文件分析.docx

关于这三种配置文件的格式详细说明,以SPARTAN-6为例参见文档ug380 Spartan-6 FPGA Configuration.pdf第5章Configuration Data File Formate以及同章节的Bitstream Composition

 

配置文件写入FLASH

配置文件从flash的第一个地址开始存储,当在实现Multiboot功能时,在线更新时配置文件存放的地址需要仔细考究。

远程更新FLASH时,结合Multiboot更加安全,如果镜像更新不成功,起码还有一个黄金镜像(golden image)可以用。

  1. 如果不考虑Multiboot,我们可以从0地址开始逐一存放。
  2. 如果考虑Multiboot,我们就需要考虑镜像文件的存放地址了,需要配置头中的信息对应起来。

关于Multiboot功能,请参考相关技术介绍章节。

 

FPGA从FLASH中读取配置文件

从配置文件的格式我们了解到,配置文件一般都由配置头+配置数据+校验组成,当然不同系列FPGA也是有很大的区别的,但是总的来说,都是这个结构。

FPGA加载配置文件肯定是从flash的0地址开始的;先读配置头,配置头数据中有一些指令,例如地址跳转指令等,根据配置头里的一些指令操作,来进行接下来的读取配置数据过程;最后是验证校验是否正确,如果正确,配置完成,如果不正确,自动跳转到golden image的地址位置重新读取配置数据,如果再次失败的话,配置失败。

 

远程更新FPGA固件的硬件要求

核心要求即为FPGA用户逻辑能主动访问外部flash芯片。

 

FPGA与外挂flash的引脚连接如果是复用引脚,如果是这种连接方式,FPGA在加载完毕配置文件后,这些复用引脚可以被内部逻辑使用,也就可以主动访问到外部flash。

 

FPGA(V4系列FPGA)与外挂flash的引脚连接如果是专用引脚,这样在加载完毕配置文件后,不能被内部逻辑使用,内部逻辑也就不能访问到外部flash,更新flash也就无从谈起。

但是有一种解决方案,如下图所示。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值