Open whitequark opened 1 month ago
@wanda-phi has narrowed down the issue to the two underlying causes (thanks!). These are:
.get()
and .set()
, easily cause race conditions.It is much easier to tackle (2) alone so that's what we should do.
In this particular case, the race condition is:
get()
and manipulates a control signal. (This is violating Amaranth's execution model: the testbench is not acting like a synchronous circuit.)
Self-contained but not quite minimal reproducer: repro.zip