Show Utilization for Specific Pblocks - 2023.2 English

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
UG906
Release Date
2023-10-19
Version
2023.2 English

When selecting the -pblocks options, the utilization report reflects the specifics of the specified Pblock. Only one parent Pblock is allowed to be specified. Available resources reflect the parent Pblock ranges, and used resources are broken into parent Pblock, child Pblock, and non-assigned. This breakdown allows you to evaluate competing requirements for the specified parent Pblock resources. These command line options are only supported in Tcl mode.

-pblocks {Pblock}
-exclude_child_pblocks
-exclude_non_assigned

When specified, two additional tables are reported relating to the specified Pblock. The properties related to the parent and any child Pblocks are printed in the summary along with some information on their SLR placement. Clock region statistics are printed in the second table.

Figure 1. Report Summary with Pblocks

The pre-placement and post-placement utilization numbers can vary due to LUT combining and non-assigned cells that cannot be accounted for before placement.

When using -pblocks, the utilization tables include the following columns:

Parent
Assigned to parent Pblocks only.
Child
Assigned to child Pblocks only.
Non-Assigned
Total resources used in the area defined by the specified Pblocks, but are not assigned to the specified Pblocks or their child Pblocks.
Used
Total resources used in the area defined by the specified Pblocks
Fixed
Total resources fixed by LOC constraints in the area defined by the specified Pblocks
Prohibited
Resources in the area defined that are prohibited from use, because of PROHIBIT constraints.
Available
Total resources available in the area defined by the specified Pblocks.
Util%
Used / Available

The following example can help you understand the report better. The following figure shows the example design hierarchy.

Figure 2. Example Design Hierarchy

The following figure shows the Pblock rectangles. The resources inside each Pblock are also highlighted from post-route netlist.

Figure 3. Design Pblocks

In this example:

  • The pblock_usbEngine1 Pblock does not have a child Pblock.
  • The pblock_fftEngine Pblock has a child Pblock, pblock_usbEngine0.
  • The pblock_cpuEngine Pblock overlaps with the pblock_fftEngine.

To generate a report for the entire design, run report_utilization without any option.

Figure 4. Top-Level Utilization Report

To generate a report for the pblock_usbEngine1 Pblock, use the following command:

report_utilization -pblocks pblock_usbEngine1
Figure 5. Utilization Report for Pblock pblock_usbEngine1

To generate a report for the pblock_fftEngine Pblock, use the command below. In this case, the resource of the nested child Pblock, pblock_usbEngine0, is counted into the total used resources.

Note: If the property EXCLUDE_PLACEMENT is applied to the child Pblock, the child resources are isolated from the parent Pblock, both for Used and Available.

The overlapping Pblock pblock_cpuEngine has partial cells being placed in the pblock_fftEngine Pblock range and they are reported as Non-Assigned as external resources.

report_utilization -pblocks pblock_fftEngine
Figure 6. Parent Pblock with Nested and Overlapping Child Pblocks

To exclude some Pblocks or non-assigned resources, use the -exclude_child_pblocks or the -exclude_non_assigned switch. The following example shows the Non-Assigned column removed from the report.

report_utilization -pblocks [get_pblocks pblock_fftEngine] -exclude_non_assigned
Figure 7. Utilization Report Excluding the Non-Assigned Resources

The following table describes the content of the report for various scenarios.

Table 1. Table Report with Pblock Assignments
Case Title Description Report
1 Report on the entire device (ROOT Pblock): report_utilization EXCLUDE_PLACEMENT has no effect on the utilization report. Util%: Used / Available.

2

Report on the parent Pblock: report_utilization -pblocks <parentPblockName> Child Pblock is nested within parent Pblock. No EXCLUDE_PLACEMENT property is specified for child Pblock.

Non-Assigned: Total cells placed within the parent Pblock bounds but not assigned to the parent or child Pblocks.

Fixed: Total cells fixed within the parent Pblock bounds.

Used: Parent + Child + Non-Assigned cells placed within the Parent Pblock bounds.

Available: Total of physical resources within the Parent Pblock bounds.

Util%: Used / Available.

Child Pblock is nested within the parent Pblock. EXCLUDE_PLACEMENT property is specified for the child Pblock. Reported area corresponds to parent Pblock ranges minus child Pblock ranges.

Non-Assigned: Total cells placed within reported area, not assigned to Parent and Child Pblocks.

Fixed: Total cells fixed within reported area.

Used: Parent Pblock cells excluding the child Pblock cells.

Available: Total of physical resources within reported area.

Util%: Used / Available.

3 Report on overlapping Pblocks Similar to the default Pblock report, except the Available becomes the union of the reported Pblocks. The EXCLUDE_PLACEMENT property is ignored.

Available: Union of the Pblocks' physical resources.

Util%: Used / Available.