Setup

Installation

COmPOSER needs a Python environment, a working Gurobi installation for placement, and a built Hanan router binary for detailed routing.

Recommended Setup

git clone <your-repo-url>
cd COmPOSER
python3 -m venv .venv
source .venv/bin/activate
export PROJECT_HOME="$(pwd)"

Python Packages

The repo's requirements.txt covers the main package families used by the flow:

  • gdspy
  • gurobipy
  • joblib
  • matplotlib
  • networkx
  • numpy
  • pandas
  • plotly
  • scikit_learn
  • scipy
  • Shapely
  • tqdm

The file currently contains duplicate pins for some packages, so treat it as an inventory rather than a guaranteed lockfile.

Gurobi

perform_placement.py imports gurobipy, so placement requires a valid Gurobi installation and license.

Build the Router

cd ROUTER/hanan_router
make -j4
cd ../..

The example configs expect the binary at ROUTER/hanan_router/hanan_router.

Mock PDK and Fixed Assets

The repo already contains a mock 65 nm PDK layer file and several fixed primitive GDS files. They are enough to exercise the public flow, but not meant to replace technology-correct production collateral.