[Libre-soc-bugs] [Bug 707] PartitionedSignal limited Cat function needed
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Fri Sep 24 01:12:16 BST 2021
https://bugs.libre-soc.org/show_bug.cgi?id=707
--- Comment #2 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
looking at the tables created in the URL wiki page, the algorithm appears to
be:
m.Switch()
for pbits cases: 0b000 to 0b111
output = []
yielders = [Yielder(a), Yielder(b), ....]
runlist = split pbits into runs of zeros
for y in yielders:
for i in runlist:
for _ in range(i)+1:
thing = yield from y
output.append(y)
with m.Case(pbits):
comb += out.eq(Cat(*output)
where Yielder() is a function that yields one partition
at a time from the PartitionedSignal.
another way to do this is just to have a list of
indices which get incremented and explicitly select
the partition data explicitly.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list