Multiboot是一种在AMD Xilinx 7系列FPGA上实现双镜像(或多镜像)切换的方案。它允许在FPGA中加载两个不同的配置镜像,并在需要时切换。
Multiboot方案直接操作两个镜像,通常称为G镜像(Golden)和M镜像。G 镜像通常是一个稳定的、无需更新的镜像,而M镜像是需要更新的镜像。在正常情况下,FPGA应该加载M镜像并运行。假如M镜像加载失败,可以回退到G镜像。
IPROG是一条命令,放在G镜像中的开头部分。当FPGA从Flash中读取到 IPROG命令时,会跳过后续的数据,直接从设置的地址开始加载M镜像。当M镜像加载失败时,FPGA会回退到G镜像。Fallback可能由ID Code错误、CRC错误、Watchdog超时等条件触发。Watchdog超时是一种保证加载失败时一定会触发的机制。
FPGA内部的配置寄存器会记录加载状态。当发生Fallback时,会自动忽略IPROG命令,直接加载G镜像的后续部分。
优点
多功能性:Multiboot允许将多个bitstream存储在配置Flash中,实现多个 bitstream之间的动态切换。这使得FPGA可以用于多种任务。 灵活性:在一个工程中实现多个功能模块,每个模块不需要同时运行。通过 Multiboot,可以使用相对较小规模的FPGA来实现不同功能模块,从而提高性价比。
远程升级支持:Multiboot和Fallback支持FPGA远程在线升级。如果升级 bitstream出现错误,可以触发Fallback,返回到Golden Image正常运行。
缺点
资源占用:Multiboot 需要一定的逻辑资源来实现双镜像切换逻辑,会占用FPGA 的一部分资源。
设计复杂性:实现Multiboot需要仔细设计和配置,确保正确的跳转和切换逻辑。不当的配置可能导致错误或不稳定的行为。
Multiboot功能可实现多个bitstream之间的动态切换,从而实现多种任务;Multiboot和Fallback可以支持实现FPGA远程在线升级,当升级bit有错误可以触发Fallback来返回到Golden Image正常运行。Golden Image通常包含FPGA实现的基本功能,例如外设配置和初始化、远程升级等基本功能。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !