While (this.vif.monitor_cb.psel !== 1'b1 || this.vif.monitor_cb.penable !== 1'b0);

what is the meaning of above line.
is loop is infinite. ie it stays in that loop untill condition become true.
the above line is example of apb slave.

is we can take (psel==0 || penable == 1) in order to wait for set up cycle in apb_monitor.

Its getting confusion.

Please answer me. Thanks in advance.

You are correct; it is a potentially infinite loop. There needs to be a blocking statement inside the loop or some other mechanism to get the expression to change to false if it started out true. If you see this in “working code” , it either was always false when executed, or was never executed.

In reply to manjunathkarpur:

There is nothing in execution while it is waiting for true conditions for PSEL and PENABLE. so for combinations 00, 01, 11 monitor will do nothing.
But when it will see condition 10 , PSEL =1, PENABLE=0, at that time it will understand that when for driver this condition was true , there was data on PWDATA. So for the same 10 condition monitor will take data through the interface and do its work.

If you are able to see waveform for monitor and driver signals you will find that monitor will leg behind by 1 cycle. Or i guess you can check same by putting $display statements.

You are doing this in APB Monitor right?