← 2024 · 芯原 · 数字IC设计 笔试

推荐答案 测试一下

When using uvm_config_db to pass some configuration in testbench, which of the following is the correct method?

A. uvm_config_db#(uvm_object_wrapper)::set(this, "path", this) B. uvm_config_db#(uvm_object_wrapper)::set(null, "*", this) C. uvm_config_db#(uvm_object_wrapper)::set(this, "path", value) D. uvm_config_db#(uvm_object_wrapper)::set("inst_name", "path", value)
多选题 中等 2024秋招笔试真题Online Assessment芯原不定项

参考答案

正确答案为C。uvm_config_db#(T)::set方法的正确调用格式为:uvm_config_db#(T)::set(uvm_component cntxt, string inst_name, T value)。其中第一个参数cntxt必须是uvm_component类型或null,不能是字符串;第二个参数inst_name是路径字符串,支持通配符;第三个参数value的类型必须与模板参数T一致。选项C中,第一个参数this(通常在组件中调用时是uvm_component子类)符合要求,第二个参数"path"是合法路径,第三个参数value类型必须为uvm_object_wrapper。选项A和B的错误在于第三个参数使用了this,而this通常不是uvm_object_wrapper类型(除非当前类直接继承自uvm_object_wrapper,但这在测试平台中很少见),会导致类型不匹配或编译错误。选项D的第一个参数是字符串"inst_name",不符合cntxt应为uvm_component或null的要求。因此只有C正确。

涉及知识点

  • uvm_config_db::set参数顺序及类型
  • uvm_object_wrapper与factory机制
  • cntxt参数的作用:null表示全局,this表示局部
  • inst_name支持通配符*和具体路径
  • 类型匹配:value必须与模板参数T一致
← 上一题
登录后反馈错题
下一题 →