A draft version of the specification is available at

Codebase Structure

The SOC is partitioned into four repositories. The subrepositories are intended as general purpose standalone projects useful outside of LibreSOC. For example, the IEE754 FPU repository is a general purpose IEEE754 toolkit for the construction of FSMs and arbitrary length pipelines.

Git Repo Online docs Description Pypi
FPU -- Equivalent to hardfloat-3 libresoc-ieee754fpu
nmutil -- Equivalent to Chisel3.util libresoc-nmutil
OpenPOWER ISA OpenPOWER ISA Simulator, ISA spec compiler, co-simulation infrastructure libresoc-openpower-isa

Also see SOC Architecture

Installing the Codebase

Installation is much easier when using the install scripts. A separate script also helps install dependencies and a third can be used to set up a debootstrap chroot. The chroot is useful to ensure stability and repeatable builds: no errors or issues introduced by libraries being wrong versions. Also relevant is the gdb gcc build.

pip3 install virtualenv requests
mkdir ~/.virtualenvs && cd ~/.virtualenvs
python3 -m venv libresoc
source ~/.virtualenvs/libresoc/bin/activate

cd ~; mkdir libresoc; cd libresoc
git clone
git clone
git clone
git clone
git clone

cd nmutil; make develop; cd ..
cd openpower-isa; make develop; cd ..
cd c4m-jtag; make develop; cd ..
cd ieee754fpu; make develop; cd ..
cd soc; make gitupdate; make develop; cd ..

python3 soc/src/soc/decoder/
yosys -p "read_ilang; show dec31" 

Gtkwave Tutorial

gtkwave tutorial

Formal proof notes

notes on formal proofs

Learning nmigen

?learning nmigen