[otbn] Simplify loop end calculation logic
[otbn] Simplify loop end calculation logic

The previous code separated out two cases depending on whether IMEM
was small or large compared to the 12-bit bodysize from the ISA.

Even with a large IMEM width, we still have the possibility of an
overflow in the addition (because the loop instruction might be at the
top of the address space). The existing code was correct, but I think
both branches of the "if" block did the same thing in the "big IMEM"
case: the unary OR in the first branch ends up operating on a single
bit.

Simplify things by getting rid of the "if" block and just using the
first branch. Also, increment LoopEndAddrWidth by 1 so that the name
is accurate and write a comment explaining why this is the right
calculation.

There's a small optimisation opportunity here: If we taught
otbn_loop_controller about the size of IMEM as well as its width, we
might have a maximum instruction address that's more than 2^14 smaller
than 2^ImemAddrWidth. But that only matters if IMEM is large and isn't
a power of 2 in size. At the moment, it's a small power of 2!

Signed-off-by: Rupert Swarbrick <290093e2ad2515ed2f14d749293c8cf8e02ca274@lowrisc.org>

lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan