Bug 73

Summary: all nmigen module-based classes now need to derive from Elaboratable
Product: Libre-SOC's first SoC Reporter: Luke Kenneth Casson Leighton <lkcl>
Component: Source CodeAssignee: Luke Kenneth Casson Leighton <lkcl>
Status: PAYMENTPENDING FIXED    
Severity: enhancement CC: libre-soc-bugs
Priority: ---    
Version: unspecified   
Hardware: PC   
OS: Linux   
NLnet milestone: NLnet.2019.02.012 total budget (EUR) for completion of task and all subtasks: 500
budget (EUR) for this task, excluding subtasks' budget: 500 parent task for budget allocation: 191
child tasks for budget allocation: The table of payments (in EUR) for this task; TOML format:
"lkcl"={amount=500, paid=2019-06-16}

Description Luke Kenneth Casson Leighton 2019-04-23 09:28:38 BST
this is already going to be a *lot* of work, it would be good to
tackle this as a team (everyone pick a file, perhaps coordinate
on freenode #libreriscv)

the constructor (__init__) does not need calling, it is a metaclass,
it just needs to be added:

class RecordTest(Elaboratable):

wherever there is a def elaborate(....)
Comment 1 Luke Kenneth Casson Leighton 2019-04-25 13:28:38 BST
turns out that this has knock-on ramifications for the pipeline API.
anything that's used in the incoming or outgoing data, that happens
to be a module, *has* to be added as a submodule to its parent,
otherwise warnings are thrown.
Comment 2 Luke Kenneth Casson Leighton 2019-06-16 13:23:18 BST
split out FPNumBase into FPNumBaseRecord which is not derived
from Elaboratable, then passed that in as an argument to
FPNumBase, FPNumIn/Out and others that needed some module
work.

Overflow - just made it no longer a module.