[Libre-soc-dev] my current plan regarding simdsignal
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Fri Oct 22 15:10:11 BST 2021
rrright. ok. i like SimdScope. it fitted very closely with the model i
had in my head for something-that-should-look-like-it, if you know
what i mean.
happy with either name SimdMode or SimdScope.
i've put in some "tie-in" patches and TODOs. also important to update
to libresoc-partsig branch
the key is here:
def __init__(self, mask, *args, src_loc_at=0, **kwargs):
if False: # isinstance(mask, SimdMode):
self.ptype = ElwidPartType(self)
# parse the args, get elwid from SimdMode,
# get module as well, call self.set_module(mask.module)
self.partpoints = ptype.make_layout_get_stuff(mask, *args, **kwargs)
which by passing the SimdScope *as* the mask parameter gives
all the information needed to flip over to ElwidPartType() mode,
which in turn tells the submodules to behave in Elwid mode.
this is alllmost all the pieces in place.
some very important contextual variables were missing from SimdScope:
the most absolutely crucial one was a module instance! i explain in
also, a "default fixed width" is not appropriate, but i agree that elwid
and the vec_el_counts should definitely be passed in.
looking again at layout():
37 def layout(elwid, # comes from SimdScope
vec_el_counts, # comes from SimdScope
lane_shapes=None, # comes from SimdShape (via
fixed_width=None): # comes from SimdShape
fixed_width (which was the default_fixed_width parameter) should *NOT*
come from SimdScope's constructor: it should come from the (newly-added)
i'll add these as docstrings / notes
More information about the Libre-soc-dev