#skip // output /////////////////////////////////////////////////////////////////// #expect 14 #expect 13 #expect 12 #expect 11 // program ////////////////////////////////////////////////////////////////// #ship debug : Debug #ship memory : Memory #ship fifo : Fifo // dumb configurations debug.in: [*] take, deliver; memory.inAddrRead: [*] take, deliver; // send write-completion tokens to the fifo output memory.out: load repeat counter with 4; take, notify fifo.out; [*] take, sendto debug.in; memory.inAddrWrite: literal 1; deliver; memory.inDataWrite: literal 11; deliver; memory.inAddrWrite: literal 2; deliver; memory.inDataWrite: literal 12; deliver; memory.inAddrWrite: literal 3; deliver; memory.inDataWrite: literal 13; deliver; memory.inAddrWrite: literal 4; deliver; memory.inDataWrite: literal 14; deliver; // when the write-completion tokens accumulate, unleash // the read addresses fifo.out: load repeat counter with 4; wait; load repeat counter with 4; take, sendto memory.inAddrRead; fifo.in: literal 4; deliver; literal 3; deliver; literal 2; deliver; literal 1; deliver;