描述
当采用 BitGen 生成比特流时,程序会发出如下警告:
WARNING:PhysDesignFules:2410 - 该设计正在使用一个或多个 9K Block RAM (RAMB8BWER)。9K Block RAM 初始化数据(用户定义的和默认的)都可能是不正确的且不应被使用。如需了解更多信息,敬请参考 Xilinx 答复 39999。
使用 ISE 13.1 和以前的软件版本时,对于所有 Spartan-6 器件在配置过程中,9K 模式下使用的 Block RAM (RAMB8BWER) 未能初始化用户指定的数据或默认值(全为零)。
当 ISE 设计套件 13.2i 或更高版本中未使用加密处理时,该警告已被修复。
解决方案
此答复记录介绍了 Spartan-6 勘误表(包括 EN148)中列出的 Spartan-6 9K Block RAM 初始化问题:
ISE 设计套件 13.2 以及更高版本:
已在 BitGen 中修复了该问题,并在默认情况下生效。
修复后可正确配置所有 9K block RAM 的初始值,无论该值是由用户设置还是被设置为默认值零。
不过,如果进行了加密,BitGen 修复就不起作用。
这种情况下 XST 和 MAP 中还添加了一些其它选项用来实施解决办法。
仍发出 BitGen 警告信息,为用户提供详细说明:
BitGen 修复(默认,Yes):
- 概览 - BitGen 选项 -g INIT_9K:设置(可设置 为 Yes 或 No)被添加到 ISE 设计套件 13.2。
Yes 代表使用新的比特流格式,No 代表使用原始格式,后者无法正确初始化 9K block RAM。
- 用法 - 如果设计中使用了任何 9K block RAM,就会生成新的比特流 (-g INIT_9K:Yes)。
否则,生成旧的比特流。
- 限制 - 加密处理不能与新的比特流格式一起使用。
如果试图对 9K block RAM 进行加密处理, BitGen 就会发出错误信息指向此答复记录 (Xilinx 答复 39999),并说明必须设置 -g INIT_9K:No,以生成比特文件。
- 附加信息 - 新的比特流格式使比特流略微变大(<1%)。
如欲了解新比特流的大小,敬请参考 Spartan-6 FPGA 配置用户指南 (UG380) 中的比特流概览部分。
此外,仍发出 BitGen 警告信息(如上所示),作为提示消息指向此答复记录。
可以安全地忽略此信息。
MAP 开关(默认关闭):
- MAP 选项:-convert_bram8 被添加到 ISE 设计套件 13.2。
若使用该选项,其可将设计中所有 9K block RAM 切换至 18K block RAM(如果提供这些资源)。
此开关可在命令行添加。
如果您在运行中使用 GUI,那么在高级处理属性(Advanced Process Properties) 中有一个用来输入"其它 Map 命令行选项" 的方框。
默认情况下该选项未设置。
XST 开关(默认为 Yes):
- XST 开关:-infer_ramb8 设置(可设置 为Yes 或 No)被添加到 ISE 设计套件 13.2。
使用此开关(设置为 No)时,可阻止 9K block RAM 在 XST 中的推理。
默认情况下设置为 Yes,这在之前所有软件版本中均未更改过。
如果设置为 No,XST 便不会推理 RAMB8 原语,但任何实例化的 RAMB8 均保留。
此开关可在命令行添加。
如果您在运行中使用 GUI,那么在高级处理属性(Advanced Process Properties) 中有一个用来输入"其它 XST 命令行选项" 的方框。
ISE 13.1 和之前的软件版本
描述:
- 9K 模式下不支持 9K block RAM (RAMB8BWER) 的比特流初始化。
- 不支持 9K block RAM 的默认初始化值。如果不存在用户指定的初始化值,默认情况是将所有程序内容初始化为零。这在 9K block RAM 中无法保证。
- 为确定您的设计是否包含 9K block RAM 或 XST 推理的 9K block RAM,敬请查看 MAP 报告并查找 RAMB8BWER。
- block RAM 的其它操作不受影响:
- 9K block RAM 的一般读写操作工作正常。
- 18K block RAM 的初始化、读、写操作工作正常。
规避措施:
- 使用 ISE Design Suite 13.2.
- 如果使用或需要 block RAM 的初始内容(用户指定或默认值),应使用 18K block RAM。
- 对 RAMB16BWER 进行实例化,而非 RAMB8BWER。
- 在配置后通过写入操作对 9K block RAM 进行初始化(而非使用比特流初始化或使用默认值)。
CORE Generator:
- 如果使用或需要 block RAM 的初始内容(用户指定或默认值),那么 9K 模式中不要使用 Block Memory Generator。
- 如果对于某个设计以上选项都不可行,敬请联系 Xilinx 技术支持 以获取进一步帮助。
软件影响:
- XST 基于大小来推理 9K block RAM。如果推理出的 RAM 适合 RAMB8BWER,那么可以使用。
- 在 12.4 和所有早期软件版本中均为这种方式。
- 若要改用 18K block RAM,必须对 RAMB16BWER 进行实例化。
受影响的 IP:
相关问题: