Public

LibreLane and Tooling

Roles and boundaries of LibreLane, OpenROAD, Yosys, KLayout, Magic, Netgen, Nix, Ciel, and the PDK.

Scope

This page explains the main tools in the wafer.space digital flow. Version pins belong on Version Management. Symptom-and-remedy procedures belong under Troubleshooting.

Tool roles

  • LibreLane: drives the digital flow and its ordered steps. Project Template 1.4.0 moved to LibreLane 3.0 on 2026-03-26. Evidence (Discord)
  • Yosys: synthesizes RTL and performs synthesis checks. Check details appear in yosys-synthesis.log near Executing CHECK pass, and may appear in reports/pre_synth_chk.rpt. Evidence (Discord)
  • OpenROAD: performs physical-design work such as clock-tree synthesis, routing, STA, GUI inspection, and ECO operations. The recorded hold-failure procedure used OpenROAD post-PNR reports and LibreLane ECO insertion. Evidence (Discord)
  • KLayout: runs the principal rule deck, displays marker databases, and can run a reduced cell through the same deck. An exact single-cell command was recorded on 2025-11-27. Evidence (Discord)
  • Magic and Netgen: Magic imports or streams layout and extracts LVS data; Netgen reports the comparison. In one investigation, lvs.netgen.rpt contained more useful detail than the final summary. Evidence (Discord)
  • open_pdks and Ciel: Project Template 1.5.0 used Ciel to manage the open_pdks build and exposed SCL, pad, and SRAM choices. Evidence (Discord)
  • Nix: pins the flow environment. A local-versus-CI investigation compared flake.nix and flake.lock, tested the vanilla template, and used nix flake update only when changing the pins intentionally. Evidence (Discord)

Current dated baseline

  • Confirmed fact — 2026-05-27: wafer.space PDK changes had been upstreamed to open_pdks; Ciel adoption and experimental community IP support were being added to the project template. Evidence (Discord)
  • Confirmed fact — 2026-06-03: Template 1.5.0 added a parallel DRC runner. Its rule was threads * workers = hardware threads; users could reduce workers when memory use was too high. Evidence (Discord)
  • Decision — inferred record rule: Save the template tag, LibreLane commit, PDK commit, flake.lock, tool versions, precheck image or tag, and GDS hash as one build record. This rule is inferred from the PDK transition and a local-versus-CI mismatch; it is not a quoted wafer.space policy. PDK evidence (Discord) Nix evidence (Discord)

Boundaries

  • Obsolete guidance: The old wafer.space PDK fork was required by the October 2025 precheck/template path. It is historical for new projects after the 2026 open_pdks transition, but may still be needed to reproduce an old run. Old fork evidence (Discord) Replacement evidence (Discord)
  • Open question: Exact current tool and image versions are not established by the archive. Use the pins in the chosen current template, then record them with the result. This caution follows from a case where local KLayout XOR failed while GitHub CI passed. Evidence (Discord)

Sources

  • 1486728700518203616 — 2026-03-26T14:09:04.287+00:00 — Leo Moser (mole99) (@mole99) — LibreLane 3.0 transition. Evidence (Discord)
  • 1440439686526144552 — 2025-11-18T20:33:03.343+00:00 — aedancullen — Yosys log and report locations. Evidence (Discord)
  • 1445872535160885409 — 2025-12-03T20:21:15.395+00:00 — Lofty (@ravenslofty) — OpenROAD STA reports and ECO. Evidence (Discord)
  • 1443614548182568971 — 2025-11-27T14:48:49.348+00:00 — tnt (@246tnt) — reduced KLayout cell run. Evidence (Discord)
  • 1446665494374646050 — 2025-12-06T00:52:11.604+00:00 — bailey (@bailey8889) — detailed Netgen report. Evidence (Discord)
  • 1509176448223674489 — 2026-05-27T12:48:24.399+00:00 — Leo Moser (mole99) (@mole99) — upstream open_pdks transition. Evidence (Discord)
  • 1511722026648338514 — 2026-06-03T13:23:37.59+00:00 — Leo Moser (mole99) (@mole99) — Template 1.5.0, Ciel, libraries, and parallel DRC. Evidence (Discord)
  • 1512740258649870336 — 2026-06-06T08:49:43.017+00:00 — Leo Moser (mole99) (@mole99); 1512912751641628845 — 2026-06-06T20:15:08.551+00:00 — RebelMike (@rebelmike) — Nix lock and local-versus-CI diagnosis. Evidence 1 (Discord) Evidence 2 (Discord)
  • 1433880759130783755 — 2025-10-31T18:10:13.193+00:00 — Leo Moser (mole99) (@mole99) — old wafer.space PDK fork requirement. Evidence (Discord)