Hi,
While implementing the scoreboard, we take input from the VIP monitor as a whole transaction.
So when we do a read operation, the monitor provides raddr,rdata, etc. with the transaction.
I have made a queue of write transactions first and then compared the read with this queue.
But now I need to give priority to raddr than waddr of same address. For example,
1)Memory Write happened on x address.
2)raddr for x address came.
3)waddr,wdata,bresp happened for this x address. So the x address overwritten in the queue.
4)rdata of x address came.
But this rdata shows overwritten value.
I need that rdata to show the previous value in the memory write transaction as per protocol.
How to do it on the scoreboard?
When raddr comes and write is pending on the same address, I have to put this write transaction in a separate queue until raddr,rdata phases complete.
But as the raddr comes to the scoreboard as a whole transaction with data, I cannot separate raddr and do the above-mentioned procedure.
Regards
Sheetal