-
Notifications
You must be signed in to change notification settings - Fork 19
fix: prevent false obstacle rejection by linking MST sub-routes to parent nets #393
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
seveibar
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
everything about this is good except for the name. originalConnectionName or rootConnectionName is far better, net id doesn't exist as a term and increases the complexity of understanding the autorouter
lib/solvers/AssignableViaAutoroutingPipeline/AssignableViaAutoroutingPipelineSolver.ts
Outdated
Show resolved
Hide resolved
lib/solvers/AssignableViaAutoroutingPipeline/OffboardPathFragmentSolver.ts
Outdated
Show resolved
Hide resolved
lib/solvers/CapacityMeshSolver/CapacityEdgeToPortSegmentSolver.ts
Outdated
Show resolved
Hide resolved
…prevent false obstacle rejections fix(autorouter): correctly link merged MST connections to parent nets docs(report): Add verification section to obstacle rejection bug fix report chore(debug): add connectivity map logs for verification feat(svg): Update SVG snapshots refactor(names): Transitioned to property-based connection naming and updated test snapshot fix(test): Update repro01-highdensity-drc-failure.test.ts for snapshot change chore(docs): remove bug fix report chore(cleanup): remove debug console logs chore(format): Apply code formatting WIP WIP
7f7ed26 to
f5660a7
Compare
|
Thank you for your contribution! 🎉 PR Rating: ⭐⭐⭐ Track your contributions and see the leaderboard at: tscircuit Contribution Tracker |

The autorouter was incorrectly rejecting valid paths as "obstacle
intersections." This happened because when a net was split into Minimum
Spanning Tree (MST) segments (e.g., net_mst0), the connectivity solver didn't
link these sub-segments back to the original net name (e.g., net) used by
destination pads.
Solution:
pipeline (NetToPointPairsSolver, CapacityPath, SimpleRouteConnection,
etc.).
their parentNetId and mergedConnectionNames.
this property-based approach.
This ensures the solver correctly identifies destination pads as valid
connections, not obstacles.