Reports RAM usage in the current design at any stage after synthesis. The report is more accurate when you run after completing optimizations in opt_design.
If you do not specify the -file, -csv, or -return_string arguments, the command generates the report in the standard output.
The report detail includes the following tables:
* Summary: The Summary table shows the utilization by RAM type, categorized into URAM, Block RAM, and LUTRAM. For each RAM type, it is categorized into individual primitives. Also detailed is the inferred primitive %. If you are using a synthesis tool other than AMD Vivado Design Suite Synthesis or instantiation of primitives, then RAMs are reported under instantiated primitives.
The information in the summary determines imbalances in the utilization of different types of RAMs. Based on the summary, a design benefits from retargeting heavily used primitives to lesser used ones at the cost of being less efficient.
Additionally, it evaluates LUTRAM implementation. LUTRAM primitives vary in their efficiency of bits/LUT. For example, a RAM32M16 uses 8 LUTs and upto 14-bit data. Using RAM32X1D primitives, 8 LUTs yield a maximum of 8-bit when LUT combined.
* Memory
Syntax
report_ram_utilization [‑append] [‑file <arg>] [‑csv <arg>]
[‑return_string] [‑cells <args>] [‑include_lutram] [‑quiet] [‑verbose]
Returns
Report
Usage
| Name | Description |
|---|---|
[-append]
|
Append to existing file |
[-file]
|
Filename to output results to. |
[-csv]
|
Write detailed tables to the CSV filename specified |
[-return_string]
|
Return report as string |
[-cells]
|
Limits the reporting to only those memory arrays that are contained within the specified cells. |
[-include_lutram]
|
Adds LUTRAMs to the report |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
Categories
Description
Reports RAM usage in the current design at any stage after synthesis. The report is more accurate
when you run after completing optimizations in opt_design.
If you do not specify the -file, -csv, or
-return_string arguments, the command generates the report in
the standard output.
The report detail includes the following tables:
-
Summary: The Summary table shows the utilization by RAM type, categorized
into URAM, Block RAM, and LUTRAM. For each RAM type, it is categorized into
individual primitives. Also detailed is the inferred primitive %. If you are
using a synthesis tool other than AMD Vivado™ Design Suite Synthesis or
instantiation of primitives, then RAMs are reported under instantiated
primitives.
The information in the summary determines imbalances in the utilization of different types of RAMs. Based on the summary, a design benefits from retargeting heavily used primitives to lesser used ones at the cost of being less efficient.
Additionally, it evaluates LUTRAM implementation. LUTRAM primitives vary in their efficiency of bits/LUT. For example, a RAM32M16 uses 8 LUTs and upto 14-bit data. Using RAM32X1D primitives, 8 LUTs yield a maximum of 8-bit when LUT combined.
-
Memory Description: The Memory Description table displays a synthesis
view of the inferred memories including XPM inferred memories. The table sorts
entries by the total number of bits in each memory array. It specifies the
memory type and mapping for each item.
The mapping format is
<report>:<physical>:<depth>x<width>
The following categories are available for both inferred and instantiated primitives. They are collectively referred as detailed tables.
- Memory Utilization: The Memory Utilization table displays how each memory array maps to the primitives. It also reports the efficiency of mapping and indicates whether depth or width limits the mapping.
- Memory Performance: The Memory Performance table displays performance aspects of the RAM. It provides information on the usage of output register and cascading.
- Memory Power: The Memory Power table details which power aspects of the RAM are in use. It includes information on cascading and whether the enable pin connects to POWER or to a signal.
This command writes the requested report to the Tcl console, to a file, or as a string. It returns an error if it fails.
Arguments
-append - (Optional) Append the output of
the command to the specified file rather than overwriting it.
-append option is only valid for the
text report specified using the -file option and not the CSV
file.
-file <arg> - (Optional) Write the report into the
specified file. This command overwrites any files of the same name without
warning.
-csv <arg> - (Optional) Write the report into the specified CSV file. This
command overwrites any files of the same name without warning.
-file and -csv work in
similar way. If you do not specify the path as part of the file name, the file
generates either into the current working directory or the launch directory. If
neither -csv or -file are specified, the text
version of the report generates in the log file.
-return_string - (Optional) Direct the output to a
Tcl string rather than to the standard output. A variable definition captures the
Tcl string, parses, or processes as required.
-file option.
-cells <arg> - (Optional) Report the RAM resources utilization in one or more
hierarchical cells in the current design. You must specify the cells as objects
using get_cells instead of the name.
-include_lutram - (Optional) Include LUTRAMs in the detailed tables.
By default, it reports only BlockRAMs and UltraRAMs.
-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config command.Examples
The following example provides a full report of the inferred and non-inferred BlockRAM and UltraRAM resources. It writes the results to both the specified text and CSV files:
report_ram_utilization -csv ./ram_util.csv -file ./ram_util.txt
The following example provides a full report of the inferred and non-inferred BlockRAM, UltraRAM, and LUTRAM resources. It writes the results to the specified CSV file:
report_ram_utilization -csv ./ram_util.csv -include_lutram