我在尝试实例化 new() 函数时看到以下错误。
错误-[SV-ACCNBI]抽象类无法实例化 model_dpi_module, "umc_uvc_ptr = new("umc_uvc_ptr", null);" 无法实例化对象“umc_uvc_ptr”,因为它的类型 “uvm_component”是一个抽象基类。 也许应该使用一个派生类。
代码如下:
module model_dpi_module
task abc_model_dpi(int pkg,int inst);
uvm_component umc_uvc_ptr;
**umc_uvc_ptr = new("umc_uvc_ptr", null);**
umc_uvc_ptr = uvm_top.find($sformatf("uvm_test_top.example_uvc.export_uvc_%0d_%0d_%0d", 0, inst, inst));
umc_uvc[pkg][inst].if_env[0].run_model_init(0, 0,0);
endtask : ddr_model_dpi
谢谢,
是否处于模块中与此无关。您无法在
new
的实例上构造(调用 uvm_component
)。毫无意义。
您不需要构造任何东西,因为下一行将把一个句柄放入
umc_uvc_ptr
。