[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
Wed Oct 13 03:51:42 BST 2021


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

--- Comment #95 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #94)
> (In reply to Luke Kenneth Casson Leighton from comment #93)
> > (In reply to Jacob Lifshay from comment #91)
> > > wait...I am planning on XLEN being a type 
> > 
> > too much focus on "types", transferring concepts from rust not
> > appropriate.
> 
> my point is that the class that XLEN is an instance of, *should* be general
> enough to use for non-integers (since it would be handy for things like
> m.Case() patterns, and other places).

not in any existing ALU (there's 12)

all Case()s involve operand fields.  case extsb,
case extsw, case extsh etc.

all scalar.


> If we split out the arithmetic from
> SimdShape into the separate class (SimdMap), then it can handle all the
> arithmetic, patterns, etc.
> 
> I'm going to try it out as a separate class, and you can see what you think
> once it's in there...if it doesn't work, then we can merge it back into
> SimdShape pretty easily.

ok.  just remember, it needs 2 completely different behaviours:

* fixed_width priority (recalculates laneshapes aka vector element widths)
* vector element widths priority (recalculates overall width aka Shape.width
  aka SimdShape.width)

basically calls layout() to recalculate.

dont go overboard.  add, mul, div, sub, is probably about it.
operands int more than enough.

layout needs fixing first otherwise recalc wont work.

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


More information about the libre-soc-bugs mailing list