UVM_ERROR: TEST_DONE_NOHIER

Hi,

I have C++ testbench and driving data from it and monitoring data in C++ testbench.

Now, I want to write functional coverage, so created UVM based testbench in parallel with C++ testbench and connecting interface to sample data in UVM testbench.

So UVM testbench don’t have driver/sequences/sequencer whole TB is passive just to collect data. to complete tests using C++ TB I am controlling UVM base_test drop objection from C++ at end of test, everything is working fine, I am able to collect functional coverage and sample it properly but getting this error


UVM_ERROR @ 51246.000000 ns: run [TEST_DONE_NOHIER] A non-hierarchical object, 'common.run' (<unknown>) was used in a call to uvm_test_done.drop_objection(). For this objection, a sequence or component is required.
UVM_FATAL @ 51246.000000 ns: run [OBJTN_ZERO] Object "common.run" attempted to drop objection 'run' count below zero

I know that this error is trying to say that I don’t have any sequence/sequencer and directly dropping objection to complete tests.

How can I resolve this UVM_ERROR and UVM_FATAL ?

In reply to J_M:

See what is common.run object and when dose it try to drop objection? | Verification Academy