Reference

Routing

Routing in COmPOSER is split across routing-input generation and detailed routing plus final GDS assembly. Routing and PDN are part of the layout synthesis stage.

Step 1: Generate Routing Inputs

python3 generate_routing_inputs.py --config EXAMPLES/LNA_1/config.json

This converts each primitive GDS to LEF and combines the results into <topcell>_primitives.lef.

Step 2: Run Routing and Final Assembly

./composer.sh EXAMPLES/LNA_1/config.json only routing

The composer routing step selects perform_routing_with_pdn.py when pdn_routing is present. It runs the Hanan signal router, creates hierarchical signal-route GDS, generates the grid and augmented PDN inputs, runs the dedicated PDN router, and creates the final hierarchical GDS. Without pdn_routing, it retains the legacy perform_routing.py path.

User Routing Controls

The main user routing interface is router_constraints.json. It can define:

  • do_not_route nets
  • routing_order
  • per-net preferred layers
  • per-net width overrides

This is also where RF-critical net treatment shows up in the public flow.

Connected Power Routing

The automatically selected combined flow calls perform_power_grid_with_pdn_routing.py, ROUTER/pdn_router/pdn_router, and utils/gen_pdn_rt_gds.py. Existing signal DEF routes become obstacles. Each physical power endpoint receives a local virtual rail target, and the copied router pairs endpoints to nearby targets instead of searching one full-chip power-net bounding box.

utils/gen_rt_hier_gds.py accepts --net_gds_dir to export one signal-route GDS per net.

Read the full PDN routing reference.