What are dangling and floating shapes, and how do you clean them up safely?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
A dangling shape is a piece of wire attached to a net at one end that goes nowhere; a floating shape belongs to a net but touches nothing of it. Both are usually left behind by rerouting and ECOs, and they add capacitance and can cause DRCs. remove_redundant_shapes deletes them without changing connectivity, but it skips open nets and nets with DRCs, so you re-check afterwards.
Technical Explanation
- Rerouting often leaves pieces of old wire behind. A stub still attached to the net is dangling; a piece that lost its connection entirely is floating.
- They carry no signal but still add capacitance, can create spacing violations and show up as floating routes in
check_lvs. remove_redundant_shapesreads DRC information stored in the design and removes dangling and floating shapes on all nets by default.-initial_drc_from_input falsemakes it runcheck_routesitself instead.- It does not change topology, connections or terminals. It also ignores open nets and nets with DRC violations, because removing metal from those could make things worse.
-nets,-layersand-route_typeslimit the scope.-remove_loop_shapes truealso removes redundant loops, which are not removed by default.- You can turn off parts of the cleanup with
-remove_dangling_shapes falseor-remove_floating_shapes false, and-report_changed_nets truelists the nets it changed. - Afterwards, run
check_routesagain, andcheck_lvsif floating shapes were the reason you ran it. - The cleanup also helps timing a little. Every stub adds capacitance to its net, so after several ECO rounds a busy net can carry a few femtofarads of dead metal. Removing it lowers that load, which is one more reason to re-extract after a large cleanup.
What To Check
- Floating routes reported by
check_lvsbefore and after. - Which nets were changed, with
-report_changed_nets true. - Open nets and DRC nets, which the command skips and which need their own fix first.
check_routesresult after cleanup.
Command Checks & Actions
check_routesRefreshes the stored DRC information the cleanup relies on.
remove_redundant_shapes -report_changed_nets trueRemoves dangling and floating shapes on all nets and lists the changed nets.
remove_redundant_shapes -nets [get_nets my_net] -remove_loop_shapes trueCleans one net, including redundant loops.
check_lvs -checks {floating_routes} -max_errors 0Confirms no floating shapes remain.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Floating routes go to zero,
check_routesis unchanged or better, and no nets lose connectivity. - Suspicious (illustrative): Some floating shapes remain on nets with DRCs or opens, which the command skipped.
- Hard stop: Cleanup run on a stale DRC database, removing shapes on nets whose state has since changed.
Common Mistake
The Trap: Running remove_redundant_shapes and expecting it to fix a net that is open because of a stray stub. The command ignores open nets entirely, so nothing changes. The open needs ECO routing first; cleanup comes after.
What The Interviewer Is Testing
- Whether you can define dangling and floating shapes clearly.
- Do you know what the command will not touch?
- A strong answer shows you verify afterwards rather than assume.
Follow-up Question & Model Response
"Why does the command skip nets with DRCs?"
Candidate Model Response: On a net with violations, the tool cannot be sure which shapes are redundant and which are part of a connection the router is still fixing. Removing the wrong piece could open the net or make the violation worse. So it leaves those nets alone. Fix the DRCs first, then run the cleanup again.
Practical Example
Tapeout Scenario: After two ECO rounds, check_lvs -checks {floating_routes} -max_errors 0 reports 58 floating routes, and 140 nets have dangling stubs (illustrative). remove_redundant_shapes -report_changed_nets true removes shapes on 181 nets. check_lvs then shows 4 floating routes left, all on 2 nets that still had DRCs. After an incremental detail routing pass fixes those DRCs, a second cleanup clears the last 4, and check_routes shows no change in open nets.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

Continue practising