<josuah>
mithro: there might need some additions to Amaranth for supporting something like this.
<josuah>
<tpw_rules> isn't that what submodules are for
<josuah>
I think (System)Verilog has tasks to fill the gap between submodules and copy-pasting codes around
<josuah>
what about "transacitons": for instance, a alot of modules will have a Wishbone Interface/Record, then on top of that can be written something like "def read()" or "def write()"?
<josuah>
something that would set all signals in the current context so that a Wishbone read/write can be issued at that cycle, eventually leaving-up some signal that tells "yes ok it was queued"
<josuah>
hmm... maybe it would not work too well in practice, fail to make sense.