(no commit message)
[libreriscv.git] / index.mdwn
1 <div class="jumbotron">
2 <h1 class="display-5">Welcome to Libre-SOC</h1>
3 <blockquote>
4 <p>We're building a chip. A fast chip. A safe chip. A trusted chip.
5 </p>
6
7 <p>A chip with lots of peripherals. And it's a VPU. And it's a 3D GPU...
8 </p>
9
10 <p>Oh and here, have the
11 <a href="http://git.libre-soc.org">Libre-SOC source code</a>...
12 </p>
13 </blockquote>
14 <hr class="my-4">
15
16 <h2 class="display-5">Why should I care?</h2>
17
18 With Libre-SOC, you can take complex algorithms usually intended for
19 power hungry servers with big fat GPUs, and run them on tiny devices
20 like smartwatches, cellphones, and pocket drones without changing your
21 code at all.
22
23 <hr class="my-4">
24
25 <h2 class="display-5">Hasn't Somebody Already Done This?</h2>
26
27 To the best of our knowledge, no. The closest systems would be ARM Cortex
28 devices which currently offer mediocre GPU and OpenCL support. Often
29 times, it is quite difficult for customers to get their hands on the
30 drivers and install them due to their locked down nature. Libre-SOC is
31 providing our own Free/Libre drivers. Easy as 1, 2, 3!
32
33 <hr class="my-4">
34
35 <h2 class="display-5">Does Open Hardware Really Work?</h2>
36 <p>A few names come to mind:</p>
37
38 <ul>
39 <li><a href="https://www.raspberrypi.org">Raspberry Pi</a></li>
40 <li><a href="https://www.arduino.cc">Arduino</a></li>
41 <li><a href="https://www.raptorcs.com">Raptor Computing Systems</a></li>
42 <li><a href="https://www.bitcraze.io">CrazyFlie</a></li>
43 <li><a href="https://www.scopefun.com">ScopeFun</a></li>
44 </ul>
45
46 <p class="lead">
47 <a class="btn btn-primary btn-lg" href="https://libre-soc.org/why_a_libresoc/" role="button">Learn more</a>
48
49 </div>
50
51 # Our Team
52
53 We are proud of our talented and diverse [team](about_us).
54
55 # Our sponsors and partners
56
57 * [NLnet](https://nlnet.nl) who have very kindly sponsored us with
58 over EUR 350,000 in various separate grants.
59 * [NGI POINTER](https://www.ngi.eu/ngi-projects/ngi-pointer/) who have
60 sponsored us with a EUR 200,000 Horizon 2020 Grant.
61 * [Mythic Beasts](http://mythic-beasts.com) who don't overcommit on
62 their VPS allocations (no memory ballooning), and put servers on
63 the fastest backbone Internet points.
64 * [Purism](http://puri.sm) donates to us through [NLNet](nlnet)
65 charitable gifting
66 * [Raptor CS](http://raptorcs.com) has given us access to a powerful
67 18-core 128 GB RAM TALOS II workstation, online.
68 * [Raptor Engineering](https://raptorengineering.com) is providing
69 additional assistance including access to an [[shakti/m_class/LPC]]
70 interface (more to come)
71 * [MarketNext](http://marketnext.org) is helping us connect to developer
72 resources in Emerging markets, for completion of NLNet-funded tasks.
73 See the upcoming [Hackathon](https://www.youtube.com/embed/Px6eakWja3Q"),
74 deadline May 15th
75 * The [[PowerPC Notebook]] Project
76 * [RED Semiconductor](http://redsemiconductor.com) is the commercial realisation of Libre-SOC technology that respects and actively supports Libre principles in its business objectives.
77 * [[fed4fire]] for supercomputer access for verilator simulations,
78 with thanks to Ghent University / IMEC.
79
80 # How Can I Help?
81
82 If you would like to fund us, see [[funding]]. We currently have some
83 funding and always appreciate more! If you are a Corporation or an
84 individual you can donate tax-free to NLNet, and they can in turn gift
85 our developers. Contact lkcl@lkcl.net for more information.
86
87 # How Can I Help as a Developer? <a name="help_as_developer"></a>
88
89 If you want to write code with us (and receive donations from NLNet
90 for doing so), keep reading. If you want to *learn*
91 so that you can write code with us, see "How can I learn" section,
92 below. If there is anything else,
93 just get in touch on the list, there is plenty to do.
94
95 1. First, join the
96 [mailing list](http://lists.libre-soc.org/mailman/listinfo/libre-soc-dev),
97 introduce yourself (people will happily say "hello" back) and
98 the Libera IRC channel
99 (#libre-soc at irc.libera.chat port 6697, see
100 https://libera.chat/guides/connect), [logs here](https://libre-soc.org/irclog/latest.log.html).
101 Read through
102 [recent posts](http://lists.libre-soc.org/pipermail/libre-soc-dev/)
103 and the [[charter]], ask questions if you have any and let everyone know,
104 on the list that you're happy with it and agree to it.
105 2. The next thing you should do is read through the
106 [bugs list](http://bugs.libre-soc.org) and
107 see if there are any bugs that pique your interest.
108 A fascinating way to do that is to view the
109 [dependency graph](https://bugs.libre-soc.org/showdependencygraph.cgi?id=1&display=web&rankdir=LR)
110 3. After that, go ahead and take a look at the
111 [git repositories](https://git.libre-soc.org).
112 4. If you plan to do HDL work, you should familiarize yourself with our
113 [[HDL_workflow]]. If you would like to help with the ASIC layout,
114 see [[HDL_workflow/coriolis2]]
115 5. We do have funding available (see [[nlnet]]) upon completion of issues -
116 we are also working on procuring more funding which gets the project to
117 nanometre scale tapeout.
118 6. After all this, if you feel that Libre-SOC is a something
119 that you would like to contribute to, add yourself to the
120 [current_members](about_us) page, fill in some information about yourself,
121 and join the mailing list and say hello.
122
123 Also note that you can edit this wiki. You can experiment in the [[Sandbox]].
124
125 ## Quick peek at the code
126
127 Here is an example process of how to play with the soc code. The last
128 step you will have needed to install yosys:
129
130 pip3 install virtualenv requests
131 mkdir ~/.virtualenvs && cd ~/.virtualenvs
132 python3 -m venv libresoc
133 source ~/.virtualenvs/libresoc/bin/activate
134
135 cd ~; mkdir libresoc; cd libresoc
136 git clone https://git.libre-soc.org/git/nmigen.git
137 git clone https://git.libre-soc.org/git/nmigen-soc.git
138 git clone https://git.libre-soc.org/git/nmutil.git
139 git clone https://git.libre-soc.org/git/openpower-isa.git
140 git clone https://git.libre-soc.org/git/c4m-jtag.git
141 git clone https://git.libre-soc.org/git/ieee754fpu.git
142 git clone https://git.libre-soc.org/git/soc.git
143
144 cd nmigen; python setup.py develop; cd ..
145 cd nmigen-soc; python setup.py develop; cd ..
146 cd c4m-jtag; python setup.py develop; cd ..
147 cd nmutil; make develop; cd ..
148 cd openpower-isa; make develop; cd ..
149 cd ieee754fpu; make develop; cd ..
150 cd soc; make gitupdate; make develop
151
152 python3 src/soc/decoder/power_decoder.py
153 yosys -p "read_ilang decoder.il; show dec31"
154
155 The full install process may be automated using scripts found
156 here: <https://git.libre-soc.org/?p=dev-env-setup.git;a=summary>
157 which you can clone with:
158
159 git clone https://git.libre-soc.org/git/dev-env-setup.git
160
161 A convenient page which gives step-by-step instructions is:
162 [[HDL_workflow/devscripts]]
163
164 ## How can I learn?
165
166 The whole purpose of this project is to be a learning environment as well
167 as an actual business. If you want to learn how to do ASIC design, with
168 a view to contributing or starting your own ASIC business, start here:
169 [[3d_gpu/tutorial]]. Yes, really: do not let anyone tell you that you
170 can't learn this stuff too.
171
172 Along the way, if you find any [[resources]] or links that you found
173 particularly helpful, please add them to that page so that other people
174 can also benefit (and you have a place to remember them, too).
175
176 ## Needed Skills
177
178 Most labor is currently being applied to developing the GPU portion of
179 the Libre-SOC.
180
181 Our highest priority short-term and medium-term: we need HDL engineers.
182 Particularly those familiar
183 with nMigen or just python. Most of the techniques being used require
184 software engineering skills (OO design, polymorphism) than they do more
185 traditional HDL programming skills. Basically if you have experience in 2
186 of the following you'll do fine: python, nmigen, verilog/VHDL/gate-level
187 design. See [[HDL_workflow]]
188
189 We also need to find a c++ engineer with compiler experience to work on
190 a MESA 3D driver. This will begin life similar to SwiftShader however
191 retaining the vectorisation and predication intrinsics then adding
192 hardware accelerated opcodes (all of which SwiftShader lacks)
193
194 Also, individuals with experience in formal mathematical verification
195 are quite welcome.
196
197 # Documentation
198
199 - [Source Code](/docs/)
200 - [Architecture](3d_gpu/architecture)