Documentation

A draft version of the specification is available at https://ftp.libre-soc.org/power-spec-draft.pdf

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
SOC Libre-SOC Main OpenPOWER Hybrid CPU-GPU TBD
FPU ieee754fpu Equivalent to hardfloat-3 libresoc-ieee754fpu
nmutil 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 https://git.libre-soc.org/git/nmutil.git
git clone https://git.libre-soc.org/git/openpower-isa.git
git clone https://git.libre-soc.org/git/c4m-jtag.git
git clone https://git.libre-soc.org/git/ieee754fpu.git
git clone https://git.libre-soc.org/git/soc.git

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/power_decoder.py
yosys -p "read_ilang decoder.il; show dec31" 

Gtkwave Tutorial

gtkwave tutorial

Formal proof notes

notes on formal proofs

Learning nmigen

?learning nmigen