OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

Resizing Problems

Open AcKoucher opened this issue 1 year ago • 0 comments

Description

Currently, RepairDesign uses a strategy of resizing cells to a target slew in order to perform Post Placement Optimization. With the current methodology, the Resizer ends up "fixing" things that are not actually violations of any rule leading to over-sizing.

Note: The API that resizes to the target slew is also used in RepairSetup and RepairHold.

(Some) Current Problems

  • Cells are resized regardless of violations (No DRC, Setup/Hold violations)
  • FFs are being touched.
  • Special cells are also touched. They should be checked with the cell footprint.
  • Clock buffers are used for data network.

Suggested Solution: Enhancement Plan

Phase 1

  • [Deferred] Suppress sequential sizing (#5601)

  • [ ] Sizing should not swap cells with incompatible electrical properties.

  • [x] Use adequate buffer selection strategy for different operations (#5752)

    • [x] Data path sizing should use only data buffers (With exception of hold repairing due to tech specific properties)
    • [x] Clock nets repairing should use the same list of buffers created by CTS

Phase 2

  • [ ] Add FO4
    • [ ] Gates that don't respect FO4 should be resized.
    • [ ] Gates with cap ratio that don't violate FO4 shouldn't be further sized
  • [ ] Redo repair_design sizing using FO4
    • [ ] Do sequential sizing based on area increase (nominal buffer area threshold)

Phase 3

  • [ ] Remove target slew resizing from setup fixing
  • [ ] Remove target slew resizing from hold fixing
  • [ ] Make setup fixing or power recovery with global sizing

Additional Context

No response

AcKoucher avatar Aug 14 '24 13:08 AcKoucher