diff options
Diffstat (limited to 'tests/slave_dispatcher/operations.memv')
-rw-r--r-- | tests/slave_dispatcher/operations.memv | 63 |
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) |