// output ///////////////////////////////////////////////////////////////////
-#skip
#expect 14
#expect 13
#expect 12
#ship fifo : Fifo
// dumb configurations
-debug.in: [*] take, deliver;
-memory.inAddr: [*] take, deliver;
-memory.inData: [*] take, deliver;
-fifo.in: [*] take, deliver;
-
-// addresses and values to initialize the memory with
-1: sendto memory.inAddr.write;
-2: sendto memory.inAddr.write;
-3: sendto memory.inAddr.write;
-4: sendto memory.inAddr.write;
-11: sendto memory.inData;
-12: sendto memory.inData;
-13: sendto memory.inData;
-14: sendto memory.inData;
+debug.in: set ilc=*; recv, deliver;
+memory.inAddrRead: set ilc=*; recv, deliver;
// send write-completion tokens to the fifo output
memory.out:
- [4] take, notify fifo.out;
- [*] take, sendto debug.in;
+ set ilc=4; collect, send token to fifo.out;
+ set ilc=*; collect, send to debug.in;
+
+memory.inAddrWrite: set word= 1; deliver;
+memory.inDataWrite: set word= 11; deliver;
+
+memory.inAddrWrite: set word= 2; deliver;
+memory.inDataWrite: set word= 12; deliver;
+
+memory.inAddrWrite: set word= 3; deliver;
+memory.inDataWrite: set word= 13; deliver;
+
+memory.inAddrWrite: set word= 4; deliver;
+memory.inDataWrite: set word= 14; deliver;
// when the write-completion tokens accumulate, unleash
// the read addresses
fifo.out:
- [4] wait;
- [4] take, sendto memory.inAddr.read;
-
-// read addresses
-4: sendto fifo.in;
-3: sendto fifo.in;
-2: sendto fifo.in;
-1: sendto fifo.in;
+ set ilc=4; recv token;
+ set ilc=4; collect, send to memory.inAddrRead;
+
+fifo.in:
+ set word= 4; deliver;
+ set word= 3; deliver;
+ set word= 2; deliver;
+ set word= 1; deliver;
+
+