tonywmnix Posted April 22, 2013 Report Share Posted April 22, 2013 Hello, I was wondering if anyone had any ideas on why my test is hanging at the end of the run phase and how to resolve it correctly. The last of the output is listed below. The testbench has a series of agents, each including a monitor, producer driver, consumer driver, and scoreboard. At the end of the run phase when the test is hanging I'm able to step through code and see it's executing in a forever loop in the monitor and consumer driver. In both of these I'm never raising any objection. Tracing through the UVM code it seems it's waiting for all threads to exit before moving on. Some questions: Why should it wait for threads to exit if they never raised any objection? Do I need to kill these threads? What is the best practice? thanks! UVM_INFO uvm_objection.svh(1245) @ 31166250: reporter [TEST_DONE] All end-of-test objections have been dropped. Calling stop tasks UVM_INFO uvm_objection.svh(1268) @ 31166250: reporter [TEST_DONE] 'run' phase is ready to proceed to the 'extract' phase UVM_INFO uvm_phase.svh(1199) @ 31166250: reporter [PH/TRC/EXE/ALLDROP] Phase 'common.run' (id=255) PHASE EXIT ALL_DROPPED Quote Link to comment Share on other sites More sharing options...
tonywmnix Posted April 23, 2013 Author Report Share Posted April 23, 2013 After some digging I found there was an objection in the main_phase and I was querying for objections in the run_phase. Quote Link to comment Share on other sites More sharing options...
David Long Posted April 23, 2013 Report Share Posted April 23, 2013 Unless you really need the finer granularity of the separate run-time phases (reset,configure,main, etc), I would strongly recommend doing everything in the run_phase only. As you have found. raising and dropping objections in both run_phase and main_phase can be quite tricky to debug when it doesn't work as expected! Regards, Dave Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.