I am facing a very peculiar issue in scoreboard.
The monitor sends multiple transactions to the scoreboard and these are buffered before getting processed.
I realized that the data that is popped out of the scoreboard seemed incorrect.
So, I have put uvm debug message to check what is getting into queue every time a transaction is written to the queue.
So, essentially, every time a transaction is pushed into the queue, i iterate through the entire queue and print.
What I see is that the entire queue always contains latest transactions only.
For example,
1 transaction write - push value 1; print displays 1
2 transaction write - push value 2; print displays 2 2
3 transaction write - push value 3; print displays 3 3 3
I have checked the monitor that sends the transaction. It creates new objects before transactions and then calls write method of scoreboard.
Any inputs would be highly appreciated.
PS: I don't have a small example to demonstrate it currently. I am working on it.