I have a master and slave style protocol, where the communication is full duplex with different wires.
That means master can send data and in parallel it can receive data from slave. And of course the slave can send data based on master request, together with its other data sending. Usually in normal mode slave constantly measures and sends data to master.
May question is how to model Slave using UVM.
I want to use 1 agent to keep my code simple. But the issue is driver- sequence communication.
When my UVC is slave, than UVC should sends it data and in parallel it should track the master. And if master sends request slave should know this in parallel.
I think this cannot be done this using REQ, RSP mechanism, like make slave2master as REQ and master2slave as RSP.
But this will not work because when sequence sends REQ at the same time master may send frame i.e. driver should send RSP to sequence, interrupting REQ. Which is wrong in point of the protocol