[Libre-soc-bugs] [Bug 734] add Partitioned SimdSignal support for elwidth-based layouts (currently ElwidPartType)
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Sun Oct 24 14:12:08 BST 2021
https://bugs.libre-soc.org/show_bug.cgi?id=734
--- Comment #7 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
here is the relevant code section from PartitionedCat:
110 for pbit in self.ptype.get_cases():
111 # set up some indices pointing to where things have got
112 # then when called below in the inner nested loop they give
113 # the relevant sequential chunk
114 output = []
115 y = [0] * len(self.catlist)
116 # get a list of the length of each partition run
117 runlengths = get_runlengths(pbit, len(keys))
118 print ("pbit", bin(pbit), "runs", runlengths)
119 for i in runlengths: # for each partition
120 for yidx in range(len(y)):
121 thing = self.get_chunk(y, yidx, i) # sequential chunks
122 output.append(thing)
the core of PartitionedCat is lines 119 and 120, which
create the Cat()ed result on a per-elwidth basis (line 110)
for every element (line 119) in the partition, where the
actual Cat on a per-element basis is the loop at line 120.
what is missing from this picture is the arbitrary sizes and occurrences
of padding blocks.
to that end, get_chunk needs to move into ElwidPartType, and it
needs to be possible to determine that the "things" being created
do not necessarily match perfectly with the expected width, and
to pad them.
still thinking it through
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list