I want to access (or check and report an uvm_error) during uvm report_phase.
This need to be done from within system verilog interface module.
Using ‘final’ instead of report_phase doesn’t go well with the current verification flow.
As you might know the UVM phasing is related to the classes and not to modules and interfaces.
I would be interested why you want to use the report phase out of an interface.
TB has few stand alone interfaces which does checking, just want to ensure certain level of checks happened before simulation ends. Would like it to happen inn interface so that all is contained within the interface as opposed probing/managing it externally.
Doing that in report phase also works well with the overall dv regressions scripts.
The report_phase is a UVM phase which will be executed after the run_phase, i.e. after the simulation run itself has ended.
I understand from your explanation you want to implement some uvm_info to indicate your checks were successful or some uvm_error to show something went wrong. Right?
Phase mechanism only for classes (specially for Components in UVM testbench architecture),
while interface and module are static entity we can’t use phase mechanism .