[libre-riscv-dev] [Bug 168] create naturally aligned partition points

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Thu Feb 13 18:09:35 GMT 2020


http://bugs.libre-riscv.org/show_bug.cgi?id=168

--- Comment #5 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
okaaay i decoded those tables a bit, into "if" statements:

    if True:          o3 = a0b0[31:24]
    if ~p0:           o3 |= a1b0[23:16]
    if  p0:           o3 |= a1b1[23:16]
    if ~p0&p1:        o3 |= a2b1[15:8]
    if  p0&p1:        o3 |= a2b0[15:8]
    if      p1:       o3 |= a2b2[15:8]
    if ~p0&~p1&~p2:   o3 |= a3b0
    if  p0&~p1&~p2:   o3 |= a3b1
    if      p1&~p2:   o3 |= a3b2
    if          p2:   o3 |= a3b3

that's quite easy to do as a parallel tree of ORs (see the treereduce function
i created which should be moved to nmutil, really)
https://git.libre-riscv.org/?p=soc.git;a=blob;f=src/regfile/regfile.py;h=b1d6f1c6717351f7b38be806bb25462e51f3bbf0;hb=6f35af64465700971bce1e4dae1f7e69c2ec25ad#l68

aNbM is basically matrix[N][M]

is that beginning to look a little clearer?  i'll do the other tables as well

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


More information about the libre-riscv-dev mailing list