Published by NST on the June 8, 2026, 6:40 p.m. view all posts
Open source ASICS
Quick starter guide for those who are interested in open source ASIC development. Tiny Tapeout is an open source ASIC (chip) tool chain for students and hobbyists. Commercial EDA tools and licenses are costly so it’s great that chip design is becoming more affordable and accessible.
LibreLane + Nix + SPM Flow (Step-by-Step)
Step 1 - Install curl
sudo apt-get install -y curl
Step 2 - Install Nix
Nix is basically a way to make software environments fully controlled, repeatable, and isolated. In this case (LibreLane + ASIC tools), it ensures the entire toolchain behaves the same every time we run it.
curl --proto '=https' --tlsv1.2 -fsSL https://artifacts.nixos.org/nix-installer | sh -s -- install --no-confirm --extra-conf "
extra-substituters = https://nix-cache.fossi-foundation.org
extra-trusted-public-keys = nix-cache.fossi-foundation.org:3+K59iFwXqKsL7BNu6Guy0v+uTlwsxYQxjspXzqLYQs=
extra-experimental-features = nix-command flakes
"
After installation:
Restart your terminal
Enter your password if prompted
First run may take several minutes
Step 3 - Clone LibreLane
git clone https://github.com/librelane/librelane
cd librelane
If already cloned:
cd librelane
Step 4 - Enter Nix shell
nix-shell
First time startup may take several minutes due to package downloads.
Step 5 - Check example designs
ls librelane/examples/
You should see:
spm
hold_eco_demo
spm-user_project_wrapper
For beginners, use:
spm
What does a SPM do?
A Serial-Parallel Multiplier multiplies two numbers together:
x[31:0] - the full 32-bit parallel input (loaded all at once)
a[31:0] - fed in 1 bit per clock cycle, serially (LSB first)
y_value[63:0] - the 64-bit product output (32×32 = up to 64 bits)
It takes 32 clock cycles to produce a result, one cycle per bit of a. That's the trade-off vs a fully parallel multiplier: much less silicon area, but slower.
Step 6 - Run the SPM flow
From inside the nix-shell:
librelane librelane/examples/spm/config.yaml
(Some versions may use config.json instead.)
Step 7 - What the flow does
Your run executes the full ASIC pipeline:
Verilator linting
Yosys synthesis
Floorplanning
Power grid generation
Placement
Clock tree synthesis
Routing
Static timing analysis
DRC checks (Magic and KLayout)
LVS checks (Netgen)
Final GDS generation
Your log confirms the flow completed successfully.
Step 8 - Locate the final layout
Use the final GDS file:
runs/RUN_2026-06-08_19-04-52/final/gds/spm.gds
Step 9 - Open the layout
In KLayout:
klayout runs/RUN_2026-06-08_19-04-52/final/gds/spm.gds
If KLayout is not available in your environment:
nix-shell -p klayout
Step 10 - Understanding additional outputs
You may also see other GDS files:
Magic streamout:
runs/.../57-magic-streamout/spm.gds
KLayout streamout:
runs/.../58-klayout-streamout/spm.klayout.gds
Final signoff layout (use this one):
runs/.../final/gds/spm.gds
Only the final directory is the authoritative output.
I reccomend you take a good long look at the log for detailed run infromation:
vim runs/RUN_2026-06-08_19-04-52/flow.log
Summary
You successfully completed a full ASIC digital backend flow using:
Nix for environment management
LibreLane for automation
Sky130 PDK for standard cells
OpenROAD backend tools
The result is a complete, signoff-clean GDS layout ready for inspection in KLayout.
Comments...
No comments here yet :(