[Libre-soc-bugs] [Bug 755] add grev instruction (OP_GREV)

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sat Dec 25 14:13:52 GMT 2021


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

--- Comment #17 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
wark.  has to be lut3 (8 bit table) because the step bit has
to be included

gternlut3(RT, RA, leftlut8, rightlut8)
   for i in range log2wid
      step = steps[i]
      for j in width:
          if j ^ xorstepthing: lut = leftlut8 else rightlut8
          bit = lut3fn(step[j], step[j^xorstepthing], RA[i], lut)
          outstep[j] = bit

this could end up as a huge number of gates, and, also, makes an
immediate version impractical unless leftlut8 and rightlut8 are
constructed from each other (restricting the options)

    leftlut7 = immed
    rightlut8 = immed[0:4] + ~immed[4:8]

better i feel would be to use RB

    leftlut8 = RB[0:8]
    rightlut8 = RB[8:16]

and RC for the selector.  actually probably RC for lut pair and
RB for the selector-immediate because the convention is to put
any immediates down the RB data path.

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


More information about the libre-soc-bugs mailing list