// output /////////////////////////////////////////////////////////////////// #skip #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.inAddr: [*] take, deliver; memory.inData: [*] take, deliver; memory.inCount: [*] take, deliver; memory.inStride: [*] take, deliver; fifo.in: [*] take, deliver; // addresses and values to initialize the memory with 1: sendto memory.inAddr.writeMany; 4: sendto memory.inCount; 1: sendto memory.inStride; 11: sendto memory.inData; 12: sendto memory.inData; 13: sendto memory.inData; 14: sendto memory.inData; // send write-completion tokens to the fifo output memory.out: [4] take, notify fifo.out; [*] take, sendto debug.in; // when the write-completion tokens accumulate, unleash // the read addresses fifo.out: [4] wait; take, sendto memory.inAddr.readMany; // read addresses 4: sendto fifo.in; 4: sendto memory.inCount; -1: sendto memory.inStride;