【发布时间】:2017-11-09 10:56:15
【问题描述】:
我正在尝试通过 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 任务是从该模块调用的。
【问题讨论】:
标签: system-verilog system-verilog-dpi