Skip to content

Model physical trace occupancy after baseline routing#129

Closed
AnasSarkiz wants to merge 7 commits into
tscircuit:mainfrom
AnasSarkiz:agent/layer-aware-trace-density
Closed

Model physical trace occupancy after baseline routing#129
AnasSarkiz wants to merge 7 commits into
tscircuit:mainfrom
AnasSarkiz:agent/layer-aware-trace-density

Conversation

@AnasSarkiz

@AnasSarkiz AnasSarkiz commented Jul 16, 2026

Copy link
Copy Markdown
Member

Summary

  • replace the dimensionless distinct-net density penalty with a physical per-layer occupancy model
  • derive swept copper area from segment length and configurable trace pitch (minimum width + clearance, both defaulting to 0.1 mm)
  • charge only shared occupancy by excluding the longest trace corridor on each layer
  • activate occupancy scoring only after a complete baseline solution has been captured
  • preserve occupancy state through snapshots, section solving, bus previews, and polygon routing

Why sample 6 regressed before

The previous cost used distinct-net count divided by the region's shortest dimension and applied it during the initial A* search. In narrow subdivided regions it could dominate the existing feasibility cost, changing route ownership and selective-rerip ordering until sample 6 exhausted its 2,000,000-iteration budget.

This implementation uses the actual swept trace length and region area instead. More importantly, it does not alter initial route construction: physical occupancy activates only after a complete baseline exists, so optimization can restore that completed solution rather than sacrificing reachability.

Validation

  • bun test --timeout 9999999 (98 pass)
  • bun run typecheck
  • bun run format:check
  • Pipeline 7 SRJ18 sample 6 focused selective-rerip test passes in 19.7s through the dependent autorouter PR

SRJ18 evidence through autorouter PR #1677

On samples 1, 5, 7, and 11, remaining relaxed DRC errors decrease from 13 on current main to 10 with this branch. Samples 1 and 5 remain DRC-clean; sample 7 improves from 7 to 6 errors and sample 11 from 6 to 4. Sample 6 completes end-to-end in 293.5s under a 600s cap instead of failing in TinyHypergraph near 120s.

@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tiny-hypergraph Ready Ready Preview, Comment Jul 20, 2026 3:50pm

Request Review

@tscircuitbot

Copy link
Copy Markdown

Benchmark This PR

Run benchmarks by commenting on this PR:

/benchmark [benchmark.sh args...]
/benchmark --dataset <hg07|srj18> --limit <n> --solver <core|poly> --families <default|default+deep|all> --concurrency <n|auto>

Everything after /benchmark is forwarded directly to ./benchmark.sh.
The result comment shows the matching dataset from the latest stored main-branch benchmark artifact beside the PR run; main is not rerun for each PR benchmark request.

Examples:

  • /benchmark -> hg07, all samples, core solver
  • /benchmark --dataset srj18 --limit 20 -> first 20 srj18 samples
  • /benchmark --dataset srj18 --concurrency auto -> srj18 samples with runner CPU-count concurrency
  • /benchmark --sample sample002 -> one hg07 sample
  • /benchmark --limit 20 --solver poly -> first 20 hg07 samples with the poly solver
  • /benchmark --limit 40 --families default+deep -> first 40 hg07 samples with deeper candidate families

Any PR whose title contains [BENCHMARK TEST] will automatically run the benchmark workflow on PR updates.

@AnasSarkiz AnasSarkiz changed the title Add layer-aware trace-density routing cost Add configurable trace pitch dimensions Jul 20, 2026
@AnasSarkiz AnasSarkiz changed the title Add configurable trace pitch dimensions Model physical trace occupancy after baseline routing Jul 20, 2026
@AnasSarkiz

Copy link
Copy Markdown
Member Author

Closing this unmerged occupancy dependency together with tscircuit-autorouter#1677 because the end-to-end srj18 relaxed-DRC pass rate did not improve.

@AnasSarkiz AnasSarkiz closed this Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants