开发者分享 | 使用 ICAP 在 SPI 模式下执行 Spartan-3AN 多重启动

本文转载自:XILINX开发者社区微信公众号

(UG332) 即为《Spartan-3 系列配置用户指南》

在此用户指南中,并未涵盖有关从 SPI 闪存启动时,如何使用内部配置访问端口 (ICAP) 来支持在 Spartan-3AN FPGA 内运行多重启动应用的用例。

我们将在本篇博文中讲解此用例。

为何需要 ICAP?

对于非 ICAP 设计,使用“主 SPI 模式 (Master SPI Mode)”时,多重启动功能是无效的。

要启用多重启动 (Multiboot) 功能,需要在设计中插入 ICAP。

本文随附了 ICAP 代码以供参考(扫码即可下载)。

您还可参阅 XAPP468 和 XAPP483 以获取 ICAP 功能示例,然后根据您的设计对 ICAP 进行相应的修改。

有关多重启动功能的更多信息,请点击参阅 (UG332) https://china.xilinx.com/support/documentation/user_guides/ug332.pdf

添加 ICAP 前:

在设计中插入 ICAP 之前,请先执行下列步骤:

1) 计算 Next(即下一个配置镜像)配置地址。

例如,您的闪存中可能需要存储 2 个镜像。

首先生成包含单一 BIT 文件的 MCS 文件。这样即可得到 PRM 文件,其中包含 BIT 文件的 END 地址。据此,您即可确定 Next 配置地址。

欲知详情,请参阅下图:

2) 在 MOD_REG Bitstream Settings 中,确保“NEW MODE”设置为“0”。否则将不会发生回退 (Fallback)。

3) 在黄金 (Golden) 镜像的 BIT 文件中启用以下比特流设置 (Bitstream settings)。

ICAP_Enable:Yes

4) 在黄金镜像和多重启动 BIT 文件中启用以下比特流设置:

Reset_on_err:Yes

如何添加 ICAP:

遵循以下步骤,将 ICAP 添加到您的设计中:

1) 在黄金设计中,将 Spartan3AN 器件的 ICAP 原语例化,并编写状态机以控制跳转至更新/多重启动 (Update/Multiboot) 镜像时的 ICAP 操作。或者,也可以参阅本文随附的 ICAP FSM 代码,对其进行定制以满足您的黄金设计的需求。

2) 插入 ICAP 后,请在“ICAP 原语 (ICAP Primitive)”中输入 Next 配置地址,如下所示:

3) 完成此操作后,请生成包含黄金镜像和多重启动镜像的 MCS 文件,并执行多重启动。

有关回退损坏的更多信息,请点击阅读原文参阅 (UG332):https://china.xilinx.com/support/documentation/user_guides/ug332.pdf

最新文章

最新文章