aboutsummaryrefslogtreecommitdiff
path: root/tests/master_arbiter/operations1.memv
diff options
context:
space:
mode:
Diffstat (limited to 'tests/master_arbiter/operations1.memv')
-rw-r--r--tests/master_arbiter/operations1.memv190
1 files changed, 190 insertions, 0 deletions
diff --git a/tests/master_arbiter/operations1.memv b/tests/master_arbiter/operations1.memv
new file mode 100644
index 0000000..1900676
--- /dev/null
+++ b/tests/master_arbiter/operations1.memv
@@ -0,0 +1,190 @@
+`include "macroasm.vh" // look into macroasm.vh for more info
+
+// Those are the operations performed by master 1
+// (the one with worse priority in arbiter)
+`WRITE(30000, 03e8)
+`WAIT
+`READ (30000, 03e8)
+`WRITE(30005, 0403)
+`WAIT
+`WAIT
+`WAIT
+`WRITE(30120, 0120)
+`READ (30005, 0403)
+`READ (30120, 0120)
+`DESELECT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WRITE(b0005, 22ef)
+// Let's make the operations block significantly long.
+// If arbiter works properly, it should not allow master 0
+// to complete its operations in the meantime
+// (master 1's CYC_O is still high during `WAITs)
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`WAIT
+`READ (b0005, 22ef)
+`WRITE(3001a, 0a1b)
+// Only values written until this point will also be checked by master 0
+`DESELECT
+`READ (3001a, 0a1b)
+// Let's force some interleaved single operations by both masters
+`WRITE(3001c, 0a1b)
+`DESELECT
+`WRITE(3003e, 2c3d)
+`DESELECT
+`READ (3003e, 2c3d)
+`DESELECT
+`READ (3001c, 0a1b)
+`DESELECT
+`WRITE(30050, 4e5f)
+`DESELECT
+`WRITE(30072, 6071)
+`DESELECT
+`READ (30072, 6071)
+`DESELECT
+`READ (30050, 4e5f)
+`DESELECT
+// See comment at the end of master 0's operations - we do it analogoulys here
+`READ (00000, abcd)
+`READ (01010, a2a2)
+`READ (00001, 4321)