Today I released pyuvm 2.9.0. This release is compatible with cocotb 1.7 and fixes a bug with dropping objections. You can read the details here.
TESTCASE workaround
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.