While using 4display you cannot stop the simulation. But using the UVM reporting macros you can define an action, i.e. $stop.
The recommendation is never use $display in your UVM environment!
We are not using $display in our UVM environment, The $display is part of DUT which we verify.
While simulation is in progress, the DUT’s $display statement gets executed.
I cant change the DUT’s $display statement.
My requirement is that i want to make decision in my UVM Env based on this message.
Its not stored in any variable to make a decision.
Its a display statement like below one
$display(“Simulation Error: at 1000ns : [GenReqChk] Len1 of Wrapping Burst shall meet : Data/8 <=Len1”);
You can check for which condition design is executing that display statement( like in your case it’s when Data/8 <=Len1 fails), you can put the same condition in the tb , if that condition fulfills then you can use $stop.
Why is there a $display in design code? That’s certainly not synthesizable. Can you get them to change the $display into a macro that you can redefine to call uvm_pkg::uvm_report_error for your purposes?
I guess the DUT is in test-mode, thus there is a display in it.
Usually in our DUTs there are test-mode, which switch off several block and adds lots of $display to improve visibility.