From d6cfdcf2350803ba55b350a0a0470bc91422ec40 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Fri, 4 Dec 2020 12:56:35 +0000 Subject: [PATCH] add grant links, and record of funding under #538 https://bugs.libre-soc.org/show_bug.cgi?id=538 --- src/nmutil/byterev.py | 6 ++++++ src/nmutil/clz.py | 5 +++++ src/nmutil/concurrentunit.py | 10 ++++++++++ src/nmutil/divmod.py | 8 ++++++++ src/nmutil/dynamicpipe.py | 2 ++ src/nmutil/extend.py | 7 +++++++ src/nmutil/gtkw.py | 7 +++++++ src/nmutil/iocontrol.py | 6 ++++++ src/nmutil/latch.py | 7 +++++++ src/nmutil/mask.py | 8 ++++++++ src/nmutil/multipipe.py | 6 ++++++ src/nmutil/nmoperator.py | 5 +++++ src/nmutil/picker.py | 5 +++++ src/nmutil/pipeline.py | 8 ++++++++ src/nmutil/pipemodbase.py | 10 ++++++++++ src/nmutil/ripple.py | 7 +++++++ src/nmutil/singlepipe.py | 5 +++++ src/nmutil/stageapi.py | 5 +++++ src/nmutil/util.py | 7 +++++++ 19 files changed, 124 insertions(+) diff --git a/src/nmutil/byterev.py b/src/nmutil/byterev.py index 5c40e41..a6cb4fa 100644 --- a/src/nmutil/byterev.py +++ b/src/nmutil/byterev.py @@ -1,3 +1,9 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ +""" + from nmigen import Signal, Cat # TODO: turn this into a module diff --git a/src/nmutil/clz.py b/src/nmutil/clz.py index cbf3397..2fda8c2 100644 --- a/src/nmutil/clz.py +++ b/src/nmutil/clz.py @@ -3,6 +3,11 @@ import math """ This module is much more efficient than PriorityEncoder although it is functionally identical. see https://bugs.libre-soc.org/show_bug.cgi?id=326 + + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + """ class CLZ(Elaboratable): diff --git a/src/nmutil/concurrentunit.py b/src/nmutil/concurrentunit.py index f4667b6..6d2ff3d 100644 --- a/src/nmutil/concurrentunit.py +++ b/src/nmutil/concurrentunit.py @@ -1,11 +1,20 @@ """ concurrent unit from mitch alsup augmentations to 6600 scoreboard + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + * data fans in * data goes through a pipeline * results fan back out. the output data format has to have a member "muxid", which is used as the array index on fan-out + + Associated bugreports: + + * https://bugs.libre-soc.org/show_bug.cgi?id=538 """ from math import log @@ -21,6 +30,7 @@ from nmutil.multipipe import PriorityCombMuxInPipe def num_bits(n): return int(log(n) / log(2)) + class PipeContext: def __init__(self, pspec): diff --git a/src/nmutil/divmod.py b/src/nmutil/divmod.py index 357fdcb..5a8207e 100644 --- a/src/nmutil/divmod.py +++ b/src/nmutil/divmod.py @@ -1,3 +1,11 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + +""" + from copy import copy # this is a POWER ISA 3.0B compatible *signed* div function # however it is also the c, c++, rust, java *and* x86 way of doing things diff --git a/src/nmutil/dynamicpipe.py b/src/nmutil/dynamicpipe.py index f9c649c..0187cf2 100644 --- a/src/nmutil/dynamicpipe.py +++ b/src/nmutil/dynamicpipe.py @@ -3,6 +3,8 @@ """ Meta-class that allows a dynamic runtime parameter-selectable "mixin" + This work is funded through NLnet under Grant 2019-02-012 + The reasons why this technique is being deployed is because SimpleHandshake needs to be dynamically replaced at the end-users' choice, without having to duplicate dozens of classes using multiple-inheritanc "Mix-in" techniques. diff --git a/src/nmutil/extend.py b/src/nmutil/extend.py index a1675ef..38b5e7d 100644 --- a/src/nmutil/extend.py +++ b/src/nmutil/extend.py @@ -1,3 +1,10 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + +""" from nmigen import Repl, Cat, Const diff --git a/src/nmutil/gtkw.py b/src/nmutil/gtkw.py index d279ac8..ec4925b 100644 --- a/src/nmutil/gtkw.py +++ b/src/nmutil/gtkw.py @@ -1,3 +1,10 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + +""" from vcd.gtkw import GTKWSave, GTKWColor from math import log2 diff --git a/src/nmutil/iocontrol.py b/src/nmutil/iocontrol.py index 18dffa2..179ca94 100644 --- a/src/nmutil/iocontrol.py +++ b/src/nmutil/iocontrol.py @@ -1,6 +1,12 @@ """ IO Control API + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + Associated development bugs: + * http://bugs.libre-riscv.org/show_bug.cgi?id=538 * http://bugs.libre-riscv.org/show_bug.cgi?id=148 * http://bugs.libre-riscv.org/show_bug.cgi?id=64 * http://bugs.libre-riscv.org/show_bug.cgi?id=57 diff --git a/src/nmutil/latch.py b/src/nmutil/latch.py index 813ad64..908c15c 100644 --- a/src/nmutil/latch.py +++ b/src/nmutil/latch.py @@ -1,3 +1,10 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + +""" from nmigen.compat.sim import run_simulation from nmigen.cli import verilog, rtlil from nmigen import Record, Signal, Module, Const, Elaboratable, Mux diff --git a/src/nmutil/mask.py b/src/nmutil/mask.py index 25fd142..e98ca3b 100644 --- a/src/nmutil/mask.py +++ b/src/nmutil/mask.py @@ -1,3 +1,11 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + +""" + from nmigen import Module, Signal, Elaboratable from nmigen.utils import log2_int diff --git a/src/nmutil/multipipe.py b/src/nmutil/multipipe.py index 9527925..06698ac 100644 --- a/src/nmutil/multipipe.py +++ b/src/nmutil/multipipe.py @@ -1,6 +1,10 @@ """ Combinatorial Multi-input and Multi-output multiplexer blocks conforming to Pipeline API + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + Multi-input is complex because if any one input is ready, the output can be ready, and the decision comes from a separate module. @@ -8,6 +12,8 @@ and the selection is just a mux. The only proviso (difference) being: the outputs not being selected have to have their ready_o signals DEASSERTED. + + https://bugs.libre-soc.org/show_bug.cgi?id=538 """ from math import log diff --git a/src/nmutil/nmoperator.py b/src/nmutil/nmoperator.py index 4f060c7..8d0aaff 100644 --- a/src/nmutil/nmoperator.py +++ b/src/nmutil/nmoperator.py @@ -1,5 +1,10 @@ """ nmigen operator functions / utils + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + eq: -- diff --git a/src/nmutil/picker.py b/src/nmutil/picker.py index 4087679..0babc07 100644 --- a/src/nmutil/picker.py +++ b/src/nmutil/picker.py @@ -1,6 +1,11 @@ """ Priority Picker: optimised back-to-back PriorityEncoder and Decoder and MultiPriorityPicker: cascading mutually-exclusive pickers + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + PriorityPicker: the input is N bits, the output is N bits wide and only one is enabled. diff --git a/src/nmutil/pipeline.py b/src/nmutil/pipeline.py index 812b527..4646040 100644 --- a/src/nmutil/pipeline.py +++ b/src/nmutil/pipeline.py @@ -1,3 +1,11 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + +""" + """ Example 5: Making use of PyRTL and Introspection. """ from collections.abc import Sequence diff --git a/src/nmutil/pipemodbase.py b/src/nmutil/pipemodbase.py index 0c5a02f..1706e97 100644 --- a/src/nmutil/pipemodbase.py +++ b/src/nmutil/pipemodbase.py @@ -1,3 +1,13 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + Associated bugreports: + * https://bugs.libre-soc.org/show_bug.cgi?id=538 + +""" + from nmigen import Elaboratable from ieee754.pipeline import DynamicPipe from nmutil.singlepipe import StageChain diff --git a/src/nmutil/ripple.py b/src/nmutil/ripple.py index 0325120..96a4982 100644 --- a/src/nmutil/ripple.py +++ b/src/nmutil/ripple.py @@ -1,3 +1,10 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + +""" + # need to ripple the starting LSB of each partition up through the # rest of the partition. a Mux on the partition gate therefore selects # either the current "thing" being propagated, or, if the gate is set open, diff --git a/src/nmutil/singlepipe.py b/src/nmutil/singlepipe.py index cbd06f6..7955f9c 100644 --- a/src/nmutil/singlepipe.py +++ b/src/nmutil/singlepipe.py @@ -1,5 +1,10 @@ """ Pipeline API. For multi-input and multi-output variants, see multipipe. + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + Associated development bugs: * http://bugs.libre-riscv.org/show_bug.cgi?id=148 * http://bugs.libre-riscv.org/show_bug.cgi?id=64 diff --git a/src/nmutil/stageapi.py b/src/nmutil/stageapi.py index b709abd..fc5d709 100644 --- a/src/nmutil/stageapi.py +++ b/src/nmutil/stageapi.py @@ -1,5 +1,10 @@ """ Stage API + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + + Associated development bugs: * http://bugs.libre-riscv.org/show_bug.cgi?id=148 * http://bugs.libre-riscv.org/show_bug.cgi?id=64 diff --git a/src/nmutil/util.py b/src/nmutil/util.py index c9e95cc..8a00ad9 100644 --- a/src/nmutil/util.py +++ b/src/nmutil/util.py @@ -1,3 +1,10 @@ +""" + This work is funded through NLnet under Grant 2019-02-012 + + License: LGPLv3+ + +""" + from collections.abc import Iterable from nmigen import Mux, Signal -- 2.30.2