UVM sequence scoreboard problem. in what order does the run_phase get executed?

In reply to Guozhu He:

while() begin
 if(getToken())
 break;
 end

Does getToken() have any blocking statements in it? Otherwise, this may lock up your simulator.

Forever begin
 if()
 freeToken();
 end

Why do you have a blank if() statement? I’m having trouble understanding the intent of your code. Could you post the freeToken and getToken methods?