aboutsummaryrefslogtreecommitdiff
path: root/tests/slave_dispatcher/operations.memv
diff options
context:
space:
mode:
Diffstat (limited to 'tests/slave_dispatcher/operations.memv')
-rw-r--r--tests/slave_dispatcher/operations.memv63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/slave_dispatcher/operations.memv b/tests/slave_dispatcher/operations.memv
new file mode 100644
index 0000000..8785d5c
--- /dev/null
+++ b/tests/slave_dispatcher/operations.memv
@@ -0,0 +1,63 @@
+`include "macroasm.vh" // look into macroasm.vh for more info
+
+// The beginning copied from self test, only 1st slave is being accessed.
+`WRITE(00000, abcd)
+`WAIT
+`READ (00000, abcd)
+`WRITE(00001, 1234)
+`READ (00000, abcd)
+`DESELECT
+`DESELECT
+`READ (00001, 1234)
+`WRITE(01010, a2a2)
+`WRITE(00001, 4321)
+`READ (01010, a2a2)
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`DESELECT
+`DESELECT
+`DESELECT
+`WAIT
+`DESELECT
+`WAIT
+`READ(00001, 4321)
+// Here, instructions targetting other slaves start appearing.
+// Go through all the slaves
+`WRITE(40040, efef)
+`WRITE(80002, 1f1f)
+`WRITE(c00c0, 1d1d)
+`READ (80002, 1f1f)
+`READ (c00c0, 1d1d)
+`READ (40040, efef)
+`WAIT
+`WAIT
+// Make a sequence of commands to slave 3 (addresses c0000 - fffff)
+`READ (c00c0, 1d1d)
+`WRITE(c1111, 0022)
+`READ (c00c0, 1d1d)
+`WRITE(c0001, 0001)
+`WRITE(c0002, 0002)
+`READ (c0001, 0001)
+`READ (c0002, 0002)
+`READ (c0001, 0001)
+`WRITE(c0003, 0003)
+`WRITE(c0002, 2222)
+`READ (c0002, 2222)
+`READ (c0003, 0003)
+`WRITE(fffff, 5555)
+`READ (c1111, 0022)
+// Put a single command to another slave in-between commands to slave 3
+`WRITE(4ffff, b6b6)
+`READ (fffff, 5555)
+`WRITE(eeeee, aaaa)
+`READ (eeeee, aaaa)
+// Let slave 3 take a breath now
+`READ (4ffff, b6b6)
+`DESELECT
+// We made writes to c0002 and c0001, make sure corresponding addreses
+// in other slaves were not overwritten by mistake
+`READ (80002, 1f1f)
+`READ (00001, 4321)