NELIX Silicon Lab Docs Launch Silicon Lab Launch Silicon Lab

Build provenance, CI runs and licence notices

The full input fingerprint of a chip build, the rebuild-from-bundle script, LICENSES/ in every download, saved comparisons and the admin CI command with its exit codes.

EngineerDeveloper 4 min read · Updated 2026-10-30

On this page The full input fingerprint of a buildWhat the reproducibility bundle addsLICENSES/ in downloadsOpen-source work the lab's checks are built onSaved comparisonsRunning a commit like a CI job (admins)

Everything on this page is on for every signed-in account.

The full input fingerprint of a build#

Just before the flow starts, the lab writes down everything the build depends on:

PartWhat is recorded
Design filesevery file of the project that goes into the build (all RTL files, memory files, macros, constraints/*.sdc, config/project.toml, openlane/config.json, Makefile, synth.ys), each with its SHA-256. A copy of each is kept. Tests are recorded apart; documentation is listed but not part of the fingerprint
Command linethe exact flow command, with limits and extra settings (for example your own SDC file); the job id, folder and user numbers are replaced by placeholders so two builds can be compared
Tool imagethe image's ID and repository digests, read before the run (and again after: they must match)
Process kitthe kit revision and the SHA-256 of its SOURCES and nodeinfo.json files
Lab build softwarea SHA-256 over the orchestrator's code, its flow scripts and the process profile

One SHA-256 over these parts is the build's input fingerprint. Two builds with the same input fingerprint got byte-for-byte the same inputs. After the run the lab adds what was measured (timing, area, DRC/LVS/antenna counts), the GDS's SHA-256, and whether any input changed while the build ran.

Why GDS files differ between identical builds. A GDSII file stores the date and time it was written (in its library and cell header records), so two otherwise identical builds give different raw bytes. The lab therefore also records the GDS's SHA-256 with those date stamps set to zero: if that value is the same, the layouts are the same shape for shape.

What the reproducibility bundle adds#

FolderContents
LICENSES/the process kit's licence text, a NOTICE naming whose cell layouts are inside and the kit versions
build-inputs/every input file exactly as the flow got it; CHECK.json shows each file's SHA-256 equals the fingerprint
timing-models/the block's Liberty timing model (.lib) per corner, when the flow wrote one (SKY130, GF180, IHP)
checks/gds-reread.jsonKLayout 0.29.4 re-read the exported GDS: no error, one top cell, its size
reproduce/the fingerprint, the measured metrics and rebuild.sh

Rebuild from the bundle alone (Docker and the same process kit needed):

sh reproduce/rebuild.sh --check-only # are these exactly the inputs the lab built? sh reproduce/rebuild.sh # replay the lab's command line and compare every number

Exit 0 means same input fingerprint and every recorded metric equal. The script stops (exit 3) when the tool image or kit on your computer is not the recorded one.

LICENSES/ in downloads#

The reproducibility bundle, the tapeout package and the GDS download carry LICENSES/, because a layout contains the kit's own cell layouts. SKY130, GF180 and IHP downloads hold the Apache-2.0 text with the SkyWater, GlobalFoundries or IHP attribution; ASAP7 downloads hold the BSD-3-Clause notices of Arizona State University. With the preview on, Download GDS gives a zip (the GDS, SHA256SUMS, LICENSES/); add ?raw=1 to the link for the bare file.

Open-source work the lab's checks are built on#

The lab's tools are open source and their licences are listed with every download. Two origins deserve naming on this page because the lab adopted their methods, not only ran their programs:

  • LiveHD (University of California, Santa Cruz, MASC group; https://github.com/masc-ucsc/livehd; BSD 3-Clause, © 2018–2020 University of California). From 31 October 2026 the lab's RTL vs synthesized netlist check follows LiveHD's logic-equivalence recipe: the power-on rule for Yosys' induction engines (an undefined gold power-on bit is a don't-care the gate may refine; a defined one must match), the clock-domain soundness gate, the engine race (register correspondence, induction, bounded check, sample) and the verdict words PROVEN-full, PROVEN-bounded(n), TESTED-sampled(N), TIMEOUT and REFUTED with a reason. Files derived from LiveHD's inou/yosys/power_on.py and clock_domains.py carry its copyright notice in their header. LiveHD's authors do not endorse this lab.
  • OpenLane (Efabless / The OpenROAD Project, Apache-2.0): the lab's published benchmark compares its builds with OpenLane's own 2023 regression results for the same designs; the comparison report names the file and commit each reference number comes from.

Saved comparisons#

On Compare builds, the conditions table also shows the input fingerprint parts, and warns when the design files, constraint files, settings, command line, tool image, kit or lab software differ. Save comparison keeps a record of the chosen builds (both full fingerprints, the conditions, every warning, the measured numbers) with one SHA-256 over all of it. It reopens exactly as saved at Saved comparisons and can be downloaded as JSON; the page says whether the stored hash still matches.

Running a commit like a CI job (admins)#

sudo nelix-ci run --user <id> --repo <git URL or project> --commit <sha> --pdk sky130A

The command clones the repository at exactly that commit, lints the RTL (Verilator 5.044 -Wall), puts the files into a project of the account, runs the lab's own Simulate and chip build in the normal queue, and writes a manifest (commit, every file's SHA-256, job ids, results, the build's input fingerprint, a SHA-256 of the manifest) under /var/lib/nelix-complete/ci/runs/. For now only the lab's test account can be used.

Exit codeMeaning
0clean: lint, simulation, build PASSED, timing met, DRC/LVS/antenna clean
2 / 3 / 4 / 5usage / source (repository or commit not found) / the lab refused / infrastructure (timeout, no result)
10lint warnings or errors
20simulation failed
30setup or hold slack below 0
40DRC errors
50LVS mismatch
60antenna violations
70other build failure

Starting this from GitHub Actions needs a token that a CI job can hold. That changes the gateway's sign-in, so it is a written proposal waiting for approval, not a feature yet.

Related

  • Reference checks and release gateThe known-bad designs the lab rebuilds to prove its tools still catch faults, what each must show per process, and the automated tests behind the roles, grading, learning-mode and isolation promises.
  • Final artefacts and handoffWhat a finished build gives you, and the gap between a checked layout and a design ready to manufacture.

Something unclear or missing? Send feedbackSign in and use Feedback to tell us.