UVM Phases

What is the functions of EXTRACT PHASE, CHECK PHASE, REPORT PHASE, FINAL PHASE? With example.

In reply to Sivasankaran M:

There is no specific function enabled by these phases and they are rarely used. Most tests are able to determine that they have passed by reaching the end of the run_phase and the existence of any errors reported during the run phase is enough to trigger any downstream analysis scripts or tools that the test has failed. I do know that the intent of these phases was to be used by scoreboards to check if certain FIFOs had been emptied by the end of a test, but I have not been able to find any examples of it.

Once you have finished the run_phase, the only way to synchronize communication between components is to have an ordered set of phases. This is because there are no longer multiple parallel phase threads running - everything is now an ordered set of function calls.

Why does the UVM need four of these phases? Attribute that to a combination of legacy and design by committee. I’ve only seen the report_phase used to print statistics gathered by running a test, and maybe the extract_phase to help gather some of the data before computing the statistics.

In reply to dave_59:
Thank you Dave
What do we exactly do with coverage data in this extract_phase? If you found any example, please post it.