`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)