[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