Pre-processing before UVM_TIMEOUT

In reply to dave_59:

In my sims, I wait for all the sequences have been launched and finished, and then after all scoreboards finish their comparison jobs, then scoreboards will drop objections and terminate the sim.

In many cases, DUT did not operate as expected to generate all outputs, and so scoreboards were waiting for DUT outputs to compare. Eventually TB reached the +UVM_TIMEOUT value and failed out the sim. What I need is when TB raises the UVM_FATAL due to this timeout reason, I’d like to dump out scoreboard queue statuses.

The uvm_report_cb works, but I have to pass the scoreboard handles thru factory to the callback when it catches the UVM_FATAL. It seems to be overkill to handle this kind of error with callback. Since we specify +UVM_TIMEOUT for all sim environments, I don’t want to start another process in TB just for this.

Do you have a suggestion to handle this in a different or a better way?

Thanks,
Richard