我正在尝试通过 DPI-C 将几个任务导出到 C 程序。这些任务在模块“my_subm”中定义为:
module my_subm;
task mytask1(...);
...
endtask
task mytask2(...);
...
endtask
endmodule
在我的主模块“main_mod”中,“my_subm”被实例化:
module main_mod;
my_subm my_subm_i ();
`include "dpic_exports.svh"
initial begin
...
end
endmodule
其中“dpic_exports.svh”是:
`ifndef DPIC_EXPORTS
`define DPIC_EXPORTS
export "DPI-C" task my_subm_i.mytask1;
export "DPI-C" task my_subm_i.mytask2;
`endif
尝试编译它时,我收到一条错误消息,指出在“dpic_exports.svh”中,my_subm_i 是分层名称的非法位置。
我究竟做错了什么?
我需要的是这些任务在“main_mod”的范围内可用,因为将访问它们的 C 任务是从该模块调用的。