NELIX Silicon Lab Docs Launch Silicon Lab Launch Silicon Lab

Toolchain overview and versions

The tools behind each stage, their versions, and the command each stage runs.

EngineerDeveloper 2 min read · Updated 2026-10-24

On this page VersionsSimulate and Synthesize (every process)Build the chip, by processWhat each stage runsWhat each tool does in the buildReading tool errorsChecking your code strictlyOne article per toolHow versions are kept the same

The lab is built on open-source tools. Each stage runs in its own container on the Nelix server.

Versions#

Simulate and Synthesize are the same on every process. Build the chip uses the flow of the project's process, which is set in config/project.toml ([asic] pdk = ...).

Simulate and Synthesize (every process)#

StageToolVersion
SimulateIcarus Verilog12.0
Simulatecocotb2.1.0
SimulatePython3.12
SynthesizeYosys0.33
Simulate and Synthesize imageVerilator5.020
Simulate (VHDL projects)GHDL4.1.0 (VHDL-2008)

Build the chip, by process#

ProcessFlowYosysVerilator (lint)MagicKLayoutNetgen
SKY130 (sky130A)OpenLane 2.3.100.465.0188.3.4890.29.41.5.278
GF180MCU (gf180mcuD)OpenLane 2.3.100.465.0188.3.4890.29.41.5.278
IHP SG13G2 (ihp-sg13g2)LibreLane 3.0.140.625.0448.3.6230.30.71.5.316
ASAP7, learning only (asap7)OpenROAD flow scripts (ORFS) 26Q3-705-gecb3cfdeb0.68+postnot part of this flownot part of this flow0.30.12not part of this flow

OpenROAD is the version shipped inside each flow. VHDL projects build with OpenLane's VHDL flow (Yosys 0.46 with the GHDL plugin).

  • GF180MCU: OpenLane skips the KLayout design-rule check on this process; Magic's check still runs.
  • ASAP7 is a teaching process: it cannot be manufactured, and it has no sign-off DRC or LVS (only the router's own checks). Its timing numbers are in picoseconds (ps), not nanoseconds.

What each stage runs#

StageCommand the lab runs
Simulatemake WAVES=1 in the project folder
Synthesizeyosys -l reports/synth.log synth.ys
Build the chip, SKY130 or GF180MCUOpenLane on openlane/config.json
Build the chip, IHP SG13G2LibreLane on openlane/config.json
Build the chip, ASAP7The OpenROAD flow scripts for the asap7 platform, with the design name, files and clock read from openlane/config.json (the clock period is still written in ns there)
Simulate, VHDL projectGHDL on the files named in the Makefile (see VHDL projects)

What each tool does in the build#

ToolJob
YosysSynthesis: code to gates
OpenROADFloorplan, placement, clock tree, routing and timing
Magic and KLayoutWriting the layout and checking it against the design rules (on ASAP7, KLayout only writes the layout)
NetgenComparing the layout with the netlist

Reading tool errors#

Tool saysMeaning
Icarus: a syntax error with a file and lineA mistake in the code at that line
Icarus: Unknown module typeA module is missing or its name is misspelled
cocotb: AssertionErrorThe test disagrees with the design. The message holds the expected and seen values
Yosys: a latch is inferredAn always_comb block does not assign an output on every path
OpenLane: setup violationsA path is slower than the clock allows

Checking your code strictly#

Verilator is a strict reader of code, and the build runs its lint as a first step. See Verilator.

One article per tool#

How versions are kept the same#

Each stage runs in a container built from a fixed image, so every run of every user gets the same tool versions. A result does not depend on what is installed on your computer, and a run today uses the same tools as a run last week.

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