How do you decide if the final netlist is good to go for PnR?

oClean Sanity Checks: The netlist must pass all critical sanity checks:

No fatal errors in check_design / check_netlist (no multi-driven nets, no floating inputs on critical paths, correct connectivity).

No unresolved references (check_library passes, all cells have lib/lef).

No critical errors in check_timing (all clocks defined, critical paths constrained, no unconstrained registers intended to be clocked). Minor unconstrained paths might be acceptable if understood and deemed non-critical or intended false paths.

  • Timing QOR:

Reasonable WNS/TNS: The Worst Negative Slack (WNS) and Total Negative Slack (TNS) reported by synthesis STA should be within acceptable limits for the target clock frequency. Very large negative slack (e.g., >> 1 clock cycle) might indicate fundamental issues (unrealistic constraints, poor RTL, wrong target library) that PnR cannot fix. Small negative slack (-10% to -20% of the clock period, depending on the design/node) is often acceptable, as PnR tools have more powerful optimization engines and accurate parasitic information.

No Excessive DRV Violations: While PnR primarily fixes DRVs (Design Rule Violations like max_transition, max_capacitance), the number and severity reported by synthesis should not be excessively high, as this might indicate poor library choices or constraint issues.

  • Area QOR: The synthesized cell area should be reasonably close to initial estimates or targets. A massively larger-than-expected area might indicate synthesis issues or unrealistic constraints.
  • LEC Clean:

Power QOR (If applicable): If power analysis was run during synthesis, the estimated static and dynamic power should be within acceptable bounds.

Share:
‹ How do you initialize the design if given netlist, SDC, and lib?
Home
How do you create a voltage area in floorplan? What is the difference between a voltage domain and a power domain? ›