Spartan-3A / AN - 如何将多引导与设计修订管理器一起用于故障安全应用程序?

问题描述

Spartan-3A系列器件具有多重启动功能。在这些应用中,设计将在FPGA中运行,并将重新映像Flash,然后触发FPGA的重新加载。 Flash成像后,通过ICAP发出REBOOT命令,另一个图像可以加载到FPGA中。

在这些应用程序中,需要使用硬件和用户逻辑创建“故障安全”应用程序,以确保在发生错误后系统正常运行。擦除或编程闪存时可能会发生错误。由于超时或CRC错误,这些错误可能导致重新启动失败。在这种情况下,将重新加载黄金映像,设计将有机会重新映像闪存。

如果REBOOT失败,黄金映像将被加载回器件。此时,黄金图像需要知道发生了什么。这是FPGA的第一次加载吗?重启是否已尝试失败?是否多次尝试重启?

多引导尝试如何跟踪我的用户应用程序,以及如何处理这些故障?

解决/修复方法

用闪存中的另一个映像重新启动FPGA的尝试必须由FPGA和闪存中的“邮箱”进行跟踪。设计需要根据此标志的状态跟踪重启尝试和功能的不同。

可以在Flash中的地址位置创建“邮箱”。设计应该能够读取和写入Flash,因此应该支持“邮箱”系统的基础设施。

“邮箱”将保持多启动应用程序的试验次数状态。应在重新启动尝试之前设置该标志,如果成功则清除该标志。新图像应清除标记,黄金图像应始终检查标记。如果设置了该标志,则原始设计将知道已尝试重新启动并且失败。此时,原始图像应重新编程闪存,在“邮箱”中创建计数器并发出重新启动。如果失败,则可能需要将系统标记为发生错误。如果这在任何时候起作用,新设计将清除标志。

新设计还可以擦除闪存并重新编程闪存。发生这种情况时,原始设计需要在“邮箱”中设置该位。如果失败,将加载原始设计;如果这样做,将加载新设计并清除标志。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-18 20:38:59 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它