In reply to verif_learner:
Processing all data in check_phase is very expensive. You have to collect all data, store them in a queue/fifo, it wastes the simulation resources. Incase your simulation has large traffic/data, that will be problem. So, if possible, you check them on-the-fly in write method or run_phase.