Skip to content

Compatible with cocotb 1.7.1

Compare
Choose a tag to compare
@raysalemi raysalemi released this 15 Oct 14:31
· 82 commits to master since this release

This release supports the new cocotb 1.7.1 release manager. However, the decorator @pyuvm.test() no longer supports the TESTCASE command line argument in cocotb.

TESTCASE problem with pyuvm.test()

** Thanks to @ktbarrett for fixing this**

The pyuvm.test() decorator wraps the cocotb.test() decorator, but changes to the cocotb regression manager make this approach incompatible with the TESTCASE command line argument. There is an easy workaround (which was actually the original conception of using pyuvm with cocotb.

Typically, one might make a pyuvm test like this:

@pyuvm.test()
class MyTest(uvm_test):
     # all the test things

This would create a test object that cocotb would recognize and launch as a test. However, you can no longer put TESTCASE=MyTest on the command line in cocotb 1.7. Instead, you do the following:

class MyTest(uvm_test):
  # all the test things

@cocotb.test()
async test_run_MyTest(_):
        uvm_root().run_test(MyTest)

This will run MyTest as you would expect and will work with TESTCASE=test_run_MyTest

Fixed bug in objections.

@mkorbel1 noticed that pyuvm did not handle the case where multiple components had raised and lowered objections to ending the test. pyuvm was ending when one run_phase() dropped all its objections but not all. He fixed the problem.

Thanks, @mkorbel1!