[otbn,dv] Fix the ISS for LOOPI instructions with a count of zero
Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
diff --git a/hw/ip/otbn/dv/otbnsim/sim/insn.py b/hw/ip/otbn/dv/otbnsim/sim/insn.py
index 1600abb..02590d8 100644
--- a/hw/ip/otbn/dv/otbnsim/sim/insn.py
+++ b/hw/ip/otbn/dv/otbnsim/sim/insn.py
@@ -371,7 +371,10 @@
self.bodysize = op_vals['bodysize']
def execute(self, state: OTBNState) -> None:
- state.loop_start(self.iterations, self.bodysize)
+ if self.iterations == 0:
+ state.stop_at_end_of_cycle(err_bits.LOOP)
+ else:
+ state.loop_start(self.iterations, self.bodysize)
class BNADD(OTBNInsn):