Flow

Full Flow

The paper describes COmPOSER conceptually as hybrid analytical sizing, primitive block layout generation, layout synthesis, and post-layout verification. The public repo exposes the synthesis side of that architecture through composer.sh and the stage scripts.

Main Driver

./composer.sh
./composer.sh <config.json>
./composer.sh <config.json> placement
./composer.sh <config.json> only routing

Recognized Steps

  • sizing
  • parse
  • placement
  • routing_inputs
  • routing

What Each Step Does

StepAction
sizingRuns stage 1 sizing and maps the selected values into the sized netlist
parseParses the sized netlist, generates primitive layouts, and exports stage 2 JSON
placementRuns the Gurobi-based placer and creates placement JSON and placement GDS
routing_inputsConverts primitive GDS files into LEF and combines them for routing
routingRuns detailed routing, routed GDS assembly, and PDN generation

Paper Mapping

  • Paper Stage 1 maps mostly to sizing
  • Paper Stage 2 maps mostly to parse
  • Paper Stage 3 maps mostly to placement, routing_inputs, and routing
  • Paper Stage 4 is the verification loop discussed in the paper, beyond the open synthesis scripts bundled here