Hi
When I try running a test, i get an error "Cannot create a component of type TEST_DIR_PATH/test_name> because it is not registered with the factory ".
The test is registered with the factory `uvm_components_utils(“testclass name”)
When you register a component with the factory, you do not enclose the class name with quotes.
You should use `uvm_component_utils(testclass_name) (note no quotes).
Also, the error message seems to indicate that you are possibly including a path with the test name? You should specify only the class name with +UVM_TESTNAME (i.e. +UVM_TESTNAME=testclass_name).
Hi
The quotes was a mistake in the post. I have not used quotes.
If i do not mention the path of the test in the makefile, how will it know where to pick up tests from ?
Am new to UVM. Even if i do not mention the testname but just the testclass name(ie.if the name of my test is test1.sv and the name of the class is test1 , i include only the testclass name +UVM_TESTNAME = test1) ,I get the same error.
UVM WARNING Cannot create a component of type ‘test1’ because it is registered with the factory
UVM FATAL Requested test from command line +UVM_TESTNAME = test1 was not found.
Hi
I tried importing the package into the test top. The not registered with the factory error is gone. But for the test which starts with
class testclass_name extends uvm_test;
I get a sytax error in the first line the error being " Syntactically this identifier appears to begin a datatype but it does not refer to a visible datatype in the current scope"
Has anyone come across this error? If yes, any clue on how to resolve it?
Hey, I am facing exactly the same issue…
Did you get an answer…
I have registered the testname with factory…But dont know still why I am getting the same error!!!
I fixed this…
Actually the issue was uvmgen script generates some ifdefs automatically which was skipping the code of interest(factory registration).
Chagned the ifdefs and it worked.
Thanks,
Suyog