我用谷歌搜索了错误,但我没有发现任何有用的东西。 Verilog代码:
`timescale 1us/1ns
module ShadyModule;
reg [3:0] num1,num2;
reg [4:0] res;
`include "ShadyTask.v"
initial
begin
num1 = 5;
num2 = 10;
$monitor ("num1= %d, num2=%d",num1,num2);
ShadyTask(num1,num2,res);
end
endmodule
ShadyTask.v
文件包含:
task ShadyTask;
input[3:0] num1,num2;
output[4:0] sum;
begin
sum = num1+num2;
end
endtask
我遇到了同样的问题,并基于此解决了它。确保ShadyTask.v不在模块内。如果您给出的是整个文件,它应该可以正常工作。但如果是
module ShadyTaskModule;
task ShadyTask;
input[3:0] num1,num2;
output[4:0] sum;
begin
sum = num1+num2;
end
endtask
endmodule
那行不通。