Report configuration about RAMs in design
Syntax
report_ram_utilization [‑append] [‑file <arg>] [‑csv <arg>]
[‑return_string] [‑cells <args>] [‑include_path_info] [‑include_lutram]
[‑quiet] [‑verbose]
Returns
Report
Usage
Name | Description |
---|---|
[-append]
|
Append to existing file |
[-file]
|
Filename to output results to. (send output to console if -file is not used) |
[-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_path_info]
|
Adds path info to the RAM inputs/outputs |
[-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. It is recommended to run this report after optimizations in opt_design have been run. The report is returned to the standard output, unless the -file
or -return_string
arguments are used.
-
Summary: The Summary table shows the utilization by RAM type, broken down into URAM, Block RAM and LUTRAM. For each RAM type, it is broken down into the individual primitives. Also detailed is the inferred primitive %. If using a synthesis tool other than Vivado Synthesis or instantiation of primitives, then rams will be reported under instantiated primitives.
The information in the summary can be used to determine if there are imbalances in the utilization of different types of RAMs. Based on the summary, a design might benefit from retargeting heavily used primitives to lesser used ones at the cost of being less efficient.
Additionally LUTRAM implementation can be evaluated. LUTRAM primitives vary in their efficiency of Bits/LUT. For example, a RAM32M16 uses 8 LUTs and can have up to 14 data bits. Using RAM32X1D primitives, 8 LUTs yields a maximum of 8 bits when LUT combined.
-
Memory Description: The Memory Description table gives an RTL look at the inferred memories. It refers to memories that are inferred directly or indirectly using XPMs. The table is ordered by the total number of bits in the memory array. Items reported are memory type and mapping.
The mapping format is
<report>:<physical>:<depth>x<width>
- Memory Utilization: The Memory Utilization table details how each memory array is mapped to primitives. Also provided is information on how efficient the mapping is and whether the mapping is limited by depth or width.
-
Memory Performance: The Memory Performance table details performance aspects of the RAM. It includes information whether the output register is used, cascading has been used. If the
-include_path_info
switch is specified there is extra information on the worst path from each pin listed. - Memory Power: The Memory Power table details what power aspects of the RAM have been used. It includes information on cascading and whether the enable pin is tied to POWER or a signal.
This command returns the requested report to the Tcl console, to a file, or as a string; or returns an error if it fails.
Arguments
-file <arg>
- (Optional) Write the report into the specified file. Send output to console if not specified. This command will overwrite any files of the same name without warning.
-csv <arg>
- (Optional) Write the report into the specified CSV file.
-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.-return_string
- (Optional) Directs the output to a Tcl string rather than to the standard output. The Tcl string can be captured by a variable definition and parsed or otherwise processed.
-file
option.
-cells <arg>
- (Optional) Report the RAM resources utilized by one or more hierarchical cells in the current design. The cells must be specified as objects, using get_cells
, rather than by name.
-include_lutram
- (Optional) Include LUTRAMs in the detailed tables. By default, only BlockRAMs and UltraRAMs are reported.
-include_path_info
- (Optional) Include a shorthand representation of the worst case timing path from the given pins under the Memory Performance table of the report.
-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
report_ram_utilization -csv ./ram_util.csv -file ./ram_util.txt
report_ram_utilization -csv ./ram_util.csv -include_lutram