我正在嘗試學習Verilog,並且我有一個Verilog模塊,然後調用另一個文件並從當前模塊中運行該模塊。來自另一個Verilog模塊的調用任務
所以,我有我的模塊,如:
module maths();
//register etc details
initial begin
`include "add.v"
end
endmodule
和我add.v文件正在從數學模塊調用就像是:
task add;
A = $random;
B = $random;
C = A + B;
$display("Answer: %d", C);
endtask
但我接收到來自錯誤任務文件near "task": syntax error, unexpected "task"
和near "endtask": syntax error, unexpected "endtask"
。
我在How to call tasks from a separate module in Verilog?上看到了答案,但是由於它在模塊中的初始塊內,因此需要從初始塊或總是塊中調用任務的答案沒有幫助。
我在哪裏出錯了?
@toolic它們在開始之前在父模塊中聲明 – Stussy
您不應將任務聲明放在初始塊內。在「initial」行之前移動include行。然後,調用'initial'塊內的任務。 – toolic
@toolic ok我已經這樣做了,但現在它給出了一個關於add.v文件的'BEGIN - END必須在任務/函數語句附近' – Stussy