ためになるホームページ お問い合わせ




TOP > Verilog > タスク
タスクとは?
プログラミング言語の関数に相当するもの。引数やローカル変数を持つ。但し、戻り値はない。
(書式)
  task タスク名;
  //引数の宣言
  //処理...
  endtask
タスクはモジュール内で定義する。また、タスクの処理内でalwaysは使用できない。

タスクの例
module testbench;
reg CLK;
reg WEB;
reg [3:0] CNT;
parameter STEP = 10;

always #(STEP / 2) CLK = ~CLK;

initial begin
  $dumpfile("wave.vcd");
  $dumpvars(0, testbench);
  #0 CLK = 1;
  #0 CNT = 4'h0;
end

always @(posedge CLK)
  if (CNT == 4'hF)
    $finish;
  else
    write(1);


//task
task write;
  input ENB;
  CNT = (ENB == 1) ? CNT + 1 : CNT;
endtask

endmodule






Copyright 2007 ためになるホームページ All Rights Reserved.