非法分配给类mtiUvm.uvm_pkg :: uvm_component

时间:2014-07-01 19:20:25

标签: system-verilog uvm

尝试访问uvm_config_db以访问变量时出现此错误。我用Google搜索并在accellera论坛上找到了以下答案:

http://forums.accellera.org/topic/406-compilation-error-regarding-illegal-class-assignment/

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

任何人都可以解释为什么会这样吗? 感谢

1 个答案:

答案 0 :(得分:1)

在您的案例uvm_config_db::get/set中,您为上下文传递给this的值必须引用UVM组件。基于context的值构造配置设置所应用的完整分层路径的路径。如果this是一个序列(不从uvm_component继承,那么它将没有固定的层次结构。

我通常在序列中做的是:

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

p_sequencer是一个UVM组件,您可以将配置设置应用于在该序列器上启动的任何序列。