Skip to content

report_design_area and report_design_area_metric does not match for private designs #9566

@gudeh

Description

@gudeh

I noticed the area does not match for some private designs, but does for public ones.

Here is a small summary for potential future reference:

  • report_metrics is costly and reports multiple things, it also calls report_design_area.
  • report_design_area is calculated with RSZ with the function I modified in this PR: Resizer::computeDesignArea(), I understand it is not costly in runtime, and only iterates over block_->getInsts() once.
  • OR submodule flow tests in OpenROAD/test/ uses Resizer::computeDesignArea() for reporting metrics.
    • This is why we required test updates in this PR.
  • ORFS metrics on the other hand uses another command with a similar name: report_design_area_metrics. It iterates over instances and checks the area directly on a TCL script in OpenROAD/src/Metrics.tcl at these lines with the TCL loop: foreach inst [$block getInsts] {.

Finally, I checked a few designs and the areas reported by the two commands report_design_area and report_design_area_metrics match for pubic designs.

For example, asap7/aes:
OR metric: Design area 1998 um^2 48% utilization.
ORFS metric: [INFO] finish__design__instance__area pass test: 1997.66 <= 2269

This can be easily check by the end of secure-CI report, both are a few lines apart:
image
image

Originally posted by @gudeh in #9452 (comment)

Metadata

Metadata

Assignees

Labels

utlUtilities

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions