From d2a2484efa5c7f3e1561ec5377ad5d9c6a7c8a40 Mon Sep 17 00:00:00 2001 From: Stefan Holst Date: Fri, 3 Nov 2023 14:26:04 +0900 Subject: [PATCH] fix fault injection --- src/kyupy/logic_sim.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kyupy/logic_sim.py b/src/kyupy/logic_sim.py index 393beaf..a5b3039 100644 --- a/src/kyupy/logic_sim.py +++ b/src/kyupy/logic_sim.py @@ -105,7 +105,7 @@ class LogicSim(sim.SimOps): elif op == sim.OAI211:self.c[o0] = ~((self.c[i0] | self.c[i1]) & self.c[i2] & self.c[i3]) elif op == sim.MUX21: self.c[o0] = (self.c[i0] & ~self.c[i2]) | (self.c[i1] & self.c[i2]) else: print(f'unknown op {op}') - inject_cb(o0, self.s[o0]) + inject_cb(o0, self.c[o0]) elif self.m == 4: for op, o0, i0, i1, i2, i3 in self.ops[:,:6]: o0, i0, i1, i2, i3 = [self.c_locs[x] for x in (o0, i0, i1, i2, i3)] @@ -181,6 +181,7 @@ class LogicSim(sim.SimOps): logic.bp4v_and(self.c[t1], self.c[i1], self.c[i2]) logic.bp4v_or(self.c[o0], self.c[t0], self.c[t1]) else: print(f'unknown op {op}') + if inject_cb is not None: inject_cb(o0, self.c[o0]) else: for op, o0, i0, i1, i2, i3 in self.ops[:,:6]: o0, i0, i1, i2, i3 = [self.c_locs[x] for x in (o0, i0, i1, i2, i3)] @@ -256,7 +257,7 @@ class LogicSim(sim.SimOps): logic.bp8v_and(self.c[t1], self.c[i1], self.c[i2]) logic.bp8v_or(self.c[o0], self.c[t0], self.c[t1]) else: print(f'unknown op {op}') - if inject_cb is not None: inject_cb(o0, self.s[o0]) + if inject_cb is not None: inject_cb(o0, self.c[o0]) def c_to_s(self): """Copies (captures) the results of the combinational portion to ``s[1]``.