Marina/MarinaTest.java: a few hacks to get the silicon working
[fleet.git] / tests / ndp / p-plus.fleet-
1
2 #expect 0
3
4 #ship mem1  : Memory
5 #ship mem2  : Memory
6 #ship mem3  : Memory
7 #ship alu   : Alu2
8 #ship counter1   : Alu2
9 #ship counter2   : Alu2
10 #ship debug : Debug
11
12 debug.in:   set ilc=*;  recv, deliver;
13 mem1.inCBD:
14   set word= SETUP; deliver;
15   recv;
16   recv;
17   set word= GO; deliver;
18
19 SETUP: {
20 mem1.inAddrWrite: set word= 1000; [11] deliver;
21 mem1.inDataWrite:
22   set word= 10; deliver;
23   set word= 1;  deliver;
24   set word= 2;  deliver;
25   set word= 3;  deliver;
26   set word= 4;  deliver;
27   set word= 5;  deliver;
28   set word= 6;  deliver;
29   set word= 7;  deliver;
30   set word= 8;  deliver;
31   set word= 9;  deliver;
32 mem1.out:
33   [11] collect;
34   send token to mem1.inCBD;
35 mem2.inAddrWrite: set word= 1000; [11] deliver;
36 mem2.inDataWrite:
37   set word= 10; deliver;
38   set word= 1;  deliver;
39   set word= 2;  deliver;
40   set word= 3;  deliver;
41   set word= 4;  deliver;
42   set word= 5;  deliver;
43   set word= 6;  deliver;
44   set word= 7;  deliver;
45   set word= 8;  deliver;
46   set word= 9;  deliver;
47 mem2.out:
48   [11] collect;
49   send token to mem1.inCBD;
50 }
51
52 GO: {
53
54 mem1.inAddrRead:  set word= 1000; deliver;
55 mem2.inAddrRead:  set word= 1000; deliver;
56
57 // normally we would write to memory, but here we send to debug
58 //mem3.inAddrWrite: set word= 0; deliver;
59 //mem3.out:         set ilc=*;  collect, send to debug.in;
60
61 alu.in1:  set ilc=*;  recv, deliver;
62 alu.in2:  set ilc=*;  recv, deliver;
63 alu.inOp: set word= Alu2.inOp[MAX]; deliver; set word= Alu2.inOp[ADD]; set ilc=*;  deliver;
64 //alu.out:  set ilc=*;  collect, send to debug.in;
65
66 mem1.out:
67   collect;
68   send to counter1.in1;
69   send to alu.in1;
70   set ilc=data;
71   collect, send to alu.in1;
72 mem2.out:
73   collect;
74   send to counter2.in1;
75   send to alu.in2;
76   set ilc=data;
77   collect, send to alu.in2;
78
79 counter1.in1:  set word= 10; set ilc=data; set word= 1; deliver;
80 counter1.in2:  set word= 0; deliver; set ilc=*;  recv, deliver;
81 counter1.inOp: set word= Alu2.inOp[ADD]; set ilc=*;  deliver;
82 counter1.out:  set olc=1; collect; send to debug.in; unclog;
83
84 }