VLSI Macro Placement Optimization
A two-stage optimizer over DREAMPlace that picks a placement strategy per design and then refines it with warm-started Bayesian search, cutting proxy cost 16% against a RePlace baseline across 21 benchmarks.
- Period
- Spring 2026
- Role
- 4-person team
- Stack
- Python · DREAMPlace · TPE / Bayesian optimization · IBM + NG45 benchmarks
- Source
- Repository Hosted under Krithik4's GitHub.
- 16%
- lower placement proxy cost vs. RePlace
- 21
- IBM / NG45 designs
- 2-stage
- clustered strategy + TPE refinement
The problem
Macro placement decides where the large fixed blocks go before standard cells are placed around them, and it sets the ceiling on everything downstream — wirelength, congestion, timing. Placers like DREAMPlace expose knobs that materially change the outcome, and the right setting is design-dependent. There is no single configuration that wins everywhere.
Which leaves two bad options: hand-tune per design, which doesn’t scale past a handful, or accept a general-purpose default and leave quality on the table. This project is an attempt at a third: learn which strategy suits a design, then refine within it.
What I built
A two-stage optimizer wrapping DREAMPlace, evaluated across 21 IBM and NG45 designs.
Stage one — clustered strategy selection. Rather than searching the full parameter space fresh for every design, strategies are grouped into clusters, and the optimizer selects adaptively among them based on the design at hand. This is the part that makes the approach scale: it reuses what worked on similar designs instead of rediscovering it.
Stage two — warm-started TPE refinement. Bayesian optimization (Tree-structured Parzen Estimator) refines within the chosen strategy, started from stage one’s result rather than from scratch. Warm-starting is the important detail — each placement evaluation is expensive, so a cold-start search spends most of its budget re-learning things stage one already established.
The division of labor: stage one answers which region of the space, stage two answers where exactly in that region, and neither is asked to do the other’s job.
Results
| Metric | Value |
|---|---|
| Placement proxy cost vs. RePlace baseline | −16% average |
| Designs evaluated | 21 (IBM, NG45) |
| Method | Adaptive strategy selection + Bayesian refinement |
16% average is across all 21 designs, which is the number that matters — a per-design tuner that wins on a favorable subset and loses elsewhere isn’t useful, and an average over a benchmark suite is harder to accidentally overfit to than a headline result on one design.
Honest limitations
- Proxy cost is a proxy. It correlates with post-route quality; it isn’t post-route quality. Confirming the improvement survives a full flow is the obvious next step and I haven’t run it.
- Twenty-one designs is a benchmark suite, not a distribution. IBM and NG45 are standard, which makes results comparable, but they’re academic benchmarks.
What I’d do next
- Take the top configurations through place-and-route and check whether the 16% proxy improvement shows up in routed wirelength and timing.
- Test whether strategy clusters learned on one benchmark family transfer to another — that’s the difference between a tuner and a method.