FPGA远程更新升级和测试(MultiBoot)
最近项目上要使用FPGA程序的远程更新功能空闲时间在自己的开发板上先搞了一套千兆网接口并实现在线重加载参考了之前的内容将3字节指令的flash驱动兼容到4字节指令上FPGA实现千兆网UDP协议(含ARP、ICMP)FPGA外挂存储器应用2——QSPI Flash读写等功能基于ZYNQ的远程更新功能测试硬件FPGA(Ku5p)、NorFlash(MX25U512)适用场景板卡有对外接口比如网口、串口、USB、PCIe等板卡与板卡互联且有上述对外接口等。远程更新Flash特别适用于人员不方便接触板卡比如产品部署在偏远的通信基站、机房服务器或者密封的设备机箱中突然发现一个bug需要修复或者要增加一个新功能等。远程更新完Flash后重加载程序可以通过外部MCU或者FPGA内部IPROG命令(等同赋值PROGRAM_B负脉冲)在线重加载或者掉电重启。1. MultiBoot方案为例规避在线更新程序的过程中出现断电、断线、通信中断、传输的文件有问题等意外情况使得固化程序未全部写入Flash造成FPGA变砖无法启动只能通过JTAG再次更新程序;FPGA厂商都考虑了这个问题提供了双镜像方案比如Xilinx的Golden镜像和Multiboot镜像允许在同一个配置Flash中存储多个bitstream并在不同镜像之间进行动态切换。可参考:ug570-ultrascale-configurationxapp1257-multiboot-fallback-spi-flashxapp1296-multiboot-fallback-icap1.1. 启动流程通过双镜像架构和Fallback回退机制即使在升级过程中发生意外断电、通信中断、文件错误等系统也能自动恢复到稳定状态从根本上解决了FPGA远程升级“变砖”的问题。在MultiBoot方案中通常包含两个镜像Golden Image黄金镜像存储在Flash的起始地址0x00000000包含FPGA的基本功能和远程升级逻辑。这个镜像具备远程更新Flash功能固化后不要更新是系统最后的容错保障。Update Image更新镜像存储在自定义的Flash某高位地址包含实际的业务功能。这个镜像是实际远程升级的。配合Fallback回退机制当Update Image加载失败时FPGA会自动回退到Golden Image确保系统始终能够正常运行保障仍可再次远程更新。主要有以下几个步骤上电启动FPGA上电后从Flash的0地址开始加载Golden Image。检测IPROG命令Golden Image的Header中包含一个特殊的IPROGInternal Program命令和WBSTARWarm Boot Start Address寄存器后者指向Update Image的存储地址。跳转加载FPGA检测到IPROG命令后跳转到WBSTAR指定的地址开始加载Update Image。正常运行如果Update Image加载成功FPGA运行更新后的业务功能。触发回退如果加载过程中出现错误CRC校验失败、IDCODE不匹配、Watchdog超时等FPGA自动触发Fallback重新从0地址加载Golden Image。1.2. 相关配置G镜像的约束文件需要指定M镜像的位置如果Flash容量大于128Mb需要开启4字节地址。根据自己板卡的原理图设置SPI是单线、双线还是四线模式。M镜像需要使能Fallback回退。比如本板卡的设置关于Flash的片选和信号线的约束UltraScale和其他系列不同U系列使用STARTUPE3源语无需对Flash管脚IO进行约束其他U和7系列使用STARTUPE2源语指定程序启动后的Flash时钟其他的Flash管脚片选和MSIO进行XDC约束。程序远程更新完后如果想使用不掉电在线切换程序U系列使用ICAPE3源语指定M镜像的位置需要注意每字节内高低位互换参考UG5701.3. 初次配置初次固化G镜像和M镜像时可通过Vivado生成固化文件上述设置G镜像位于地址0x00000000M镜像位于0x02000000(即G镜像指定的M镜像位置)本板用于配置启动的norflash接了4线为了快速启动采用了SPIX4。生成G和M镜像的合成文件后通过JTAG将合成文件TEST_ALL.bin固化到Flash中板卡即具备了远程加载和在线重启的功能。2. 功能测试开发Golden Image和Update Image功能开发上位机界面进行测试2.1. 约定命令上位机下发擦除指令指令头4B指令码4BM镜像起始地址4B擦除块数4B结束码4BAA55A5A5B2C1B3FDEEEEFFFFFPGA擦除完成反馈指令指令头4B指令码4B备份4B备份4B结束码4BAA55A5A5B2C1B3FDEEEEFFFF上位机下发更新指令指令头4B偏移地址4B更新数据256B结束码4B55AAAA55EEEEFFFFFPGA每包数据更新完成反馈指令指令头4B更新地址4B备份4B备份4B结束码4B55AAAA55EEEEFFFF上位机下发在线重加载指令指令头4B指令码4B备份4B备份4B结束码4BAA55A5A5FFEEDDCCEEEEFFFF2.2. 远程更新测试固化文件大小约4.77MB需要进行sector擦除4KB的个数为1223个擦除完成时间约28s平均每4KBsector擦除时间约23ms与Flash Datasheet相符。从指令下发历经擦除、逐256B更新到更新完成整个过程约41s下载过程相比Vivado还是快很多的。在线重加载后可以通过测试指示灯也可查看M镜像是否启动经寄存器观测没有回退即更新程序启动成功往期精彩回顾FPGA开发PCIe系列2实现Block DMA的H2C、C2HFPGA开发中常用的TLP包FPGA的时钟动态调相和鉴相功能基于7系列FPGA实现万兆网通信FPGA实现千兆网UDP协议(含ARP、ICMP)FPGA 40G/50G Ethernet Subsystem核的使用基于FPGA的千/万兆以太网通信巨型帧 Jumbo的处理测试基于FPGA实现NVMe硬盘的读写功能基于FPGA开发应用SATA硬盘FPGA实现SD卡内文件的读写功能(FAT32文件系统)FPGA光通信系列4 — 基于64b/66b编码的自定义协议FPGA光通信系列3 — 基于8b/10b编码的自定义协议应用FPGA光通信系列2——Aurora 64B/66B的使用FPGA实现Aurora光通信应用JESD204B的使用系列——3、DAC的应用(AD9164 9.6GSPS)JESD204B的使用系列——2、协议及ADC的应用(AD9689)JESD 204B的使用系列—1、时钟芯片的应用

