task

Π—Π°Π΄Π°Ρ‡ΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя конструкции управлСния Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Как ΠΈ Ρƒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρƒ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€Ρ‘Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ: Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅, Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅.

Π—Π°Π΄Π°Ρ‡ΠΈ дСлятся Π½Π° статичСскиС ΠΈ автоматичСскиС. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС Π·Π°Π΄Π°Ρ‡ΠΈ статичСскиС. Π’ статичСских Π·Π°Π΄Π°Ρ‡Π°Ρ… всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² этой Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ автоматичСских всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запуска Π·Π°Π΄Π°Ρ‡ΠΈ.

Бинтаксис

// static task
task [name] (input [port_list], inout [port_list], output [port_list]);
  begin
    [statements]
  end
endtask

// automatic task
task automatic [name] (input [port_list], inout [port_list], output [port_list]);
  begin
    [statements]
  end
endtask

// Π—Π°Π΄Π°Ρ‡Π° с пустым листом ΠΏΠΎΡ€Ρ‚ΠΎΠ²
task [name] ();
  begin
    [statements]
  end
endtask

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ static task

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ automatic task

module static_task_tb;
  initial display();
  initial display();
  initial display();
  initial display();

  task display();
    integer i = 0;
    i = i + 1;
    $display("i=%0d", i);
  endtask
endmodule
module automatic_task_tb;
  initial display();
  initial display();
  initial display();
  initial display();

  task automatic display();
    integer i = 0;
    i = i + 1;
    $display("i=%0d", i);
  endtask
endmodule

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ исполнСния

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ исполнСния

i=1
i=2
i=3
i=4
i=1
i=1
i=1
i=1

ПояснСниС ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² Π·Π°Π΄Π°Ρ‡Π΅ создаётся пСрСмСнная i, которая Π² случаС статичСской Π·Π°Π΄Π°Ρ‡ΠΈ общая для всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… запусков Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ инициализируСтся Π² 0 ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π’ случаС автоматичСской Π·Π°Π΄Π°Ρ‡ΠΈ пСрСмСнная создаётся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ всС созданныС i ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСзависимыми Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

Last updated