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 を削除すると、次のエラーが発生します。

タスクはモジュール内に含まれている必要があります

どこが間違っていますか?どうもありがとう!

4

1 に答える 1

1

あなたのタスクはモジュール内にあるため、モジュール内でのみ見ることができます。できることは、モジュール ラッパーを削除して、別のファイルでタスクを宣言するだけです。

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

タスクを含めることができ、タスクを表示できるはずです。

モジュールを削除するとうまくいきます。

編集: Verilog ファイルをタスクのヘッダー ファイルとして宣言する必要がある場合があります。

于 2016-06-03T23:57:37.100 に答える