Show Utilization for Specific Pblocks - 2021.1 English

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

Document ID
UG906
Release Date
2021-06-30
Version
2021.1 English

When selecting the following options, the utilization report reflects the specifics of the Pblocks such as nested child Pblocks and overlapping Pblocks. These command line options are only supported in the Tcl mode.

-pblocks {pblock_list}
-exclude_child_pblocks {child_pblock_list}
-exclude_non_assigned

In this mode, the text report shows two more tables related to the specified Pblocks (parent) and child Pblocks are also printed.

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 additional columns:

  • Parent: Assigned to parent Pblocks only
  • Child: Assigned to child Pblocks only
  • 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
  • Non-Assigned: Total resources located in the area defined by the specified Pblocks and not assigned to the specified Pblocks and their child Pblocks
  • Available: Total resources available in the area defined by the specified Pblocks
  • Util%: Used / Available
Figure 2. Table Header

The following example can help understand the report better. The following figure shows the example design hierarchy and the subsequent figure shows the Pblock rectangles and the resources inside each Pblock are also highlighted from post-route netlist.

Figure 3. Example Design Hierarchy

Figure 4. 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 5. Top-Level Utilization Report

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

report_utilization -pblocks pblock_usbEngine1
Figure 6. 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 7. 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 8. 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 both Parent and Child Pblocks:

report_utilization -pblocks {<parentPblockName> <childPblockName>}

Specifying a Child Pblock is redundant if EXCLUDE_PLACEMENT is not set on it.

If the Child Pblock has EXCLUDE_PLACEMENT set on it, the report is equivalent to the union of both Parent and Child Pblocks.

Same as the first case in Show Utilization for Specific Pblocks.
4 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