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.jsonThis 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 routingThe 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_routenetsrouting_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.
