I made my own silicon chip: Project Silicon Rider

My journey making my own silicon microchip for free using google skywater pdk

I made my own silicon chip: Project Silicon Rider

My journey making my own silicon microchip for free using google skywater pdk.


20210908 added helpful links

20211008 Added progress photos!

Context: I want to make my own raw silicon micro chip from scratch piggy backing off of google's skywater pdk opensource chip  shuttle program which allow creation of free chips!

How all this works:

the project code name: Silicon Rider

led controller for night rider's grill

this is what the output will look like on the leds
Kaitlyn H is demoing the code for our ASIC on a fpga led driver! 20211008
the code that runs the on the fpga 20211008
this is the logic for the 64bit slow clock 20211008
all the logic for the control of the led array 20211008
a single operation unit 20211008
FPGA physical space usage of code running on the chip 20211008
the space used on the physical FPGA chip 20211008

Install the software

Good starter guide

First Steps with Google SkyWater PDK – Free Open Source Silicon for Everyone – bananatronics.org
cd ~ 
makedir github
cd github
git clone https://github.com/google/skywater-pdk
cd skywater-pdk
git submodule init libraries/*/latest
git submodule update
make -j$(nproc)
make timing -j$(nproc)

this command is taking forever!

Install magic from source:

Must be ran within wsl ubuntu, causes errors when using windows git adds windows line endings to files which cause errors

cd ~/github
git clone https://github.com/RTimothyEdwards/magic
cd magic
sudo apt-get install m4
sudo apt-get install tcsh
sudo apt-get install csh
sudo apt-get install libx11-dev
sudo apt-get install tcl-dev tk-dev
sudo apt-get install libcairo2-dev
sudo apt-get install mesa-common-dev libglu1-mesa-dev


make install

Magic Download Page

magic/INSTALL at master · RTimothyEdwards/magic

Fix issues with ./configure

fix to issue with ` ./configure`

output of ./configure is a key to what commands to run from this page "System Requirements"

Magic Compile and Install Information Page


What sucess should look like

cd ~/github
git clone https://github.com/RTimothyEdwards/open_pdks
cd open_pdks

./configure --enable-sky130-pdk=~/github/skywater-pdk/libraries --with-sky130-local-path=/opt/open_pdks_sky130

./configure --enable-sky130-pdk=/mnt/c/Users/oran/github/skywater-pdk/libraries --with-sky130-local-path=/opt/open_pdks_sky130

## mine  looks like
./configure --enable-sky130-pdk=/mnt/c/Users/oran/github/skywater-pdk/libraries --with-sky130-local-path=~/github/open_pdks_sky130/open_pdks_sky130

./configure --enable-sky130-pdk=source_path [--with-sky130-link-targets=source|none] [--with-ef-style] [--enable-default_off_option] [--disable-default_on_option]

 ./configure --enable-sky130-pdk=$(HOME)/skywater-pdk/libraries --with-sky130-local-path=/opt/open_pdks_sky130

fix for my system skip if not needed:

back to normal install:
sudo make -j$(nproc)
sudo make install

ln -s /opt/sky130/sky130A/lib.tech/magic/* /opt/magic-8.3/lib/magic/sys

EX (my system):
sudo ln -s /mnt/c/Users/oran/github/open_pdks/sky130/sky130A/libs.tech/magic/* /usr/local/lib/magic/sys
not sure what the implications are for this error, ill soon find out!

Road block #1 Install Magic VLSI im running windows using WSL ubuntu


update use this tutorial instead

Running WSL GUI Apps on Windows 10 - Microsoft Tech Community

and follow rdp its the one i had most sucess with

not this one

How to run graphical Linux applications on Windows 10 using the Windows Subsystem for Linux (WSL) - seanthegeek.net
A step-by-step guide on installing Bash on Ubuntu on Windows, with additional steps for running graphical Linux applications.
optional but helpfull
sudo apt-get update
sudo apt install -y ca-certificates findutils command-not-found nano curl openssh-client less screen apt-utils htop whois git python3-pip
note this differse from above command because i dont like vim :), and already have other programs


VcXsrv Windows X Server download | SourceForge.net

within bash wsl

echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
. ~/.bashrc

sudo apt-get install x11-apps -y


Try #1

sudo apt-get install xorg openbox -y
sudo startx

# New window 

that didnt work :(

export DISPLAY=localhost:0.0

Issue is im running wsl 1 with ubuntu

i need wsl 2, which is the full linux kernal :/

powershell admin

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

wsl.exe --list -v
wsl.exe --set-version Ubuntu-18.04 2

Try number 2

using rdp remote desktop

sudo apt install xfce4
sudo apt install xrdp
ip a
mine is ``
service xrdp status
sudo service xrdp start
service xrdp status

Login using your wsl ubuntu username and password

it worked!


Biggest takeaway: dont be me and install within windows ubuntu wsl.



how to use magic

First Steps with Google SkyWater PDK – Free Open Source Silicon for Everyone – bananatronics.org

Good Install guide for win:

Software needed:

1) Magic VLSI thingy
2) Open-pdks3) OpenLane4) Caravel thingy
1)  Magic VLSI thingy
[Compile and Install Instructions for Magic](http://opencircuitdesign.com/magic/index.html)

2) Open-pdks

3) Compiler: OpenLane

4) Caravel not sure which oneCaravel Harness: https://github.com/efabless/caravel
Caravel User Project: https://github.com/efabless/caravel_user_project

Other helpful things:
Good starter video into to project: 4 mins

also this one:   4 mins

Overview & updates for process by the people at efabless:Video: https://youtu.be/jBrBqhVNgDo ( ive watched 80% of this 1 long video)

Highlights: Chip harness


user project area

Starting point for skywater shuttle 2:

OpenLane RTL2GDS Compiler: https://github.com/efabless/openlaneVideo: OpenLane Overview  

Results of the shuttle:
We get some free dev boards + 50 chips!!

Join the skywater's slack for help!


by oran collins
oranbusiness [] g m a i l {}  c o m
If you want to help me out and give some donations here's my monero address: 432ZNGoNLjTXZHz7UCJ8HLQQsRGDHXRRVLJi5yoqu719Mp31x4EQWKaQ9DCQ5p2FvjQ8mJSQHbD9WVmFNhctJsjkLVHpDEZ I use a tracker that is pravicy focused so if you block its cool, im big on blocking stuff on my own machine. im doing it to see if anyone is actualy reading my blog posts...:)