How to generate expected results in apb_scoreboard

Hi all,
In the above link bus_monitor and monitor is observing the same interface. Even any changes made to DUT doesn’t result in any error. Is it possible to monitor signals given to driver(req) and generate pread (output signal) using some logic as expected and compare with actual,will that work. Suggestion on how to generate expected results will be a great help as I’m new to UVM.
Thank you.

In reply to Chandra Shekar N:

I do not understand what your 2 monitors are really doing, but coding the same mistake in both will not show any error.
pread is not valid in the same clock cycle as the addr and pwrite are provided to the DUT. Inspect your logfile and you’ll see pread is always 0.

In reply to chr_sue:

I have not mentioned any pread signal, whenever pwrite is low the read operation is happening. I’m able to observe the prdata(which is been written on to the memory). The issue here is Ive used two monitors, one in agent and the another one in environment, both are pointing towards same interface.

  1. Is there any way to generate expected results for apb?
  2. At which point of time I can sample the interface for the actual data?

https://drive.google.com/open?id=1vbsr3jfN2mo3mJM4M6weR0He5GZppqHx

In reply to Chandra Shekar N:

(1) You cannot predict data on the APB bus. What you can do is storing your WR data in an associative array and when reading you can compare the actual data with the written data. The assiciative array works like reference model.
(2) sampling point is defiend by the APB bus protocol/timing.

Looking to your waveforms I see you are reading from addresses you never wrote. Adopt your sequence to your needs.