取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

使用 ICAP 在 SPI 模式下执行 Spartan-3AN 多重启动

yolanda
Moderator
Moderator
0 0 134

BY Deepak D N

注意:本论坛博客所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途 


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

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

为何需要 ICAP

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

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

本文随附了 ICAP 代码以供参考。您还可参阅 XAPP468 和 XAPP483 以获取 ICAP 功能示例,然后根据您的设计对 ICAP 进行相应的修改。

 有关多重启动功能的更多信息,请参阅 (UG332)

添加 ICAP 前:

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

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

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

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

欲知详情,请参阅下图:

1.png

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 配置地址,如下所示:

2.png

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

有关回退损坏的更多信息,请参阅 (UG332)