[libre-riscv-dev] CAM multiple match policy

Luke Kenneth Casson Leighton lkcl at lkcl.net
Tue Mar 5 11:35:40 GMT 2019


also i just removed the comparator against "1", replacing it with a
simple binary/bool test.  the comparison against "1" resulted in a
comparator being required.

likewise for the comparison against zero.  i removed that, and swapped
the order of the if / else.

the yosys graph is now much *much* smaller and more compact.

also... some of the code (hardware) in the loop doesn't depend on the
index value, can you review / check that?
commit 43cd15994910a0803fb77d2a830e4a12b2f61608 (HEAD -> master)

basically if the encoder.n is non-zero, the address should be
outputted... but the hardware to do that testing doesn't have to be
done N times, it only needs one piece of hardware!

hmmm... also...i'm woonderiiiing.... if the code (hardware) inside the
loop would be better placed in [yet another] module.  the for-loop is
auto-generating duplicated code (which is exactly what it's supposed
to do), however it's making it really unclear to be able to follow
what's going on.

what do you think?

l.



More information about the libre-riscv-dev mailing list