尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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、时钟芯片的应用
RELATED

相关推荐

除了生成PPT,二狗PPT还有两个你可能不知道的小工具

除了生成PPT,二狗PPT还有两个你可能不知道的小工具

有相当多的人使用二狗PPT仅仅就是一个目的,那便是快速地做出PPT。但是在官网的首页之上还悬挂着两个相互独立的小工具。这两个小工具是不需要花钱去开通套餐就可以使用的,并且和你进行PPT制作的过程能够自但是然地形成互补。 智能图表:Excel…

📅 2026/8/22 17:21:04
Jetson reComputer内存优化实战:突破8GB/16GB限制的软扩展方案

Jetson reComputer内存优化实战:突破8GB/16GB限制的软扩展方案

1. 项目概述:为什么我们需要为reComputer扩展内存?如果你正在用英伟达Jetson系列开发板,比如Jetson Nano、Orin Nano或者Orin NX,并且把它装进了Seeed Studio的reComputer机箱里,那你大概率已经感受到了一个甜蜜的烦恼…

📅 2026/8/22 17:21:03
Python数据库攻防实战:从SQL注入到安全加固的靶场实验

Python数据库攻防实战:从SQL注入到安全加固的靶场实验

1. 项目概述与核心目标最近在整理过去的教学与安全研究资料,翻到了一个几年前设计的课程项目,觉得其思路和实战价值在今天依然不过时。这个项目名为“Python数据库攻击实战课程设计”,它不是一个鼓励攻击的教程,而是一个用于教学、…

📅 2026/8/22 17:21:04
MORE NEWS

更多资讯

📰

Dopamine 中 PPO Agent 的 JAX 实现:从 PPOAgent 源码到 gin 配置实战

Dopamine 中 PPO Agent 的 JAX 实现:从 PPOAgent 源码到 gin 配置实战 【免费下载链接】dopamine Dopamine is a research framework for fast prototyping of reinforcement learning algorithms. 项目地址: https://gitcode.com/gh_mirrors/do/dopamine 导…

📰

G6 History 历史记录插件完全指南:为图编辑实现撤销(Undo)与重做(Redo)

数据可视化前端图表库 【免费下载链接】G6 ♾ A Graph Visualization Framework in JavaScript. 项目地址: https://gitcode.com/gh_mirrors/g6/G6 点击查看 免费下载 导读 History 是 G6 图可视化框架内置的官方插件,专门为图编辑场景提供 撤销&#…

📰

SQL Server Optimized Locking 实战:Transaction ID (TID) 锁定内部机制解析

示例工程数据库教程后端 【免费下载链接】sql-server-samples Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge 项目地址: https://gitcode.com/gh_mirrors…

📰

ToastFish 完整指南:用 Windows 通知栏背单词

ToastFish 完整指南:用 Windows 通知栏背单词 【免费下载链接】ToastFish 一个利用摸鱼时间背单词的软件。 项目地址: https://gitcode.com/GitHub_Trending/to/ToastFish ToastFish 是一款开源的背单词软件,它把单词卡片通过 Windows 系统通知推…

📰

AIGC运镜逻辑:推镜头到底怎么推?

推镜头,说穿了就是机器朝目标走。主体越来越大,背景被挤出画外。这个动作太符合直觉:想看清什么,凑近就完了。也正因为太直觉,很多人把它当“画面放大”用。写一句“推镜头”就交差。生成出来一看:镜头是动…

📰

Quick 测试框架 CocoaPods 安装问题排查:“No such module ‘Quick‘“ 报错的完整解决方案

测试开发工具 【免费下载链接】Quick The Swift (and Objective-C) testing framework. 项目地址: https://gitcode.com/gh_mirrors/qu/Quick 点击查看 免费下载 Quick 是基于行为驱动开发(BDD)风格的 Swift 与 Objective-C 测试框架&#x…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