// 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.inAddrRead: [*] take, deliver; memory.inAddrWrite: [*] take, deliver; memory.inDataWrite: [*] 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.inAddrWrite; //4: sendto memory.inCount; //1: sendto memory.inStride; //11: sendto memory.inDataWrite; //12: sendto memory.inDataWrite; //13: sendto memory.inDataWrite; //14: sendto memory.inDataWrite; // send write-completion tokens to the fifo output memory.out: load repeat counter with 4; take, notify fifo.out; [*] take, sendto debug.in; // when the write-completion tokens accumulate, unleash // the read addresses fifo.out: load repeat counter with 4; wait; take, sendto memory.inAddrRead; // read addresses //4: sendto fifo.in; //4: sendto memory.inCount; //-1: sendto memory.inStride;