aboutsummaryrefslogtreecommitdiff
`include "macroasm.vh" // look into macroasm.vh for more info

// Those are the operations performed by
// master 0 (the one prioritized by arbiter)
`WRITE(00000, abcd)
`WAIT
`READ (00000, abcd)
`WRITE(50001, 1234)
`READ (00000, abcd)
`DESELECT
`DESELECT
`READ (50001, 1234)
`WRITE(a1010, a2a2)
`WRITE(50001, 4321)
`READ (a1010, a2a2)
`WAIT
`WAIT
`WAIT
`WAIT
`WAIT
// Only values written until this point will also be checked by master 1
`DESELECT
`DESELECT
`DESELECT
`WAIT
`DESELECT
// Let's force some interleaved single operations by both masters
`WRITE(f041c, 8a9b)
`DESELECT
`WRITE(b043e, acbd)
`DESELECT
`READ (b043e, acbd)
`DESELECT
`READ (f041c, 8a9b)
`DESELECT
`WRITE(70450, cedf)
`DESELECT
`WRITE(00472, e0f1)
`DESELECT
`READ (00472, e0f1)
`DESELECT
`READ (70450, cedf)
`DESELECT
`WAIT
`READ (50001, 4321)
// The other master should write the values we check below during its first few
// blocks of operations. Although we have no means of synchronizing masters, we
// assume, that when 1 of them does a `DESELECT, other one can take over the
// bus. Because we do have `DESELECTs above, we can expect at least the first
// sets of other master's operations to have completed once we get here.
`READ (30000, 03e8)
`READ (50005, 0403)
`READ (50120, 0120)
`READ (b0005, 22ef)
`READ (0001a, 0a1b)