[libre-riscv-dev] [Bug 311] countzero function for Logic Pipeline
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Fri May 15 12:34:29 BST 2020
https://bugs.libre-soc.org/show_bug.cgi?id=311
--- Comment #1 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
hm i don't think the count_right functionality is working correctly. it
appears to count from the left up to the last 1, i.e. it returns
(64-countleftzeros)
this is count leading zeros:
* cntlzd. RA,RS (Rc=1)
n <- 0
do while n < 64
if (RS)[n] = 1 then
leave
n <- n + 1
RA <- n
and this is count trailing zeros:
* cnttzd. RA,RS (Rc=1)
n <- 0
do while n < 64
if (RS)[63-n] = 0b1 then
leave
n <- n + 1
RA <- EXTZ64(n)
i am inclined to suggest that the entire input be inverted via a mux and
that encoder *not* try to do inversion.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-riscv-dev
mailing list