clarify
[libreriscv.git] / nlnet_2019_wishbone_streaming.mdwn
1 # NL.net proposal
2
3 ## Project name
4
5 The Libre RISC-V SoC, Wishbone Streaming Proposal
6
7 ## Website / wiki
8
9 <https://libre-riscv.org/nlnet_2019_wishbone_streaming>
10
11 Please be short and to the point in your answers; focus primarily on
12 the what and how, not so much on the why. Add longer descriptions as
13 attachments (see below). If English isn't your first language, don't
14 worry - our reviewers don't care about spelling errors, only about
15 great ideas. We apologise for the inconvenience of having to submit in
16 English. On the up side, you can be as technical as you need to be (but
17 you don't have to). Do stay concrete. Use plain text in your reply only,
18 if you need any HTML to make your point please include this as attachment.
19
20 ## Abstract: Can you explain the whole project and its expected outcome(s).
21
22 In projects such as the Libre RISCV SoC, commercial grade communications
23 bus infrastructure is needed. Ordinarily this would mean AXI4 however
24 it is not only patented but its patent holder (ARM) has begun denying
25 licenses due to the US trade war.
26
27 The main alternative with large adoption is Wishbone. However Wishbone
28 does not have "streaming" capability (basically the ability to embed
29 "timecode" stamps into a data stream), which is typically needed for
30 audio and video streaming interfaces.
31
32 Therefore this project will write up an enhancement to the Wishbone B4
33 interface, provide Reference Implementations and unit tests, and also
34 implement an example peripheral, an audio interface, for the Libre RISC-V
35 SoC in order to prove the concept.
36
37 A secondary objective will be to seek out Reference Implementations for
38 Wishbone Master and Slave, provide formal correctness proofs, and add
39 additional example peripherals - non-streaming ones - as resources permit.
40
41 # 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?
42
43 Luke Leighton is an ethical technology specialist who has a consistent
44 24-year track record of developing code in a real-time transparent
45 (fully libre) fashion, and in managing Software Libre teams. He is the
46 lead developer on the Libre RISC-V SoC.
47
48 Hagen Sankowski is a Senior ASIC Design Engineer, with Experiences
49 thru the whole Design Flow, from Digital Entry (Verilog HDL, VHDL)
50 to DSM Backend and back. FPGA knowledge for Xilinx, Altera, Lattice
51 and MicroSemi. Inventor and Patentee for a FPGA structure. Open Source
52 Evangelist, always interested in challenging FPGA and migration projects.
53
54 # Requested Amount
55
56 EUR 50,000.
57
58 # Explain what the requested budget will be used for?
59
60 Improve the Wishbone B4 Specification to add streaming capability,
61 similar to AXI4 Streams.
62
63 Design Reference Implementations in nmigen and verilog, with full unit tests.
64
65 Use some of the Libre RISC-V SoC peripherals as a test platform
66 (I2S Audio Streaming) for the proposed standard modifications.
67
68 As a secondary objective: seek out existing (non-streaming) Wishbone
69 Master and Slave Bus implementations (or implement them if necessary),
70 provide formal proof unit tests of their correctness, and add additional
71 example peripherals.
72
73 # Does the project have other funding sources, both past and present?
74
75 The concept of extending Wishbone to have streaming capability is entirely
76 new: it has no source of funding.
77
78 The Libre RISC-V SoC has funding from NLNet under a 2018 Grant: it was
79 intending to use AXI4 prior to the U.S. Trade War.
80
81 # Compare your own project with existing or historical efforts.
82
83 AXI4 has streaming but it is proprietary and patented.
84
85 TileLink is the alternative protocol but it is relatively new, quite
86 complex, and does not have the same adoption as Wishbone.
87
88 There do exist a number of pre-existing Wishbone Bus Master and Slave
89 implementations: Wishbone has been around for a significantly long time
90 and has been the de-facto choice in the Libre/Open Hardware community.
91 Formal correctness proofs for Wishbone have been written by Dan Gisselquist
92 in verilog, but none are written in nmigen.
93
94 ## What are significant technical challenges you expect to solve during the project, if any?
95
96 This is a straightforward project. However the timing issues involved
97 with Bus Negotiation can be awkward to get right and may need formal
98 proofs to properly verify.
99
100 ## Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes
101
102 As mentioned in the 2018 submission, the Libre RISC-V
103 SoC has a full set of resources for Libre Project Management and development:
104 mailing list, bugtracker, git repository and wiki - all listed here:
105 <https://libre-riscv.org/>
106
107 In addition, we have a Crowdsupply page
108 <https://www.crowdsupply.com/libre-risc-v/m-class> which provides a public
109 gateway, and heise.de, reddit, phoronix, slashdot and other locations have
110 all picked up the story. The list is updated and maintained here:
111 <https://libre-riscv.org/3d_gpu/>
112
113 # Extra info to be submitted
114
115 * <http://libre-riscv.org/3d_gpu/>
116 * <https://nlnet.nl/project/Libre-RISCV/>
117 * <https://cdn.opencores.org/downloads/wbspec_b4.pdf>
118 * <https://zipcpu.com/zipcpu/2017/11/07/wb-formal.html>