将存储器映射到 UltraRAM 块 - 2023.2 简体中文

Versal 自适应 SoC 硬件、IP 和平台开发方法指南 (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 简体中文

UltraRAM 是 1 个大型存储器块,具有 2 个使用同一时钟的端口。除块 RAM 资源外,还包含 UltraRAM。UltraRAM 可配置为 4Kx72、8Kx36、16Kx18 和 32Kx9。

可采用以下任一方法在设计中运用 UltraRAM:

  • 依靠综合在 HDL 中的存储器声明上设置 ram_style = "ultra" 属性,以便推断 UltraRAM。
  • 例化 AMD XPM_MEMORY 原语。
  • 例化 UltraRAM UNISIM 原语。

以下代码示例显示了 XPM 存储器的例化,可在 HDL 语言模型中使用。突出显示的 MEMORY_PRIMITIVEREAD_LATENCY 参数均为关键参数,用于推断存储器作为 UltraRAM 用以实现最优资源映射效率。

  • MEMORY_PRIMITIVE = "ultra" 指定存储器将推断为 UltraRAM。
  • READ_LATENCY 用于定义存储器输出上存在的流水线寄存器数量。

较大的存储器将映射到 UltraRAM 矩阵,其中包含多个配置为行 x 列结构的 UltraRAM 单元。

可基于深度创建单列或多列矩阵。UltraRAM 列高度的当前默认阈值为 8,可通过 CASCADE_HEIGHT 属性来加以控制。

单列和多列 UltraRAM 矩阵的差异如下所述:

  • 单列 UltraRAM 矩阵使用内置硬件级联,无互连结构逻辑。
  • 多列 UltraRAM 矩阵的每个列中均使用内置硬件级联,并附加一些互连结构逻辑用于连接各列。可能需要增加流水打拍以保持可达成的时钟频率。这是通过增加读取时延来控制的。Vivado 工具会根据需要自动将这些寄存器封装到 UltraRAM 中。
    图 1. 在 RTL 代码中通过 XPM 指定 UltraRAM

上述示例使用 32 K x 72 存储器配置,此配置使用 8 个 UltraRAM。为了增大 UltraRAM 的最高时钟频率,应向级联链添加更多流水打拍寄存器。这是通过增加读取时延参数值来实现的。

如需了解有关 Vivado 综合中推断 UltraRAM 的更多信息,请访问此链接以参阅 Vivado Design Suite 用户指南:综合(UG901) 中的相关内容。