如何从Verilog中的单独模块调用任务?

问题描述 投票:0回答:1

我是 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 时,出现此错误:

任务必须包含在模块内

我哪里错了?非常感谢!

task verilog iverilog
1个回答
2
投票

您的任务位于模块中,因此只能在模块中看到。您可以删除模块包装器并仅在单独的文件中声明任务。

task assign_inp;
    reg a,b,c,d;
    //details
endtask

您可以包含该任务,并且您应该能够看到该任务。

删除模块对我有用。

您可能需要将 Verilog 文件声明为任务的头文件

© www.soinside.com 2019 - 2024. All rights reserved.