我正在尝试调试一些遗留的 UVM 代码,但无法弄清楚发生了什么。无论如何,在我努力的过程中,我遇到了这个函数——print_config(1),它应该递归地打印出配置数据库。出于某种原因,当我得到层次结构时,打印输出没有显示存储的值。我只得到:
# 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 [/^.*$/] : ?
为什么我会得到?而不是实际值?
编辑:所以我遇到的基本问题是在尝试读取“testset_name”字段时我得到不同的值。所以这是它的结构:
基础测试:set_config_string (" ", testset_name, "ABC") 子测试:set_config_string (" ", testset_name, "JFK") 孙子测试:set_config_string ("*", testset_name, "XYZ")
现在,当我尝试从序列中访问此变量时,我得到“ABC”。如果我取出孙子测试“set_config_string”,我会得到“JFK”。
我不应该得到“XYZ”吗?
更奇怪的是 print_config 打印输出:
# 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\..*$/] : ?
为什么同一组件下有 2 个测试集名称条目???