Skip to content

Release v7.0.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 04:08
· 26 commits to main since this release
830f54a

rtl_buddy v7

v7 makes rb pnr a flow you can close a block with: run it in stages, resume it, judge it per corner and gate it on signoff checks. It also brings synthesis fixes that matter for P&R input. This is a major release. Some P&R results and outputs change, and some configs that v6 accepted are now errors. Read Migrating from v6 to v7 before upgrading.

Highlights

Staged runs and resume

  • stages: true runs each P&R stage in its own OpenROAD session from the previous stage's checkpoint. With --dispatch slurm, the stages run as chained Slurm jobs.
  • --stop-after <stage> ends a run early.
  • --resume restarts from a kept checkpoint, and refuses when the scripts or inputs have changed.
  • A staged run gives the same routed result as a one-session run.
  • mode: probe runs a fast estimate that stops after global routing.

Multi-corner signoff

  • On a platform with corners:, each corner is timed in its own SDC mode, with its own SPEF read and its own routed SDC.
  • Each stage ends with a per-corner setup and hold timing event.
  • A lib-paths entry can map each corner to its own Liberty file, so SRAM and other macros are timed at each corner's characterisation instead of one corner everywhere. This works in rb pnr and rb power.
  • A signoff: block on the platform or run names the corners for setup and for hold, and the gates that fail the run: fail-on: [timing, drc, electrical]. Post-route repair rounds judge timing at those corners. A gate that cannot be measured fails.

Closure controls

  • Global-route repair and post-route repair rounds. The rounds keep the best result.
  • Electrical violators (max slew, capacitance and fanout) drive the post-route repair rounds.
  • Post-route repair_design runs with wire-RC estimates.
  • Macro pins over their Liberty limits are buffered.
  • Run-level overrides cover routing layers, CTS, repair, global-route options (global-route:, including grid-origin) and the tap-cell script.
  • keep-sizing-vt keeps the threshold-voltage flavour during sizing. cts-dont-use-cells gives CTS its own dont-use list.
  • Run-level Tcl hooks.
  • placement.timing-driven turns on timing-driven global placement.
  • Floorplans accept planner files, rotated macros and blockages that apply during global placement only.

Outputs and hardened blocks

  • <top>.routed.pwr.v is the powered post-route netlist. <top>.routed.v is the logical netlist, with no supply ports.
  • A hardened block's abstract Liberty is the same whether it was built staged or in one session.
  • abstract: {gds: false} hardens a block without GDS.
  • Extra input files listed under inputs: are fingerprinted, so a change to them refuses resume.

Stricter results

  • Unknown keys in pnr.yaml, P&R platforms, PDKs, and dispatch and reservation blocks are config errors. Each error names the nearest valid key.
  • A flow that exits 0 before its end marker is a FAIL. So is a routed DEF that moved a located macro or an exact pin.
  • Supply pins of cells added after the power grid are connected.

Synthesis

  • With openroad.repair: true, an unplaced netlist gets repair_design -pre_placement, which buffers high-fanout nets.
  • Options for an ICG maximum group size, lenient handling of SDC procs, and a macro LEF list.

CLI

  • Machine-mode stderr summaries list only the rows that need attention. The full results stay on stdout.

Upgrading

  • Breaking changes and what to do about each are in the migration guide. These are the ones most likely to need action:
    • unknown-key errors;
    • OpenROAD now runs in artefacts/<run>/, so a relative path in a hook resolves from there;
    • multi-corner timing changes;
    • routed netlists no longer declare supply ports.
  • Per-corner SDC modes need OpenROAD 26Q4. OpenROAD 26Q2 keeps one shared mode and warns pnr.corner_modes_unsupported.
  • A --resume of a multi-corner run started before v7 is refused. Rerun it from the start.
  • The P&R docs are rewritten. The bundled rtl-buddy-pnr agent skill covers running, reading results and debugging P&R.

The pull requests merged through the v7 branch are listed in #930.

What's Changed

Full Changelog: v6.83.0...v7.0.0