I am trying to debug some legacy UVM code and cannot figure out what is happening. Anyway, during my efforts, I came across this function - print_config(1) which should print out the config database recursively. For some reason, while I get the hierarchy, the printout does not show the values stored. I only get:
# resources that are visible in uvm_test_top.env.raster_stroke_agent.driver.sqr_pull_port
# vif [/^.*\.env\.raster_stroke_agent\..*$/] : ?
# -
# th_testset_path [/^.*$/] : ?
# -
# th_testset_name [/^.*$/] : ?
# -
# th_testset_exp_path [/^.*$/] : ?
# -
# th_number_of_images [/^.*$/] : ?
# -
# th_cgs_red_lut_cfg_file_name [/^.*$/] : ?
# -
# th_cgs_green_lut_cfg_file_name [/^.*$/] : ?
# -
# th_cgs_blue_lut_cfg_file_name [/^.*$/] : ?
Why do I get the ? instead of actual values?
EDIT: So the basic problem I am having is while trying to read the field "testset_name" I get different values. so this is how it is structured:
base test: set_config_string ("", testset_name, "ABC") child test: set_config_string ("", testset_name, "JFK") grandchild test: set_config_string ("*", testset_name, "XYZ")
Now when I try to access this variable from sequence, I get "ABC". If I take out grandchild test "set_config_string", I get "JFK".
Shouldn't I be getting "XYZ"?
What is even more strange is the print_config printout:
# resources that are visible in uvm_test_top.env.raster_stroke_agent.driver
# vif [/^.*\.env\.raster_stroke_agent\..*$/] : ?
# -
# th_testset_path [/^.*$/] : ?
# -
# th_testset_name [/^.*$/] : ?
# -
# th_testset_exp_path [/^.*$/] : ?
# -
# th_number_of_images [/^.*$/] : ?
# -
# testset_path [/^uvm_test_top\..*$/] : ?
# -
# testset_name [/^uvm_test_top\..*$/] : ?
# -
# testset_name [/^uvm_test_top\..*$/] : ?
Why are there 2 entries for testset name under the same component???