System verilog 非法分配到类mtiUvm.uvm_pkg::uvm_组件

System verilog 非法分配到类mtiUvm.uvm_pkg::uvm_组件,system-verilog,uvm,System Verilog,Uvm,我在尝试访问uvm_config_db以访问变量时遇到此错误。我在谷歌上搜索了一下,在Accelera论坛上找到了以下答案: 不能将其用作序列内的上下文;您必须依赖完整序列名。 有人能解释为什么会这样吗? 谢谢您为上下文传递给uvm\u config\u db::get/set的值,在您的情况下此必须引用uvm组件。基于context的值,构建配置设置应用的完整层次路径的路径。如果此是一个序列(不继承自uvm_组件),则它将没有固定的层次结构 我通常按顺序做的是: uvm_config_db

我在尝试访问uvm_config_db以访问变量时遇到此错误。我在谷歌上搜索了一下,在Accelera论坛上找到了以下答案:

不能将其用作序列内的上下文;您必须依赖完整序列名。

有人能解释为什么会这样吗?
谢谢

您为上下文传递给
uvm\u config\u db::get/set
的值,在您的情况下
必须引用uvm组件。基于
context
的值,构建配置设置应用的完整层次路径的路径。如果
是一个序列(不继承自
uvm_组件
),则它将没有固定的层次结构

我通常按顺序做的是:

uvm_config_db #(some_type)::get(p_sequencer, "", "some_field", some_field);

p\u sequencer
是一个UVM组件,您可以将配置设置应用于该sequencer上启动的任何序列。

编辑您的问题,使其更具体。将链接留在那里,但也将代码添加到那里,以便阅读问题的人更容易准确地理解问题所在。记住,目标不是这不仅仅是为了让你的问题得到答案,也是为了让其他人将来也能从中受益。