add opencl
[libreriscv.git] / HDL_workflow.mdwn
index b6793f946a231b58702decff018379f1e228994d..e390782605b865ad12cada67fa8d0f30a6449a2c 100644 (file)
@@ -1,7 +1,7 @@
 # HDL workflow
 
 This section describes the workflow and some best practices for developing
-the Libre-SoC hardware. We use nmigen, yosys and symbiyosys, and this
+the Libre-SOC hardware. We use nmigen, yosys and symbiyosys, and this
 page is intended not just to help you get set up, it is intended to
 help advise you of some tricks and practices that will help you become
 effective team contributors.
@@ -30,6 +30,10 @@ The main message here: **use the right tool for the right job**.
 we will add an IRC channel at some point when there are enough people
 to warrant having one.
 
+note also the lack of a "forum" in the above list.  this is very deliberate.  forums are a serious distraction when it comes to technical heavily goal-orientated development. recent internet users may enjoy looking up the "AOL metoo postings" meme.
+
+note also the complete lack of "social platforms". if we wanted to tell everybody how much better each of us are than anyone else in the team, how many times we made a commit (look at me, look at me, i'm so clever), and how many times we went to the bathroom, we would have installed a social media based project "management" system.
+
 ## Main contact method: mailing list
 
 To respect the transparency requirements, conversations need to be
@@ -46,7 +50,8 @@ minimum look up and understand the following:
   using phone at airport flight soon, v. quick reply: ....")
 * Always trim context but do not cut excessively to the point where people
   cannot follow the discussion.  Especially do not cut the attribution
-  ("On monday xxx wrote")
+  ("On monday xxx wrote") of something that you are actually replying
+  to.
 * Use inline replies i.e. reply at the point in the relevant part of
   the conversation, as if you were actually having a conversation.
 * Follow standard IETF reply formatting, using ">" for cascaded
@@ -448,6 +453,9 @@ for actual code development
 * plan in advance to write not just code but a full test suite for
   that code.  **this is not optional**. large python projects that do not
   have unit tests **FAIL** (see separate section below).
+* Prioritise writing formal proofs and a single clear unit test that is more like a "worked example".
+  We receive NLNet funds for writing formal proofs, plus they
+cover corner cases and take far less time to write
 
 ### Commit tested or zero-dependent code
 
@@ -727,3 +735,5 @@ Find appropriate tutorials for nmigen and yosys, as well as symbiyosys.
 * There exist several nmigen examples which are also executable
   <https://github.com/m-labs/nmigen/tree/master/examples/> exactly as
   described in the above tutorial (python3 filename.py -h)
+* Robert Baruch's nmigen tutorials look really good:
+  <https://github.com/RobertBaruch/nmigen-tutorial>