Specman:为什么 MAIN 序列完成后测试还没有完成?

Specman: Why test has not finished after the MAIN sequence is finished?

我编写的测试在 MAIN 序列完成后没有完成。 我没有提出TEST_DONE反对意见..我提出的反对意见都被取消了。 实际上,测试在所有序列的流程完成后很久就完成了,在 TEST BENCH 超时.. 您知道什么可能会阻止测试结束吗? 非常感谢您提供的任何帮助。

问题是我覆盖了 vr_ad_sequencepost_body() 方法,结果发现它删除了 TEST_DONE(Specman UVM vr_ad 包)。问题代码:

为了防止测试在我的所有反对意见被删除之前结束,添加了下一个代码:

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 );
    };
};

解决方案是:将“is only”更改为“is first”。