[Libre-soc-bugs] [Bug 713] PartitionedSignal enhancement to add partition-context-aware lengths

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sat Oct 9 07:23:56 BST 2021


https://bugs.libre-soc.org/show_bug.cgi?id=713

--- Comment #53 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #51)

> I think copying the existing PartitionedSignal and naming the copy
> ElwidthSimdSignal is better than having it be a subclass...subclassing will
> make a bunch of messy unnecessary interactions.

it's surprisingly small (and regular), needing only 3 functions/properties

https://git.libre-soc.org/?p=ieee754fpu.git;a=blob;f=src/ieee754/part_repl/repl.py;h=364b7721c9ec896e9e5d0cbf133404f3631ad059;hb=HEAD#l90

1) the thing to switch on (line 90)
2) the list of values to create cases from
3) (as an optimisation) a mask identifying padding-only lanes,
   stopping partial computations in padding lanes from taking
   place.

note 1 and 2 are *not* PartitionedSignal.__Switch__ they are
actual (scalar) Module m.Switch m.Case.

lines 90-92 in repl.py would become something like:

   with m.Switch(self.something.get_selector()):
       for pbit in self.something.get_allowed_cases():   

that is *literally* the extent of the modifications required
to allow PartitionedSignal submodules/subfunctions to adapt.

> Also, naming it Simd is waay
> shorter than Partitioned.

yeah i'll do a (big) rename in the morning. SimdSignal?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list