a test I've wrote does not finishes after the MAIN sequence is finished. I did not raise TEST_DONE objection.. and the objections I did raised were all dropped. Actually the test finished long after all sequence's flow is done, on TEST BENCH timeout.. Do you have any idea what may prevent a test from ending? I really appreciate any help you can provide.
Asked
Active
Viewed 351 times
2
-
1If that's caused by a pending objection you could try "show objections" on the Specman command line. Is the simulation time still progressing in the end? – Thorsten Mar 04 '16 at 09:10
-
1on 2nd thought, the problem may be that you did NOT use TEST_DONE. In that case the test can only be stopped by a stop_run(). – Thorsten Mar 04 '16 at 09:23
1 Answers
2
The problem was that I've overridden the vr_ad_sequence
's post_body()
method and it turns out that it drops TEST_DONE
(Specman UVM vr_ad package). The problem code:
To prevent the test from ending before all MY objections were dropped, the next code was added:
extend MAIN vr_ad_sequence {
post_body()@sys.any is only {
// Wait till all (my) objections are dropped
sync true ( my_env.get_objection_counter(MY_OBJECTIONS) == 0 );
};
};
The solution was: Change "is only
" to "is first
".

Halona
- 1,475
- 1
- 15
- 26