packages/chip/research/alpha_chip_macro_placement/00_index.md
Goal: get E1 to the point where macro placement candidates can be generated by Google Circuit Training / AlphaChip, imported into the existing OpenLane/OpenROAD flow, and judged by physical-design evidence rather than proxy reward alone.
external/circuit_training: Google Circuit Training checkout, pinned to
r0.0.4 for the stable Docker path.external/MacroPlacement: TILOS MacroPlacement checkout for public datasets,
format translators, and evaluator context.scripts/alphachip/: local wrappers for Docker build, smoke tests, toy
training, setup checks, and Nebius H200 notes./tmp/e1-alphachip/: generated local logs and checkpoints when repo-local
build/ is not writable. The current checkout has a root-owned build/
directory, so wrappers fall back to this path.circuit_training:e1-r0.0.4 builds and runs.plc_wrapper_main and DREAMPlace were inaccessible
during setup. The image uses the Farama A2Perf plc_wrapper_main binary and
a DREAMPlace import stub, which is valid only with
--std_cell_placer_mode=fd./tmp/e1-alphachip/toy.e1_pd_smoke_top and produced final DEF,
GDS, ODB, and metrics under
pd/openlane/runs/RUN_2026-05-19_03-33-45/final.FP_DEF_TEMPLATE.scripts/alphachip/check_setup.sh
scripts/alphachip/build_container.sh
scripts/alphachip/run_toy_training.sh
The current local image defaults to force-directed standard-cell placement:
STD_CELL_PLACER_MODE=fd scripts/alphachip/run_toy_training.sh
For local GPU smoke, build the GPU image and run:
ALPHACHIP_GPU_IMAGE=1 scripts/alphachip/build_container.sh
USE_GPU=True scripts/alphachip/run_toy_training.sh
AlphaChip optimizes proxy wirelength/congestion/density. It is not signoff.
The source of truth remains the E1 physical-design flow under pd/, especially
OpenLane/OpenROAD runs and scripts/check_pd_signoff.py.