Xilinx7系列FPGAMultiboot介绍-远程更新.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Xilinx7系列FPGAMultiboot介绍-远程更新 在远程更新的时候,有时候需要双镜像来保护设计的稳定性。在进⾏更新设计的时候,只更新⼀个镜 像,另⼀个镜像在部署之前就测试过没问题并不再更新。当更新出错时,通过不被更新的镜像进⾏⼀些 操作,可以将更新失败的数据重新写⼊Flash。这样即使更新出错,也能保证设计⾄少可以被远程恢复。 Xilinx的双镜像⽅案成为Multiboot。本⽂对Xilinx 7系列的Multiboot做⼀些简单介绍。 Multiboot直接操作的是两个镜像,但实际上可以⽤于多个镜像。为了便于描述,Multiboot中的两个镜像 分别成为G镜像(Golden)和M 镜像(Multiboot)。 远程更新的⽅案,有⼀些是通过FPGA来读写Flash的,例如Xilinx平台下需要⾃⼰实现的Flash读写控制 器,Altera平台下的ASML IP。当⽆法提供JTAG等其他连接时,Flash的更新就只有FPGA⼀种⽅案。 当写⼊Flash的操作出现错误,或者Flash中部分地址中的数据出现错误,导致⽆法正确写⼊或者存储的数 据出现错误,这样会导致FPGA⽆法加载成功。 当FPGA⽆法加载成功或者⼯作不正常的时候,Flash的读写操作也就⽆法得到保证。此时也就不能重新 通过远程更新⽅案来重新读写Flash ,纠正之前的错误。所以可以看到,如果Flash直接由FPGA控制,当 远程更新出现错误时,很可能导致远程更新彻底失效,只能安排现场更新来修复。 对应⽅案就是使⽤双镜像(多镜像),更新的时候只更新M镜像,更新后直接使⽤M镜像。当出现M镜 像更新出现错误的时候,则启动G镜像。通过G镜像中的设计来重新更新Flash中M镜像部分的数据。 由于G镜像从来没有被更新过,这样出现错误的概率也就⾮常⼩。这样即使M镜像出现错误,可以通过G 镜像来完成⼀些⼯作(例如Flash读写操作),由此来保证设计⼀直可以使⽤。 从这个分析可以看出,双镜像的⽅案,需要完成两个任务。 1.正常情况下,加载完成时应该是M镜像在运⾏ 2.出现错误的时候,需要返回G镜像 从上图可以看到,Xilinx 7系列FPGA的Multiboot⽅案是从基地址开始存放G镜像,后续存放M镜像。加载 过程中是先加载M镜像,配置完成后如果成功,则运⾏M镜像;如果运⾏失败,则重新加载G镜像。 下⾯就从需要完成的两个任务,结合上图来进⾏介绍。 先看第⼀个任务,加载M镜像。 上电完成之后,FPGA就会按照设置,进⾏加载操作。在主动模式下,FPGA会开始对Flash的操作,尝试 读取Flash中存储的配置镜像数据。需要注意的是,主动模式下的这⼀系列操作都是FPGA ⾃动完成的, ⽤户⽆法控制。 所以就出现了第⼀个问题。既然读取操作是⾃动的,那么FPGA是如何知道M镜像存储在哪⾥,并先加载 M镜像呢?如果是从0地址开始读取,那么应该先完成G镜像的加载。否则,是否使⽤Multiboot及M镜像 的地址,是如何传递给FPGA、让FPGA知晓呢? Xilinx的Multiboot⽅案中的解决办法是使⽤⼀条加载命令:IPROG。⽽这条命令,是放在G镜像中。 具体说,对于FPGA直接从0地址开始读取,先开始加载G镜像,但是这个G镜像是经过特别处理的,在 镜像数据刚开始的部分添加了IPROG 命令和M镜像的地址。当FPGA读取到这个命令之后,就会直接跳 过后⾯的数据,从设置的地址开始继续加载。这样的操作,导致G镜像只是运⾏了最前⾯的⼏条加载命 令,⽽M镜像也只是等了⼏条命令的操作就开始加载了,保证了M镜像的直接加载。 需要说明的是IPROG这是⼀条命令,所以既可以在G镜像中⽣效,也可以在设计中任意使⽤。⽤户可以 将IPROG命令发给ICAP ,来实现任意时间触发重新加载的需求。通过设置合适的地址,可以实现多个镜 像的切换。 从vivado中的设置可以看出,Multiboot的主要设置只有这6个。第⼀个成为Fallback ,最后⼀个成为 Watchdog。这两个下⽂会做介绍。第四个第五个是关于RS pin。等熟悉Multiboot理解之后可以查看⽂档 进⾏理解,本⽂不做深⼊介绍。 第⼆个是设置跳转到的地址、第三个是在G镜像中加⼊IPROG命令。这两个操作可以以命令的形式发给 ICAP接⼝,从⽽触发Multiboot中转跳并加载新的镜像数据。 看完上述的分析,应该明⽩如何实现先加载M镜像这个需求了。下⼀步就是,在加载失败时如何回退到 G镜像。 M镜像加载不成功,需要回退到G镜像的操作,Multiboot⽅案称这⼀步骤为Fallback。 Fallback在四种条件下会被触发: 1. ID C

文档评论(0)

A13966186109 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档