#ship counter2 : Alu2
#ship debug : Debug
-debug.in: [*] recv, deliver;
+debug.in: set ilc=*; recv, deliver;
mem1.inCBD:
- literal SETUP; deliver;
+ set word= SETUP; deliver;
recv;
recv;
- literal GO; deliver;
+ set word= GO; deliver;
SETUP: {
-mem1.inAddrWrite: literal 1000; [11] deliver;
+mem1.inAddrWrite: set word= 1000; [11] deliver;
mem1.inDataWrite:
- literal 10; deliver;
- literal 1; deliver;
- literal 2; deliver;
- literal 3; deliver;
- literal 4; deliver;
- literal 5; deliver;
- literal 6; deliver;
- literal 7; deliver;
- literal 8; deliver;
- literal 9; deliver;
+ set word= 10; deliver;
+ set word= 1; deliver;
+ set word= 2; deliver;
+ set word= 3; deliver;
+ set word= 4; deliver;
+ set word= 5; deliver;
+ set word= 6; deliver;
+ set word= 7; deliver;
+ set word= 8; deliver;
+ set word= 9; deliver;
mem1.out:
[11] collect;
- notify mem1.inCBD;
-mem2.inAddrWrite: literal 1000; [11] deliver;
+ send token to mem1.inCBD;
+mem2.inAddrWrite: set word= 1000; [11] deliver;
mem2.inDataWrite:
- literal 10; deliver;
- literal 1; deliver;
- literal 2; deliver;
- literal 3; deliver;
- literal 4; deliver;
- literal 5; deliver;
- literal 6; deliver;
- literal 7; deliver;
- literal 8; deliver;
- literal 9; deliver;
+ set word= 10; deliver;
+ set word= 1; deliver;
+ set word= 2; deliver;
+ set word= 3; deliver;
+ set word= 4; deliver;
+ set word= 5; deliver;
+ set word= 6; deliver;
+ set word= 7; deliver;
+ set word= 8; deliver;
+ set word= 9; deliver;
mem2.out:
[11] collect;
- notify mem1.inCBD;
+ send token to mem1.inCBD;
}
GO: {
-mem1.inAddrRead: literal 1000; deliver;
-mem2.inAddrRead: literal 1000; deliver;
+mem1.inAddrRead: set word= 1000; deliver;
+mem2.inAddrRead: set word= 1000; deliver;
// normally we would write to memory, but here we send to debug
-//mem3.inAddrWrite: literal 0; deliver;
-//mem3.out: [*] collect, sendto debug.in;
+//mem3.inAddrWrite: set word= 0; deliver;
+//mem3.out: set ilc=*; collect, send to debug.in;
-alu.in1: [*] recv, deliver;
-alu.in2: [*] recv, deliver;
-alu.inOp: literal Alu2.inOp[MAX]; deliver; literal Alu2.inOp[ADD]; [*] deliver;
-//alu.out: [*] collect, sendto debug.in;
+alu.in1: set ilc=*; recv, deliver;
+alu.in2: set ilc=*; recv, deliver;
+alu.inOp: set word= Alu2.inOp[MAX]; deliver; set word= Alu2.inOp[ADD]; set ilc=*; deliver;
+//alu.out: set ilc=*; collect, send to debug.in;
mem1.out:
collect;
- sendto counter1.in1;
- sendto alu.in1;
- load repeat counter;
- collect, sendto alu.in1;
+ send to counter1.in1;
+ send to alu.in1;
+ set ilc=data;
+ collect, send to alu.in1;
mem2.out:
collect;
- sendto counter2.in1;
- sendto alu.in2;
- load repeat counter;
- collect, sendto alu.in2;
+ send to counter2.in1;
+ send to alu.in2;
+ set ilc=data;
+ collect, send to alu.in2;
-counter1.in1: literal 10; load repeat counter; literal 1; deliver;
-counter1.in2: literal 0; deliver; [*] recv, deliver;
-counter1.inOp: literal Alu2.inOp[ADD]; [*] deliver;
-counter1.out: load loop counter with 1; collect; sendto debug.in; unclog;
+counter1.in1: set word= 10; set ilc=data; set word= 1; deliver;
+counter1.in2: set word= 0; deliver; set ilc=*; recv, deliver;
+counter1.inOp: set word= Alu2.inOp[ADD]; set ilc=*; deliver;
+counter1.out: set olc=1; collect; send to debug.in; unclog;
}