相关新闻

京东商品API接入实战:从签名算法到缓存优化的完整指南

京东商品API接入实战:从签名算法到缓存优化的完整指南

1. 项目概述:电商API接口接入的核心价值 最近在对接一个电商数据中台项目,客户明确要求整合京东的商品数据。这让我又一次深入梳理了电商API,特别是京东商品API的接入流程。我发现,无论是独立开发者想做个比价工具,还是…

2026/8/2 9:17:06 阅读更多 →
电机控制进阶:速度环与电流环双PID串级控制原理与工程实践

电机控制进阶:速度环与电流环双PID串级控制原理与工程实践

这次我们来看一个在电机控制、机器人、无人机等领域非常经典且实用的技术方案:PID双环控制,特别是速度环加电流环的串级结构。如果你正在做平衡车、云台、机械臂或者任何需要精确控制转速和力矩的项目,这个方案很可能就是你需要的。它不是某个…

2026/8/2 9:17:06 阅读更多 →
408数据结构C++代码细节:从内存管理到STL实战避坑指南

408数据结构C++代码细节:从内存管理到STL实战避坑指南

1. 从“能跑”到“跑得好”:为什么408数据结构C代码细节如此重要? 如果你正在准备计算机考研408,或者正在学习数据结构与算法,大概率已经用C写过不少代码了。你可能觉得,代码能通过OJ(在线评测系统&#xf…

2026/8/2 9:17:06 阅读更多 →

最新新闻

贝叶斯神经网络:从不确定性量化到PyTorch实战

贝叶斯神经网络:从不确定性量化到PyTorch实战

1. 项目概述:从确定性到不确定性的思维跃迁在深度学习的浪潮里,我们习惯了构建一个又一个“黑箱”模型:输入数据,模型给出一个确定的预测值。无论是图像分类的类别概率,还是回归预测的具体数值,传统神经网络…

2026/8/2 10:07:27 阅读更多 →
电竞选手形象塑造:从Bin的案例看团队话语权与舆论标签的博弈

电竞选手形象塑造:从Bin的案例看团队话语权与舆论标签的博弈

在电竞圈,选手的性格与团队氛围一直是粉丝和观众津津乐道的话题。近期,关于BLG上单选手Bin(陈泽彬)在RNG时期“脾气差”的传闻再次被提及,而前RNG教练朱开(KenZhu)在直播中的一番回忆&#xff0…

2026/8/2 10:07:27 阅读更多 →
Unity XR开发与性能优化实战:官方电子书资源深度解析与应用指南

Unity XR开发与性能优化实战:官方电子书资源深度解析与应用指南

1. 项目概述:为什么Unity开发者需要一本“实战指南”? 如果你是一名Unity开发者,无论是刚入门的新手,还是已经摸爬滚打几年的熟手,我相信你都经历过这样的时刻:面对一个复杂的性能问题,比如VR场…

2026/8/2 10:07:27 阅读更多 →
10.2英寸电子墨水屏驱动开发全攻略:从SPI连接到局部刷新与低功耗优化

10.2英寸电子墨水屏驱动开发全攻略:从SPI连接到局部刷新与低功耗优化

1. 项目概述:10.2英寸电子墨水屏HAT (G) 是什么?如果你玩过树莓派、Arduino或者ESP32,肯定对那种小小的黑白墨水屏不陌生,用来显示个天气、做个桌面时钟,小巧又省电。但今天要聊的这块屏,绝对算是个“大家伙…

2026/8/2 10:07:27 阅读更多 →
Spring Boot集成MinIO实现文件永久访问:从临时链接到稳定服务

Spring Boot集成MinIO实现文件永久访问:从临时链接到稳定服务

1. 从“临时链接”到“永久访问”:为什么我们需要重新思考文件服务 在任何一个需要处理用户上传文件的Web应用里,文件存储和访问都是绕不开的基础设施。很多开发者,尤其是刚接触Spring Boot生态的朋友,可能会觉得这很简单&#xf…

2026/8/2 10:07:26 阅读更多 →
SenseCAP Indicator Matter开发板实战:从环境搭建到应用开发全解析

SenseCAP Indicator Matter开发板实战:从环境搭建到应用开发全解析

1. 从硬件到生态:为什么选择 SenseCAP Indicator 作为 Matter 开发板如果你最近在关注智能家居开发,尤其是 Matter 协议,那么“SenseCAP Indicator”这个名字大概率已经出现在你的视野里了。它不仅仅是一块开发板,更是一个为 Matt…

2026/8/2 10:06:26 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →