基于URAM原语创建容量更大的RAM

时间:2025-04-28  作者:Diven  阅读:0

引言:

基于URAM原语创建容量更大的RAM

UltraRAM 原语(也称为 URAM)可在 Xilinx UltraScale +™ 架构中使用,而且可用来高效地实现大容量深存储器

由于大小和性能方面的要求,通常这类存储器不适合使用其存储器资源来实现。

URAM 原语具有实现高速内存访问所需的可配置流水线属性和专用级联连接。 流水线阶段和级联连接是使用原语上的属性来配置的。

本篇博文描述的是通过将 URAM 矩阵配置为使用流水线寄存器来实现最佳时序性能的方法。

注意:本文由 PraDIP K Kar、Satyaprakash Pareek 和 Chaithanya Dudha 共同撰写。

流水线需求:

通过在矩阵结构中连接多个 URAM,从可用的 URAM 原语实现大容量深存储器。

矩阵由 URAM 的行和列组成。一列中的 URAM 使用内置级联电路级联,且多列 URAM 通过外部级联电路互连,这被称为水平级联电路。

作为示例,图 1 示出了针对 64K 深 x 72 位宽存储器的 4x4 URAM 矩阵的矩阵分解。

图 1:4 行 4 列的 URAM 矩阵(可实现 64K 深 72 位宽的存储器)

在没有流水线设计的情况下,深度联结构会导致内存访问出现大的时钟输出延迟。 例如,在默认情况下,上述 URAM 矩阵可以达到约 350 MHz。要以更快的速度访问内存,应插入流水线。如果在网表中指定了一定数量的输出时延,Vivado Synthesis 即会自动实现此功能。

指定 RTL 设计中的流水线:

有两种方法可以用来指定 RTL 设计中的流水线的用途,可以通过使用 XPM 流程,也可以通过行为 RTL 来推断内存。

如果 RTL 设计通过 XPM 流程来创建 URAM 内存,则用户可以将对流水线的要求指定为 XPM 实例的参数。参数“READ_LATENCY_A/B”用于捕获内存的时延要求。

可用的流水线阶段数是 LATENCY 值减去 2。 例如,如果 Latency 设置为 10,则允许 8 个寄存器阶段用于流水线操作。另外两个寄存器可用来创建 URAM 本身。

图 2:使用 XPM 设置流水线设计

如果用户使用 Vivado 用户指南中提供的模板来编写 RTL,并通过此方法来创建 URAM,那么,可以在 URAM 的输出时创建尽可能多的寄存器阶段。唯一的要求是,与数据一起,流水线寄存器的启用也需要流水线化。

图 3 显示数据和流水线的启用。

图 3:URAM 块输出时的数据及流水线启用规范

图 4 示出了 RTL 级 RAM 流水线设计示例。

图 4:用来指定数据和流水线启用的 verilog 模板

分析日志文件:

Vivado Synthesis 根据上下文环境和场景发布与 URAM 流水线相关的不同消息。下表说明要在 vivado.log 文件中查找的一些消息和要采取的相应操作。

请注意,推荐的流水线阶段基于可实现最高性能 (800 MHz+) 的完全流水线化的矩阵。此建议不受实际时序约束的限制。

情况消息操作
无流水线设计的 URAMWARNING: [Synth 8-6057] Memory: "uram00/ram1/mem_reg" defined in Module: "top_sp_no_pipe" implemented as Ultra-Ram has no pipeline registers. It is recommended to use pipeline registers to achieve high performance增加时延或插入一些流水线阶段。
URAM 严重受流水线限制CRITICAL WARNING: [Synth 8-6013] UltraRAM uram00/ram1/mem_reg is under-pipelined and may not meet performance target : Pipeline stages found = 1; Recommended pipeline stages =8增加时延或插入一些流水线阶段。
带有合理流水线设计的 URAMINFO: [Synth 8-5813] UltraRAM uram00/ram1/mem_reg: Pipeline stages found = 4; Recommended pipeline stages =8检查是否满足时间要求。如果不满足性能,则增加时延。
流水线多于需要的 URAMINFO: [Synth 8-5813] UltraRAM uram00/ram1/mem_reg: Pipeline stages found = 10; Recommended pipeline stages =8减少时延,否则 FF 利用率将显着增加。
流水线设计结果INFO: [Synth 8-5814] Pipeline result for URAM (uram00/ram1/mem_reg): Matrix size= (4 cols x 4 rows) | Pipeline stages => ( available = 10, ABSorbed = 8 ) 

时间性能估计:

下表说明流水线寄存器的数量与可实现的最大估计频率之间的关系。

请注意,实际的时间数仍将取决于最终地点和路线结果。

下列数字基于 speedgrade-2 Virtex® UltraScale+™ 部件以及我们使用 4x4 矩阵实现的 64K x 72 URAM 示例工程。

流水线阶段URAM 中吸收的流水线所用流水线资源关键路径上的数据路径延迟 (ns)估计的最大频率
00不适用2.7370 MHz
11/1OREG2.15465 MHz
22/2OREG,FDRE1.632612 MHz
44/4OREG,REGCAS,FDRE,IREG_PRE1.376726 MHz
66/6OREG,REGCAS,FDRE,IREG_PRE1.376726 MHz
88/8OREG,REGCAS,FDRE,IREG_PRE1.1909 MHz
10+8/10+OREG,REGCAS,FDRE,IREG_PRE1.1909 MHz

数据路径延迟具有以下一个或多个组件。

Tco = 1.38 ns, Clk To CascadeOut on URAM

Tco = 0.82 ns, Clk To CascadeOut on URAM with OREG=true

Tco = 0.726 ns, Clk to Dataout on URAM with OREG=true, CASCADE_ORDER = LAST

URAM -> URAM 级联延迟 = 0.2 ns

URAM -> LUT 信号网络延迟 = 0.3 ns

LUT 传输延迟 = 0.125 ns

LUT -> LUT 信号网络延迟 = 0.2 ns

LUT5 -> FF 延迟 = 0.05

URAM 原语是创建容量非常大的 RAM 结构的有效方法。 被设置为易于级联以便在您的设计中创建容量更大的 RAM。

但是,太多这类结构级联在一起可能会通过 RAM 产生很大的延迟。从长远来看,花时间让您的 RAM 完全流水线化会带来很多好处。

URAM 原语是创建容量非常大的 RAM 结构的有效方法。 被设置为易于级联以便在您的设计中创建容量更大的 RAM。

但是,太多这类结构级联在一起可能会通过 RAM 产生很大的延迟。从长远来看,花时间让您的 RAM 完全流水线化会带来很多好处。

猜您喜欢

二极管是电子元器件中最常见的,其核心部分是PN结。PN结是由P型半导体和N型半导体结合而成的,决定了二极管的基本特性和应用。了解二极管PN结所用材料,对于深入理...
2025-04-07 01:00:35

硬盘连接器是现代计算机中不可少的组件,主要包括SAS、SATA和M.2三种类型。作用各有不同,但都是为了实现数据的高速传输和存储。SAS(串行附加SCSI)连接...
2009-09-20 00:00:00


圆柱滚子轴承是常见的滚动轴承,应用于各种机械设备中。了解其参数对于选择合适的轴承非常重要。内径和外径是基本尺寸,决定了轴承的安装位置和适用范围。宽度参数影响承载...
2017-08-06 00:00:00

开发环境:主机:Ubuntu12.04开发板:RT5350Openwrt:Openwrt15.051 硬件原理下图是我们温度传感器的接入引脚,3.3V 供电,i...
2023-07-15 16:13:00

吊环螺栓是常见的紧固件,应用于建筑、机械和运输等领域。主要作用是提供一个可靠的吊挂点,使得重物能够安全地悬挂或移动。与普通螺栓相比,吊环螺栓的环形设计允许链条、...
2013-12-23 00:00:00

近年来,国内贴片电阻品牌在技术创新和品质提升方面取得了显著进步,逐渐成为电子元器件市场中一支不可忽视的力量。这些品牌致力于为客户提供高性能、高可靠性的产品,并以...
2024-11-26 11:29:34

cy云母电容器是特殊的电容器。以云母作为介质。云母有良好的电气性能。应用于电子行业。本文将介绍cy云母电容器的特点与应用。云母的特性云母是矿物。具有绝缘性和耐高...
2025-04-13 12:30:03

NTC热敏电阻(Negative Temperature Coefficient Thermistor)是温度传感器,应用于各种电子设备中。的工作原理是,当温度...
2025-04-17 17:00:05

现代科技和日常生活中,各种配件的作用越来越重要。无论是在电子产品、家居设备还是其领域,配件的选择和使用都能直接影响到设备的性能和用户体验。本文将重点介绍“Acc...
2025-04-22 16:00:37