Problem checklist
If something doesn’t work and you’re puzzled as to why - go through this checklist to see if any of these points apply in your case:
Make sure that you use
yield from
when calling generator functions in tests - e.g.TestbenchIO
functions (notable exception:yield Settle()
instead ofyield from Settle()
)If a signal has an unexpected value in tests try adding
yield Settle()
right before you read it.Make sure you don’t do
.eq
on two records with different layouts. Useassign
fromcoreblocks.utils
instead.Make sure all amaranth statements are added to some domain.
Check if your code doesn’t have any combinational loops - especially if your simulation hangs.
Please extend this list if you spot yourself doing an easy-to-fix mistake.