我是Verilog的新手,如果有人可以帮助我,我会非常感激。
我的任务写在一个单独的文件中 - " task.v" :
module task_create();
task assign_inp;
reg a,b,c,d;
//details
endtask
endmodule
我有一个调用此任务的模块:
module tb();
`include "task.v"
assign_inp(a,b,c,d);
endmodule
当我执行此操作时,我收到此错误:
模块定义task_create无法嵌套到模块tb
中
当我在task.v中删除模块和endmodule时,我收到此错误:
任务必须包含在模块
中
我哪里错了?非常感谢你!
答案 0 :(得分:1)
您在模块中的任务只能在模块中看到。你可以做的是删除模块包装器,只需在单独的文件中声明任务。
task assign_inp;
reg a,b,c,d;
//details
endtask
您可以包含该任务,您应该能够看到该任务。
删除模块对我有用。
编辑:您可能需要将verilog文件声明为任务的头文件