[Libre-soc-bugs] [Bug 716] PartitionedSignal Slice and Part needed for __getitem__
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Sun Oct 24 20:55:08 BST 2021
https://bugs.libre-soc.org/show_bug.cgi?id=716
--- Comment #20 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #19)
> (In reply to Luke Kenneth Casson Leighton from comment #18)
> > (In reply to Luke Kenneth Casson Leighton from comment #17)
> >
> > > the answer is: an adapter submodule.
> > >
> > > the exact details of how that works will emerge from
> > > the examples, TBD. i will write a couple now.
> >
> > oo. err and um. that's interesting. an add of a 3 bit
> > sliced quantity with a 2 bit (element width=2bit) quantity
> > requires sign (or zero) extension prior to partition
> > expansion.
> >
> > this is going to be interesting (translation: hairy)
>
> The answer to all of those conversions is to have a SimdSignal.cast method
> that handles conversion of an input nmigen Value or SimdSignal to the
> desired SimdShape:
ooo that makes sense. like it.
Cat however still needs alteration: it can't cope with the
fact that the input(s) and output are fundamentally tied
together.
take e.g. a b and c to be Cat()ed together. b creates holes
right in the middle of the result's PartitionPoints, that
critically depend on the size of a and c. only PartitionedCat
itself can determine where to copy the bits of b into the
result.
bottom line is, SimdSignal.cast should work fine for one-to-one,
but not for many-to-one. hopefully Cat() is just the weird
one here.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list