`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(50005, 0403) `WAIT `WAIT `WAIT `WRITE(50120, 0120) `READ (50005, 0403) `READ (50120, 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(0001a, 0a1b) // Only values written until this point will also be checked by master 0 `DESELECT `READ (0001a, 0a1b) // Let's force some interleaved single operations by both masters `WRITE(4001c, 0a1b) `DESELECT `WRITE(9003e, 2c3d) `DESELECT `READ (9003e, 2c3d) `DESELECT `READ (4001c, 0a1b) `DESELECT `WRITE(d0050, 4e5f) `DESELECT `WRITE(20072, 6071) `DESELECT `READ (20072, 6071) `DESELECT `READ (d0050, 4e5f) `DESELECT // See comment at the end of master 0's operations - we do it analogously here `READ (00000, abcd) `READ (a1010, a2a2) `READ (50001, 4321)