FA-89256 / Digital logic simulation / Open access
Terminal count asserted while the counter is disabled · case 01
tc is high whenever the counter sits at its terminal value, even with enable low.
ROOT CAUSE
The terminal-count decode is not qualified by the count enable.
VERIFIED REPAIR
Qualify tc with en==1.
Unsuccessful approach: Qualifying with load instead of enable still asserts tc while disabled.
Case contract
Input [m, q0, ops]: ops per clock [load, value, en, up]. Before the edge tc = en==1 and ((up==1 and q==m-1) or (up==0 and q==0)). At the edge load==1 sets q = value mod m (load has priority and ignores en); else en==1 counts up or down modulo m. Return [q after edge, tc] per clock.
Why this case matters
Counters are the most common sequential primitive; wrap, load priority and terminal-count gating are recurring simulation-model bugs.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(*args):
m, q, ops = args
out = []
for load, v, en, up in ops:
tc = int(True and ((up == 1 and q == m - 1) or (up == 0 and q == 0)))
if load == 1:
q = v % m
elif en == 1:
q = (q + 1) % m if up == 1 else (q - 1) % m
out.append([q, tc])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1]]], [[5, 1], [0, 1]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0], [2, 0], [3, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| count up through wrap | [[5, 0], [0, 1], [1, 0], [2, 0]] | [[5, 0], [0, 1], [1, 0], [2, 0]] | Passed |
| count down through zero | [[0, 0], [5, 1], [4, 0]] | [[0, 0], [5, 1], [4, 0]] | Passed |
| terminal count needs enable | [[5, 1], [0, 1], [0, 1]] | [[5, 0], [0, 1], [0, 0]] | Failed |
| load with enable low | [[3, 0], [4, 0]] | [[3, 0], [4, 0]] | Passed |
| load value reduced modulo | [[2, 0], [1, 0]] | [[2, 0], [1, 0]] | Passed |
| load while enabled does not count | [[1, 0], [2, 0]] | [[1, 0], [2, 0]] | Passed |
| down terminal count at zero | [[5, 1], [0, 1]] | [[5, 1], [0, 1]] | Passed |
SHA-256 / bda296bd34ede02dee467d0d4409eb32ea5d8e0cf5f06b7c37ee426a1e72d57b
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(*args):
m, q, ops = args
out = []
for load, v, en, up in ops:
tc = int(load == 0 and ((up == 1 and q == m - 1) or (up == 0 and q == 0)))
if load == 1:
q = v % m
elif en == 1:
q = (q + 1) % m if up == 1 else (q - 1) % m
out.append([q, tc])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1]]], [[5, 1], [0, 1]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0], [2, 0], [3, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| count up through wrap | [[5, 0], [0, 1], [1, 0], [2, 0]] | [[5, 0], [0, 1], [1, 0], [2, 0]] | Passed |
| count down through zero | [[0, 0], [5, 1], [4, 0]] | [[0, 0], [5, 1], [4, 0]] | Passed |
| terminal count needs enable | [[5, 1], [0, 1], [0, 1]] | [[5, 0], [0, 1], [0, 0]] | Failed |
| load with enable low | [[3, 0], [4, 0]] | [[3, 0], [4, 0]] | Passed |
| load value reduced modulo | [[2, 0], [1, 0]] | [[2, 0], [1, 0]] | Passed |
| load while enabled does not count | [[1, 0], [2, 0]] | [[1, 0], [2, 0]] | Passed |
| down terminal count at zero | [[5, 1], [0, 1]] | [[5, 1], [0, 1]] | Passed |
SHA-256 / 4ac62407857bf0033a28e3267c88c9622a8644000fe5b566d0ba0f7c08f95bba
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(*args):
m, q, ops = args
out = []
for load, v, en, up in ops:
tc = int(en == 1 and ((up == 1 and q == m - 1) or (up == 0 and q == 0)))
if load == 1:
q = v % m
elif en == 1:
q = (q + 1) % m if up == 1 else (q - 1) % m
out.append([q, tc])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1]]], [[5, 1], [0, 1]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0], [2, 0], [3, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| count up through wrap | [[5, 0], [0, 1], [1, 0], [2, 0]] | [[5, 0], [0, 1], [1, 0], [2, 0]] | Passed |
| count down through zero | [[0, 0], [5, 1], [4, 0]] | [[0, 0], [5, 1], [4, 0]] | Passed |
| terminal count needs enable | [[5, 0], [0, 1], [0, 0]] | [[5, 0], [0, 1], [0, 0]] | Passed |
| load with enable low | [[3, 0], [4, 0]] | [[3, 0], [4, 0]] | Passed |
| load value reduced modulo | [[2, 0], [1, 0]] | [[2, 0], [1, 0]] | Passed |
| load while enabled does not count | [[1, 0], [2, 0]] | [[1, 0], [2, 0]] | Passed |
| down terminal count at zero | [[5, 1], [0, 1]] | [[5, 1], [0, 1]] | Passed |
SHA-256 / 66dfcb15296c2eb648dcde061c7fb0bf64f01adc8e5943e662de376064341050
Verification & scope
A deterministic bounded teaching model of one simulator rule set; the contract is stipulated and is not a claim of conformance to any HDL standard or commercial simulator. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:51:15.569870+00:00.
Case digest / 31f23330c6dc93cd45da61da1f0694671fe6ce8d5a0dc1e7aedcfa53b06db6a0