Compatible with cocotb 1.7.1
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!