分解深层存储器配置,实现功耗与性能平衡 - 2023.2 简体中文

Vivado Design Suite 用户指南: 设计分析与收敛技巧 (UG906)

Document ID
UG906
Release Date
2023-10-19
Version
2023.2 简体中文

在深层存储器配置中,可使用综合属性 RAM_DECOMP 实现更好的存储器分解并降低功耗。此属性可在 RTL 中设置。将 RAM_DECOMP 属性应用于存储器时,存储器是在较宽的原语配置中设置的,而不是在较深且较窄的配置中设置的。

CASCADE_HEIGHT 属性与 RAM_DECOMP 属性搭配使用时,综合推断对级联具有更细化的控制权,因此可实现平衡的功耗与性能。此方法需要额外的地址解码逻辑,但可减少任意时间点访问的块 RAM 数量,这有助于降低功耗。下图中的存储器配置 (32 × 16K) 显示了设置 RAM_DECOMPCASCADE_HEIGHT 属性时分解存储器的方式示例。

图 1. 32 × 16K 存储器配置

如果应用属性 RAM_DECOMP = power 和 CASCADE_HEIGHT = 4,那么将按下图所示方式推断 16 RAMB36E2 并对存储器进行分解。

图 2. 使用 RAM_DECOMP 和 CASCADE_HEIGHT 属性的 32 × 16K 存储器配置生成的结构

此处使用的基本原语为 32 × 1K,4 个块 RAM 通过内置功能进行级联,组成 32 × 4K 配置。4 个此类并行结构可创建 1 个深度为 16K 的存储器。输出通过多路复用来生成输出数据。

图 3. 使用 RAM_DECOMP 和 CASCADE_HEIGHT 属性的 32 × 16K 存储器配置的 RTL 代码片段

如果仅应用 RAM_DECOMP = power 属性,则将按下图所示方式推断 16 RAMB36E2 并对存储器进行分解。

图 4. 使用 RAM_DECOMP 属性的 32 × 16K 存储器配置生成的结构

此处使用的基本原语为 32 × 1K,8 个块 RAM 通过内置功能进行级联,组成 32 × 8K 配置。2 个此类并行结构可创建 1 个深度为 16K 的存储器。输出通过多路复用来生成输出数据。多路复用器为 2:1 MUX。

图 5. 使用 RAM_DECOMP 属性的 32 × 16K 存储器配置的 RTL 代码片段

对于这 2 个存储器分解示例,总体功耗节省量是相似的,如 图 2图 4 中所示,因为任意给定时间点仅有 1 个块 RAM 处于活动状态。但在性能方面,4 级深度的级联块 RAM 链(图 2)相比 8 级深度的级联块 RAM 链(图 4)提供的性能更好。