ExpertQuestion 345 of 111Source PDF page undefined

What three settings together actually determine whether pin-cost-aware, pin-density-aware, both, or neither placement behavior is active?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

set_technology -node {7|7+|5|s5|s4} sets the tech-specific pin-cost model -- a prerequisite. place.coarse.pin_cost_aware (default false) and place.coarse.pin_density_aware (default false, applicable to all tech nodes) are two independent toggles. The COMBINATION of all three -- which node was set, and which of the two booleans are true -- determines the actual resulting behavior: pin-cost-aware placement, pin-density-aware placement, both, or neither.

Technical Reference DiagramWhat three settings together actually determine whether pin-cost-aware, pin-density-aware, both, or neither placement behavior is active?
What three settings together actually determine whether pin-cost-aware, pin-density-aware, both, or neither placement behavior is active?, illustrating the physical design concept.

Technical Explanation

  • set_technology -node {7|7+|5|s5|s4} sets the tech-specific pin-cost model -- this is a PREREQUISITE for pin-cost-aware behavior specifically, tied to particular advanced node values.
  • place.coarse.pin_cost_aware (default false) is one independent toggle.
  • place.coarse.pin_density_aware (default false) is a SEPARATE independent toggle, and unlike pin_cost_aware, it's applicable to ALL technology nodes, not just the advanced ones set_technology -node lists.
  • The actual resulting behavior depends on the COMBINATION of all three settings -- the node value plus both booleans -- not any single one in isolation. You can have pin-density-aware placement without pin-cost-aware placement (since density-aware doesn't need the specific node prerequisite), but pin-cost-aware placement specifically requires both its own boolean AND a matching -node setting.

What To Check

  • Warning sign: pin_cost_aware is set true but no pin-cost-aware placement behavior is observed.
  • Inspect: confirm set_technology -node was actually set to one of the specific supported values ({7|7+|5|s5|s4}) -- without it, the pin-cost model prerequisite isn't met regardless of the boolean.
  • Correct: set both the matching -node value and pin_cost_aware=true together; they're both required, neither alone is sufficient.

Command Checks & Actions

ICC2set_technology -node 7

Sets the tech-specific pin-cost model, a required prerequisite for pin-cost-aware placement specifically -- must run before placement/optimization/routing.

ICC2set_app_options -name place.coarse.pin_cost_aware -value true

Enables pin-cost-aware placement behavior, but only takes effect if set_technology -node was also set to a supported value.

Healthy, Suspicious & Hard-stop Results

  • Expected: pin-cost-aware placement behavior is observed specifically when both set_technology -node (a supported value) and pin_cost_aware=true are set together.
  • Investigate: pin_cost_aware is enabled but no corresponding behavior change is observed -- check whether set_technology -node was set to a supported value, since the boolean alone isn't sufficient.
  • Stop: a design attempts pin-cost-aware placement on a technology node not in the supported set ({7|7+|5|s5|s4}) -- that combination cannot produce the intended behavior regardless of the boolean setting.

Common Mistake

The Trap: Enabling place.coarse.pin_cost_aware = true without also confirming set_technology -node was set to one of the specific supported values -- pin-cost-aware behavior has a real prerequisite that pin-density-aware doesn't share.

What The Interviewer Is Testing

Whether you know these are three genuinely independent settings whose COMBINATION determines behavior, and specifically that pin_cost_aware (unlike pin_density_aware) has a real node prerequisite.

Practical Example

Debug Scenario: place.coarse.pin_cost_aware is set true, but placement shows no pin-cost-aware behavior. Checking the technology setup, set_technology -node was never called (or was called with an unsupported value) -- the boolean alone cannot activate this behavior without the matching node prerequisite.

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.