Skip to content

OpenROAD

OpenROAD is an open-source tool for digital physical implementation, providing a unified environment to perform layout-related tasks from floorplanning to sign-off. Unlike a flow manager such as OpenROAD-flow-scripts or LibreLane, OpenROAD itself is a tool — an interactive and scriptable engine that executes each design step independently. The full documentation can be found in here.

Overview

OpenROAD integrates multiple algorithms under one tool, allowing designers to perform physical design tasks in a modular way. Each step can be run individually through Tcl commands or combined in larger automated flows.

StepPurposeTypical Script
FloorplanningDefine die/core dimensions, IO pins, and power rings.floorplan.tcl
PlacementPlace and optimize standard cells.placement.tcl
CTS & OptimizationBuild clock tree and fix timing violations.cts.tcl
RoutingRoute all nets across metal layers.route.tcl
Parasitic ExtractionExtract RC parasitics for STA and sign-off.rcx.tcl
GDS ExportWrite final layout to GDSII.write_gds.tcl
VerificationCheck DRC, LVS, and timing closure.signoff.tcl

Example usage

OpenROAD can be launched in batch or interactive mode:

Batch mode

openroad -exit scripts/place_route.tcl

Interactive mode

openroad
% read_lef tech/merged.lef
% read_def results/floorplan.def
% place_design
% gui_show

Integration within larger flows

OpenROAD can be used directly or as part of an automated pipeline:

  • OpenROAD-flow-scripts (ORFS): provides Makefile-based automation around OpenROAD steps.
  • LibreLane: wraps OpenROAD into a reproducible flow for Sky130 and other open PDKs.
  • Custom flows: can source only the required scripts (e.g., placement + routing only).

Available documentation

For each OpenROAD design stage: