fosdem2024_bigint: remove test.dia
[libreriscv.git] / nlnet_2019_coriolis2.mdwn
1 # NLnet.net LIP6.fr Coriolis2 proposal
2
3 * [[questions]]
4 * approved 20dec2019
5 * MOU done
6 * 2019-10-029
7 * NLNet Project Page <https://nlnet.nl/project/Coriolis2/>
8 * Top-level bugreport <http://bugs.libre-riscv.org/show_bug.cgi?id=138>
9
10 ## Project name
11
12 Libre-SoC, Coriolis2 ASIC Layout Collaboration
13
14 ## Website / wiki
15
16 <https://libre-soc.org/nlnet_2019_coriolis2>
17
18 Please be short and to the point in your answers; focus primarily on
19 the what and how, not so much on the why. Add longer descriptions as
20 attachments (see below). If English isn't your first language, don't
21 worry - our reviewers don't care about spelling errors, only about
22 great ideas. We apologise for the inconvenience of having to submit in
23 English. On the up side, you can be as technical as you need to be (but
24 you don't have to). Do stay concrete. Use plain text in your reply only,
25 if you need any HTML to make your point please include this as attachment.
26
27 ## Abstract: Can you explain the whole project and its expected outcome(s).
28
29 The Libre RISC-V SoC is being developed to provide a privacy-respecting
30 modern processor, developed transparently and as libre to the bedrock
31 as possible. This means not just the software running on the processor:
32 it means the actual hardware design and the hardware layout, right down
33 to the transistor level.
34
35 It is necessary, therefore, to use libre-licensed VLSI Layout tools
36 rather than pay for proprietary software that, apart from being incredibly
37 expensive, could potentially compromise the integrity of the project.
38
39 We therefore intend to collaborate with engineers from LIP6, to use
40 and improve their VLSI Layout tool, Coriolis2, in conjunction with
41 Chips4Makers, to create the layout that Chips4Makers will then put into
42 a 180nm 300mhz test chip.
43
44 # Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?
45
46 Luke Leighton is an ethical technology specialist who has a consistent
47 24-year track record of developing code in a real-time transparent
48 (fully libre) fashion, and in managing Software Libre teams. He is the
49 lead developer on the Libre RISC-V SoC.
50
51 Jean-Paul Chaput is the lead engineer on the Alliance and Coriolis2
52 tools for VLSI backend layout, from LIP6.
53
54 # Requested Amount
55
56 EUR 50,000.
57
58 # Explain what the requested budget will be used for?
59
60 The key initial milestone for the 2018 NLNet Libre RISC-V SoC Project
61 is the FPGA target: a working design that can run in an FPGA at approximately
62 50Mhz. The next logical step is to do the layout.
63
64 However, FPGA targets have some quirks which help accelerate FPGAs (not ASICs):
65 an on-board DSP, specialist memory, and so on. Without these "crutches"
66 the design must be augmented and adapted to suit ASIC layout.
67
68 As we are using nmigen for the HDL front-end and yosys for the HDL
69 back-end, we will need to work with the nmigen developers in order to
70 augment nmigen to cope with the task of creating "netlists" suitable for
71 ASICs. Whilst yosys (the actual "netlist" generator) has been utilised
72 for this task repeatedly and successfully, and whilst the prior version,
73 "migen", was also used, nmigen has not yet been ASIC proven.
74
75 Once a "netlist" is available, the Coriolis2 VLSI tool will be used to
76 actually create the layers of the chip. Given the size and capabilities
77 of the chip, we anticipate issues here, which we will need the support
78 of LIP6's engineers to solve.
79
80 The layout itself is also dependent on what is called "Cell Libraries".
81 One is "NSXLIB" which contains OR and AND gates to create MUXes and XORs.
82 Another is an "SRAM" Library (memory), and another is a "GPIO" Cell
83 Library. Chips4Makers will be working on these low-level blocks for
84 us (under a separate Programme), however we again anticipate issues -
85 related to Foundry NDAs - which will hamper the communications process.
86
87 So therefore, the requested budget will be used for:
88
89 * Augmentation and adaptation of the Libre RISC-V SoC HDL to ASIC layout
90 * Engineers to work on the layout using Alliance / Coriolos2 VLSI, from lip6
91 * Engineers to bug-fix or augment Alliance / Coriolis2
92 * Essential augmentations to nmigen to make it ASIC-layout-capable
93
94 All of these will be and are entirely libre-licensed software: there will
95 be no proprietary software tools utilised in this process.
96
97
98 # Does the project have other funding sources, both past and present?
99
100 The overall project has sponsorship from Purism as well as a prior grant
101 from NLNet. However that is for specifically covering the development
102 of the RTL (the hardware source code).
103
104 There is no source of funds for the work on the *next* stage: the actual
105 VLSI ASIC Layout. Chips4Makers is however putting in an *additional*
106 (and separate) funding application for the stage after *this*: the
107 creation of the Cell Libraries that will be used in the VLSI ASIC Layout.
108
109 All these three projects are separate and distinct (despite being related
110 to the same CPU), and funding may not cross over from one project to
111 the other.
112
113 # Compare your own project with existing or historical efforts.
114
115 There are several Open VLSI Tool suites:
116
117 * GNU Electric: https://www.gnu.org/software/electric/
118 * MAGIC: http://opencircuitdesign.com/magic/
119 * The OpenROAD Project: https://theopenroadproject.org/ (using MAGIC)
120 * QFlow: http://opencircuitdesign.com/qflow/
121 * Toped: http://www.toped.org.uk/
122
123 and a few more. We choose Coriolis2 because of its python interface.
124 The VLSI Layout is actually done as a *python* program. With nmigen
125 (the HDL) being in python, we anticipate the same OO benefits to be
126 achievable in coriolis2 as well.
127
128 The case for the Libre RISC-V SoC itself was made already in the initial
129 2018.02 proposal. That has not changed: there are no Libre / Open Projects
130 approaching anything like the complexity and product market opportunities
131 of the Libre RISC-V SoC, which is being designed to be a quad-core 800mhz
132 multi-issue out-of-order design. All other Libre / Open processors such
133 as Raven, and many more, have a goal set in advance not to exceed around
134 the 350mhz mark, and are single-core.
135
136 Other projects which are "open", such as the Ariane Processor, are
137 developed by universities, and in the case of Ariane were *SPECIFICALLY*
138 designed by and for the use of proprietary toolchains, such as those from
139 Cadence, Synopsys and Mentor Graphics. Despite the source code being
140 "open", there was absolutely no expectation that the processor of the
141 same capability as the Libre RISC-V SoC would use Libre / Open tools.
142
143 Although our first ASIC (thanks to Chips4Makers) will be only 180nm,
144 single-core and a maximum of around 350mhz, this is just the first
145 stepping stone to a much larger processor.
146
147 ## What are significant technical challenges you expect to solve during the project, if any?
148
149 Some of these have been mentioned above:
150
151 * NDAs by Foundries may interfere with the ability for Chips4Makers to
152 communicate with LIP6 regarding the necessary changes to NSXLIB which
153 meet the TSMC Foundry "Design Rule Checks" (DRCs).
154 * Bugs or missing features in nmigen, yosys, coriolis2, NSXLIB, OpenRAM,
155 and the knock-on implications throughout the chain, right the way up
156 to the *actual* Libre RISC-V SoC's HDL source code itself, all need to
157 be dealt with.
158 * Circuit simulation and unit testing is going to be a major factor, and
159 a huge utilisation of Computing power. Machines with "only" 16 GB of RAM
160 and high-end quad-core processors are going to be hopelessly inadequate.
161
162 ## Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
163
164 LIP6 have their own mailing list for the (transparent) discussion of
165 issues related to coriolis2: <alliance-users@asim.lip6.fr>. The Libre RISC-V
166 SoC has a full set of resources for Libre Project Management and development:
167 mailing list, bugtracker, git repository and wiki - all listed here:
168 <https://libre-riscv.org/>
169
170 In addition, we have a Crowdsupply page
171 <https://www.crowdsupply.com/libre-risc-v/m-class> which provides a public
172 gateway, and heise.de, reddit, phoronix, slashdot and other locations have
173 all picked up the story. The list is updated and maintained here:
174 <https://libre-riscv.org/3d_gpu/>
175
176 # Extra info to be submitted
177
178 * <http://libre-riscv.org/3d_gpu/>
179 * <https://www-soc.lip6.fr/equipe-cian/logiciels/coriolis/>
180 * <https://nlnet.nl/project/Libre-RISCV/>
181 * <https://chips4makers.io/blog/>
182