In reply to MayurKubavat:
wait(ready); //Without the CB
Do not to that! Never mix blocking event statements that are not synchronized to the clocking block event with the clocking block event. Another way to put that is once your process is synchronized to a clocking block event, only use the clocking block event. Otherwise you can easily get race conditions when waiting for the first @cb event after an unsynchronized event.
This should work for you:
cb.wren <= 0;
@(cb iff ready) // Wait until ready
cb.wren <= 1;
cb.data <= some_data;
@cb
cb.wren <= 0; // Clear