块 RAM - 2023.2 简体中文

电源设计管理器 用户指南 (UG1556)

Document ID
UG1556
Release Date
2023-10-18
Version
2023.2 简体中文
Block RAM(块 RAM)页面涵盖了专用 36 kb 块 RAM 的功耗估算,使用这些块 RAM 所实现的存储器阵列比使用 LUTRAM 可实现的存储器阵列大得多。块 RAM 通常由特定深度、宽度和级联高度的阵列组成。建议通过Add Memory(添加存储器)按钮使用Memory ConfigurationWizard(存储器配置向导)来输入较大的阵列,因为它与综合后结果紧密匹配。通常,综合会选择与预期略有不同的折衷架构方案来平衡性能、面积和功耗。以下是用于块 RAM 大小配置的各列的描述。
Cascade Group Size(级联分组大小)
块 RAM 采用专用级联电路来高效构建更深层的存储器,这样可以避免产生额外的寻址、解码和多路复用逻辑成本。最重要的是,级联块 RAM 可以显著节省动态功耗,因为每次针对每个级联分组,只有 1 个块 RAM 有效。PDM 默认级联分组大小为 4 即体现了功耗与性能的折衷取舍。综合可创建的级联最大深度为 8(最低功耗),最小深度为 1(最佳性能)。
Mode(模式)
表示块 RAM 大小的配置以及纠错模式(如使用)。PDM 已建模的不同大小包括:
  • RAMB18:18 kbit 容量(位宽最大为 18)
  • RAMB36:36 kbit 容量(位宽最大为 36)
  • RAMB18SDP:Simple Dual-Port(简单双端口)模式,采用固定位宽(36 位)
  • RAMB36SDP:Simple Dual-Port(简单双端口)模式,采用固定位宽(72 位)

您可将 SDP 模式配置为启用“Error Correction Coding”(纠错码)电路。另外,针对简单双端口 RAM,并不总是使用 SDP RAM 模式。它取决于端口“Bit Width”(位宽)是否能够有效拟合 SDP 模式的固定宽度:RAMB18 的位宽为 36,RAMB36 的位宽为 72。中间宽度更有可能映射到 RAMB18 模式和 RAMB36 模式。

Bit Width(位宽)
这表示每个块 RAM 端口的数据宽度,所含选项限制为 RAM 块配置所支持的宽度值。
  • 对于中间宽度,请选择更高一级的宽度值。
  • 对于 SDP 模式配置,针对 RAMB18SDP 必须选择位宽值 36,针对 RAMB36SDP 则必须选择 72。
  • 支持非对称宽度。

确定结构配置后,其他设置可用于配置影响动态功耗的活动速率。

Clock(时钟)
每个端口均可采用相同时钟进行时钟设置,或者也可以采用独立时钟进行时钟设置。分配时钟后,相应的端口就会产生功耗,即使禁用该端口也是如此。这是因为时钟网络在块 RAM 电路各部分中仍处于有效状态。
Toggle Rate(翻转率)
这是表示块 RAM 数据发生翻转的时钟周期的百分比值。这是行输入中所有块 RAM 上的所有输入和输出数据管脚的平均值。
Write Mode(写入模式)
此模式用于判定对相同地址存在同步写入和读取时会发生的情况。默认值 NO_CHANGE 会导致最低功耗,因为在块 RAM 输出处没有可见转换。其他模式(WRITE_FIRST 和 READ_FIRST)会导致动态功耗增加,因为输出数据分别经历了转换为写入数据或转换为读取数据的过程。
Enable Rate(使能率)
这是端口处于有效状态对比处于待机状态的时间百分比值。启用端口时,其功耗就会增加。
Write Enable(写入使能)
这是写入端口的时间百分比值,与 Enable Rate 无关。因此,请确保 Write Enable <= Enable Rate。
为最大程度降低 RAM 功耗,使能逻辑应设计为仅在必要时才启用端口。处于持续启用状态 (100% Enable Rate) 的端口将导致功耗浪费。Vivado 块 RAM 功耗最优化会通过逻辑最优化来强制实施此建议。例如,对于仅限写入端口而言,如果其 Write Enable 保持活动的时间占周期的 25% 且 Enable 绑定到高电平,则可使用 100% Enable Rate 来估算该端口。但 Vivado 会在逻辑网表中交换 Write 和 Enable 控制信号,即,将 Write Enable 绑定到有效 (Write Enable 100%) 且 Enable 由 Write Enable 逻辑驱动 (Enable Rate 25%)。
注释: 请仔细审查各输入,以确保最大限度降低 Enable Rate。