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

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Feb 13 16:53:31 GMT 2022


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

--- Comment #28 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
some notes/thoughts: merging gror and grev plus any-other-combo i think might
be possible to do without going completely insane on the gate budget, by using
LUT2s.

    with m.If(self.chunk_sizes[i]):
        comb += lut2.eq(swaplut2)
    with m.Else():
        comb += lut2.eq(noswaplut2)
    for j in range(self.width):
        m.d.comb += step_o[j].eq(lut2(step_i[j], step_i[j ^ chunk_size], lut2)

the instruction would be of the form

    grevtern(RT, RA, steps, swaplut2[0..3], noswaplut2[0..3])

only one set of LUT2s needed per layer, and it has applications
beyond grev even when the steps is set to zero.

still needs thought

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


More information about the libre-soc-bugs mailing list