bug 1244: update pospopcnt.s assembler comments
[libreriscv.git] / docs.mdwn
1 # Documentation
2
3 A draft version of the specification is available at
4 <https://ftp.libre-soc.org/power-spec-draft.pdf>
5
6 # Codebase Structure
7
8 The SOC is partitioned into four repositories. The subrepositories are
9 intended as general purpose standalone projects useful outside of LibreSOC. For example,
10 the IEE754 FPU repository is a general purpose IEEE754 toolkit for the
11 construction of FSMs and arbitrary length pipelines.
12
13 | Git Repo | Online docs | Description | Pypi |
14 |----------|---------------|---------------|--------
15 | [SOC](https://git.libre-soc.org/?p=soc.git;a=tree) | [Libre-SOC](https://docs.libre-soc.org/soc/) | Main OpenPOWER Hybrid CPU-GPU | TBD |
16 | [FPU](https://git.libre-soc.org/?p=ieee754fpu.git;a=tree) | [ieee754fpu](https://docs.libre-soc.org/ieee754fpu/) | Equivalent to hardfloat-3 | [libresoc-ieee754fpu](https://pypi.org/project/libresoc-ieee754fpu) |
17 | [nmutil](https://git.libre-soc.org/?p=nmutil.git;a=tree) | [nmutil](https://docs.libre-soc.org/nmutil/) | Equivalent to Chisel3.util | [libresoc-nmutil](https://pypi.org/project/libresoc-nmutil) |
18 | [OpenPOWER ISA](https://git.libre-soc.org/?p=nmutil.git;a=tree) | [OpenPOWER ISA](https://docs.libre-soc.org/openpower-isa/) | Simulator, ISA spec compiler, co-simulation infrastructure | [libresoc-openpower-isa](https://pypi.org/project/libresoc-openpower-isa/) |
19
20 # Installing the Codebase
21
22 Installation is much easier when using the
23 [install scripts](https://git.libre-soc.org/?p=dev-env-setup.git;a=blob;f=hdl-dev-repos;hb=HEAD).
24 A separate script also helps install
25 [dependencies](https://git.libre-soc.org/?p=dev-env-setup.git;a=blob;f=install-hdl-apt-reqs;hb=HEAD)
26 and a third can be used to set up a
27 [debootstrap chroot](
28 https://git.libre-soc.org/?p=dev-env-setup.git;a=blob;f=mk-deb-chroot;hb=HEAD).
29 The chroot is useful to ensure stability and repeatable builds: no
30 errors or issues introduced by libraries being wrong versions.
31 Also relevant is the [gdb gcc build](https://git.libre-soc.org/?p=dev-env-setup.git;a=blob;f=ppc64-gdb-gcc;hb=HEAD).
32
33 For a simple set of commands to follow, see [[HDL_workflow/devscripts]]. If
34 you prefer to do a manual install and explicitly install dependencies
35 yourself, in order to verify them, see [[HDL_workflow]]
36
37 # Tutorials and documentation
38
39 * [[SOC Architecture|3d_gpu/architecture]]
40 * Gtkwave Tutorial [[docs/gtkwave_tutorial]]
41 * Formal proof notes [[docs/notes_on_formal_proofs]]
42 * Learning nmigen [[docs/learning_nmigen]]
43 * Test API [[docs/testapi]]
44 * Pinmux and JTAG Boundary Scan [[docs/pinmux]]
45 * pypowersim python-based command-line simulator [[docs/pypowersim]]
46 * First steps [[docs/firststeps]]
47 * Adding an instruction [[docs/adding_instr]] - see also below
48
49 # SVP64
50
51 Currently in Draft form, [[openpower/sv/svp64]] is the basis of the
52 Supercomputing Cray-style Vectorisation of the Power ISA.
53
54 # Checklist for adding an instruction
55
56 TODO. use the commit diffs for these instructions as a guide
57
58 * fmvis <https://bugs.libre-soc.org/show_bug.cgi?id=887>
59 * avgadd etc. <https://bugs.libre-soc.org/show_bug.cgi?id=863>
60 * int min/max <https://bugs.libre-soc.org/show_bug.cgi?id=234#c1>
61 * ternlogi <https://bugs.libre-soc.org/show_bug.cgi?id=745> which included
62 adding a hardware implementation as well