[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