From 68d6dbbd166516b8ccb76cef23aec039657d2639 Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 25 Jan 2008 03:58:13 +0100 Subject: [PATCH] update test cases to am33 --- ships/Alu1.ship | 6 +- ships/Alu2.ship | 4 +- ships/Alu3.ship | 27 +++++---- ships/BitFifo.ship | 2 +- ships/Fifo.ship | 13 ++++- ships/Lut3.ship | 18 ++++-- tests/memory/count.and.stride.fleet | 4 +- tests/memory/memory-test.fleet | 6 +- ...ng-instructions-do-not-alter-repeat-count.fleet | 34 +++++++++++ tests/pump/test-count.fleet | 5 +- tests/pump/test-massacre.fleet | 9 +-- .../test-read-loop-counter-from-data-latch.fleet | 11 ++-- tests/pump/test-read-loop-counter-literal.fleet | 18 ++++++ tests/pump/test-read-loop-counter.fleet | 13 ++++- tests/pump/test-repeat-counter.fleet | 22 +++++++ tests/pump/test-use-loop-counter.fleet | 2 +- tests/pump/token-on-last-iteration.fleet | 12 ++-- tests/requeue/requeue-expire.fleet | 12 +++- tests/requeue/requeueing-literal.fleet | 11 ++-- tests/requeue/test-kill-requeueing.fleet | 11 ++-- tests/requeue/test-requeue.fleet | 61 +++++++++----------- 21 files changed, 204 insertions(+), 97 deletions(-) create mode 100644 tests/pump/standing-instructions-do-not-alter-repeat-count.fleet create mode 100644 tests/pump/test-read-loop-counter-literal.fleet create mode 100644 tests/pump/test-repeat-counter.fleet diff --git a/ships/Alu1.ship b/ships/Alu1.ship index 41f988b..8db948c 100644 --- a/ships/Alu1.ship +++ b/ships/Alu1.ship @@ -98,11 +98,11 @@ The result of this operation is then made available at {\tt out}. debug.in: [*] take, deliver; alu1.in: literal 9; - [4] deliver; + load repeat counter with 4; deliver; [*] take, deliver; alu1.out: - [4] take, sendto debug.in; + load repeat counter with 4; take, sendto debug.in; sendto alu1.in; [*] take, sendto debug.in; @@ -110,7 +110,7 @@ alu1.inOp: literal 1; deliver; literal 2; deliver; literal 3; deliver; - literal 0; [2] deliver; + literal 0; load repeat counter with 2; deliver; == Contributors ========================================================= diff --git a/ships/Alu2.ship b/ships/Alu2.ship index 30ed60c..b1a7f1c 100644 --- a/ships/Alu2.ship +++ b/ships/Alu2.ship @@ -120,10 +120,10 @@ public void service() { debug.in: [*] take, deliver; alu.in1: - literal 9; [4] deliver; + literal 9; load repeat counter with 4; deliver; alu.in2: - literal 8; [4] deliver; + literal 8; load repeat counter with 4; deliver; alu.in1: [*] take, deliver; alu.in2: [*] take, deliver; diff --git a/ships/Alu3.ship b/ships/Alu3.ship index cb75410..24b3efd 100644 --- a/ships/Alu3.ship +++ b/ships/Alu3.ship @@ -140,9 +140,9 @@ public void service() { bitfifo.in: literal 10000; deliver; // deliver a junk word - [37] deliver; // deliver it 37 times (once per bit) + load repeat counter with 37; deliver; // deliver it 37 times (once per bit) literal 0; - [38] deliver; // deliver it 37 times + load repeat counter with 38; deliver; // deliver it 37 times // insert bits in lsb order bitfifo.inOp: @@ -155,32 +155,35 @@ bitfifo.outOp: [*] deliver; bitfifo.out: [*] wait, take, sendto lut3.in2; -lut3.in2: [4] notify bitfifo.out; - [74] take, deliver, notify bitfifo.out; +lut3.in2: load repeat counter with 4; notify bitfifo.out; + load repeat counter with 63; + take, deliver, notify bitfifo.out; + load repeat counter with 11; + take, deliver, notify bitfifo.out; // mux on second input lut3.inLut: literal 226; - [74] deliver; + [*] deliver; lut3.in1: literal 18683; - [37] deliver; + load repeat counter with 37; deliver; literal 0; - [37] deliver; + load repeat counter with 37; deliver; lut3.in3: literal 12000; - [37] deliver; + load repeat counter with 37; deliver; literal 0; - [37] deliver; + load repeat counter with 37; deliver; lut3.out: [*] wait, take, sendto alu3.in2; alu3.in1: literal 0; deliver; [*] take, deliver; -alu3.in2: [1] notify lut3.out; [*] take, deliver, notify lut3.out; +alu3.in2: notify lut3.out; [*] take, deliver, notify lut3.out; alu3.in3: literal 0; deliver; [*] take, deliver; -alu3.out1: [74] take, sendto alu3.in1; -alu3.out2: [74] take, sendto alu3.in3; alu3.outBits: [*] take, sendto debug.in; +alu3.out1: [*] take, sendto alu3.in1; +alu3.out2: [*] take, sendto alu3.in3; debug.in: [*] take, deliver; diff --git a/ships/BitFifo.ship b/ships/BitFifo.ship index 371abe9..81aed63 100644 --- a/ships/BitFifo.ship +++ b/ships/BitFifo.ship @@ -442,7 +442,7 @@ public void service() { bitfifo.outOp: literal BitFifo.outOp[take=37]; [*] deliver; bitfifo.out: [*] take, sendto debug.in; debug.in: [*] take, deliver; -bitfifo.in: literal 1; [2] deliver; +bitfifo.in: literal 1; load repeat counter with 2; deliver; bitfifo.inOp: literal BitFifo.inOp[take=37]; diff --git a/ships/Fifo.ship b/ships/Fifo.ship index 663c524..bcaec4b 100644 --- a/ships/Fifo.ship +++ b/ships/Fifo.ship @@ -41,10 +41,17 @@ debug.in: [*] take, deliver; fifo.in: literal 9; deliver; - [100] take, deliver; + load repeat counter with 63; + take, deliver; + load repeat counter with 37; + take, deliver; + fifo.out: - [99] take, sendto fifo.in; - [1] take, sendto debug.in; + load repeat counter with 63; + take, sendto fifo.in; + load repeat counter with 36; + take, sendto fifo.in; + take, sendto debug.in; diff --git a/ships/Lut3.ship b/ships/Lut3.ship index 72a51dd..6b68cc5 100644 --- a/ships/Lut3.ship +++ b/ships/Lut3.ship @@ -375,17 +375,25 @@ lut.out: [*] take, sendto debug.in; // cycle through truth tables using alu as INC alu.inOp: literal 1; - [120] deliver; - [120] deliver; - [15] deliver; + load repeat counter with 63; + deliver; + load repeat counter with 63; + deliver; + load repeat counter with 63; + deliver; + load repeat counter with 63; + deliver; + load repeat counter with 3; + deliver; alu.in: literal 0; deliver; [*] take, deliver; alu.out: clog; - wait, take, sendto lut.inLut, requeue forever; - sendto alu.in, requeue forever; + load loop counter with 2; + wait, take, sendto lut.inLut; + sendto alu.in; unclog; // acks from debug ship trigger new truth tables diff --git a/tests/memory/count.and.stride.fleet b/tests/memory/count.and.stride.fleet index 959490e..93a2012 100644 --- a/tests/memory/count.and.stride.fleet +++ b/tests/memory/count.and.stride.fleet @@ -30,13 +30,13 @@ fifo.in: [*] take, deliver; // send write-completion tokens to the fifo output memory.out: - [4] take, notify fifo.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: - [4] wait; + load repeat counter with 4; wait; take, sendto memory.inAddrRead; // read addresses diff --git a/tests/memory/memory-test.fleet b/tests/memory/memory-test.fleet index 7c16fa2..84edfa7 100644 --- a/tests/memory/memory-test.fleet +++ b/tests/memory/memory-test.fleet @@ -15,7 +15,7 @@ memory.inAddrRead: [*] take, deliver; // send write-completion tokens to the fifo output memory.out: - [4] take, notify fifo.out; + load repeat counter with 4; take, notify fifo.out; [*] take, sendto debug.in; memory.inAddrWrite: literal 1; deliver; @@ -33,8 +33,8 @@ memory.inDataWrite: literal 14; deliver; // when the write-completion tokens accumulate, unleash // the read addresses fifo.out: - [4] wait; - [4] take, sendto memory.inAddrRead; + load repeat counter with 4; wait; + load repeat counter with 4; take, sendto memory.inAddrRead; fifo.in: literal 4; deliver; diff --git a/tests/pump/standing-instructions-do-not-alter-repeat-count.fleet b/tests/pump/standing-instructions-do-not-alter-repeat-count.fleet new file mode 100644 index 0000000..c6100bf --- /dev/null +++ b/tests/pump/standing-instructions-do-not-alter-repeat-count.fleet @@ -0,0 +1,34 @@ +#expect 3 +#expect 3 +#expect 3 +#expect 3 +#expect 1 + +#ship debug : Debug +#ship memory : Memory +#ship fifo : Fifo + +debug.in: [*] take, deliver; + +fifo.in: + literal 5; + deliver; + +fifo.out: + literal 5; + load repeat counter; + [*] wait, notify memory.inCBD; + literal 3; + literal 3; + sendto debug.in; + literal 1; + sendto debug.in; + +memory.inCBD: + notify fifo.out; + take; + literal { + fifo.out: + kill; + }; + deliver; diff --git a/tests/pump/test-count.fleet b/tests/pump/test-count.fleet index a6d3015..7366f08 100644 --- a/tests/pump/test-count.fleet +++ b/tests/pump/test-count.fleet @@ -105,5 +105,8 @@ debug.in: literal 9; - [100] deliver; + load repeat counter with 63; + deliver; + load repeat counter with 37; + deliver; diff --git a/tests/pump/test-massacre.fleet b/tests/pump/test-massacre.fleet index 8f17d6f..74b162d 100644 --- a/tests/pump/test-massacre.fleet +++ b/tests/pump/test-massacre.fleet @@ -2,18 +2,19 @@ #expect 7 #expect 7 #expect 7 -#expect 7 #expect 9 #ship debug : Debug #ship memory : Memory #ship fifo : Fifo -debug.in: [*] take, deliver, notify fifo.in; +debug.in: + load repeat counter with 3; take, deliver, notify fifo.in; + [*] take, deliver; fifo.out: notify fifo.in; - [4] take, sendto debug.in; + load repeat counter with 4; take, sendto debug.in; notify memory.inCBD; [*] take, sendto debug.in; @@ -25,7 +26,7 @@ memory.inCBD: take; literal { fifo.in: - //take; + take; massacre; literal 9; deliver; diff --git a/tests/pump/test-read-loop-counter-from-data-latch.fleet b/tests/pump/test-read-loop-counter-from-data-latch.fleet index d6fcbcb..3265ece 100644 --- a/tests/pump/test-read-loop-counter-from-data-latch.fleet +++ b/tests/pump/test-read-loop-counter-from-data-latch.fleet @@ -8,15 +8,18 @@ debug.in: [*] take, deliver; +fifo.in: + literal 5; + deliver; + fifo.out: take; sendto debug.in; + clog; load loop counter; literal 0; sendto debug.in; take loop counter; - sendto debug.in; - -fifo.in: literal 5; - deliver; + sendto debug.in; + unclog; diff --git a/tests/pump/test-read-loop-counter-literal.fleet b/tests/pump/test-read-loop-counter-literal.fleet new file mode 100644 index 0000000..d3ffa3f --- /dev/null +++ b/tests/pump/test-read-loop-counter-literal.fleet @@ -0,0 +1,18 @@ +#expect 7 + +#ship debug : Debug +#ship memory : Memory +#ship fifo : Fifo + +debug.in: [*] take, deliver; + +fifo.out: + take, sendto debug.in; + +fifo.in: + clog; + load loop counter with 7; + literal 3; + take loop counter; + deliver; + unclog; diff --git a/tests/pump/test-read-loop-counter.fleet b/tests/pump/test-read-loop-counter.fleet index 0fdee1b..64e0344 100644 --- a/tests/pump/test-read-loop-counter.fleet +++ b/tests/pump/test-read-loop-counter.fleet @@ -1,4 +1,4 @@ -#expect 5 +#expect 7 #ship debug : Debug #ship memory : Memory @@ -7,6 +7,13 @@ debug.in: [*] take, deliver; fifo.out: - load loop counter with 5; + literal 7; + sendto fifo.in; + load repeat counter with 2; take, sendto debug.in; + +fifo.in: + take; + load loop counter; + literal 0; take loop counter; - sendto debug.in; + deliver; diff --git a/tests/pump/test-repeat-counter.fleet b/tests/pump/test-repeat-counter.fleet new file mode 100644 index 0000000..af139b9 --- /dev/null +++ b/tests/pump/test-repeat-counter.fleet @@ -0,0 +1,22 @@ +#expect 5 +#expect 5 +#expect 5 +#expect 1 +#expect 2 + +#ship debug : Debug +#ship fifo : Fifo + +debug.in: [*] take, deliver; + +fifo.out: [*] take, sendto debug.in; + +fifo.in: + literal 5; + load repeat counter with 3; + deliver; + literal 1; + deliver; + literal 2; + deliver; + diff --git a/tests/pump/test-use-loop-counter.fleet b/tests/pump/test-use-loop-counter.fleet index cc59c70..9925eb4 100644 --- a/tests/pump/test-use-loop-counter.fleet +++ b/tests/pump/test-use-loop-counter.fleet @@ -22,4 +22,4 @@ fifo.in: fifo2.out: literal 7; - [4] sendto fifo.in; + load repeat counter with 4; sendto fifo.in; diff --git a/tests/pump/token-on-last-iteration.fleet b/tests/pump/token-on-last-iteration.fleet index 0d0d2e7..4367e27 100644 --- a/tests/pump/token-on-last-iteration.fleet +++ b/tests/pump/token-on-last-iteration.fleet @@ -7,16 +7,18 @@ #ship fifo : Fifo fifo.in: - literal 3; [3] deliver; - literal 2; [3] deliver; + literal 3; load repeat counter with 3; deliver; + literal 2; load repeat counter with 3; deliver; fifo.out: clog; - take, sendto debug.in, requeue 9 times; - notifyLast debug.in, requeue 3 times; + load loop counter with 9; + take, sendto debug.in; + notifyLast debug.in; + decrement loop counter; unclog; debug.in: - [4] take; + load repeat counter with 4; take; [*] take, deliver; diff --git a/tests/requeue/requeue-expire.fleet b/tests/requeue/requeue-expire.fleet index 89a9ff3..562cf7c 100644 --- a/tests/requeue/requeue-expire.fleet +++ b/tests/requeue/requeue-expire.fleet @@ -1,6 +1,8 @@ #expect 9 +#expect 2 #expect 8 -#expect 8 +#expect 1 +#expect 7 #ship debug : Debug #ship fifo : Fifo @@ -11,8 +13,12 @@ fifo.out: [*] take, sendto debug.in; debug.in: clog; - take, requeue 2 times; - deliver, requeue 3 times; + load loop counter with 3; + take; + deliver; + decrement loop counter; + take loop counter; + deliver; unclog; diff --git a/tests/requeue/requeueing-literal.fleet b/tests/requeue/requeueing-literal.fleet index 3e20147..3068091 100644 --- a/tests/requeue/requeueing-literal.fleet +++ b/tests/requeue/requeueing-literal.fleet @@ -10,17 +10,18 @@ fifo.in: literal 9; - [6] deliver; + load repeat counter with 6; deliver; debug.in: [*] take, deliver; fifo.out: clog; - literal 5, requeue 3 times; - sendto debug.in, requeue 3 times; - take, requeue 3 times; - sendto debug.in, requeue 3 times; + load loop counter with 3; + literal 5; + sendto debug.in; + take; + sendto debug.in; unclog; diff --git a/tests/requeue/test-kill-requeueing.fleet b/tests/requeue/test-kill-requeueing.fleet index aea4da3..7b783eb 100644 --- a/tests/requeue/test-kill-requeueing.fleet +++ b/tests/requeue/test-kill-requeueing.fleet @@ -12,22 +12,23 @@ debug.in: [*] take, deliver, notify fifo.in; fifo.out: notify fifo.in; - [4] take, sendto debug.in; + load repeat counter with 4; take, sendto debug.in; notify memory.inCBD; [*] take, sendto debug.in; fifo.in: clog; - take, requeue forever; - literal 7, requeue forever; - deliver, requeue forever; + load loop counter with 63; + take; + literal 7; + deliver; unclog; memory.inCBD: take; literal { fifo.in: - kill 4; // extra instruction due to literal! + massacre; // extra instruction due to literal! literal 8; deliver; notify memory.inCBD; diff --git a/tests/requeue/test-requeue.fleet b/tests/requeue/test-requeue.fleet index ec0e15f..aa80e20 100644 --- a/tests/requeue/test-requeue.fleet +++ b/tests/requeue/test-requeue.fleet @@ -1,11 +1,11 @@ #expect 6 #expect 6 #expect 6 +#expect 6 +#expect 10 #expect 10 #expect 10 #expect 10 -#expect 14 -#expect 14 #expect 14 #expect 14 #expect 14 @@ -14,62 +14,53 @@ #expect 18 #expect 18 #expect 18 -#expect 18 -#expect 18 -#expect 22 #expect 22 #expect 22 #expect 22 #expect 22 -#expect 22 -#expect 26 #expect 26 #expect 26 #expect 26 #expect 26 -#expect 26 -#expect 30 #expect 30 #expect 30 #expect 30 #expect 30 -#expect 30 -#expect 34 -#expect 34 -#expect 34 -#expect 34 -#expect 34 -#expect 34 -#expect 34 -#expect 34 -#expect 34 -#expect 34 #expect 34 #expect 34 #expect 34 #expect 34 +#expect 38 +#expect 38 +#expect 38 +#expect 38 +#expect 42 +#expect 42 +#expect 42 +#expect 42 +#expect 46 #ship alu : Alu2 #ship debug : Debug -#ship f : Fifo - -f.in: literal 2; deliver; literal 4; deliver; -f.out: take, sendto alu.in1; - take, sendto alu.in2; -alu.in1: clog; - take, deliver, requeue forever; - deliver, requeue forever; - discard, requeue forever; - deliver, requeue 4 times ; - unclog; -alu.in2: take; - [*] deliver; alu.inOp: literal Alu2.inOp[ADD]; [*] deliver; alu.out: clog; - take, sendto alu.in1, requeue 40 times; - sendto debug.in, requeue 50 times; + load loop counter with 40; + take, sendto alu.in1; + sendto debug.in; + decrement loop counter; unclog; debug.in: [*] take, deliver; +alu.in2: literal 4; + [*] deliver; +alu.in1: literal 2; + load repeat counter with 4; deliver; + clog; + load loop counter with 2; + take, deliver; + discard; + deliver; + unclog; + -- 1.7.10.4