Нет, это не так.
В первом примере две задачи выполняются параллельно. Во втором они выполняются последовательно.
Вот крайний пример, когда вещи не только отличаются, но даже есть неприятный побочный эффект. Итак, давайте сначала определим часы и две задачи:
reg clk,a,b;
initial
begin
clk = 1'b0;
a = 1'b0;
b = 1'b0;
forever
#50 clk = ~clk;
end
task task1;
begin
#10;
a <= 1'b1;
#30;
a <= 1'b0;
end
endtask
task task2;
begin
#10;
b <= 1'b1;
#70;
b <= 1'b0;
end
endtask
Теперь, если мы будем вызывать задачи по отдельности, каждая из них заканчивается до конца тактового цикла.
always @(posedge clk) begin
task1;
end
always @(posedge clk) begin
task2;
end
Это дает следующую форму волны, в которой шаблон повторяется каждый такт, а две формы волны параллельны:
Если мы используем второй код, общее время в задании на больше, чем тактовый цикл .
always @(posedge clk)
begin
task1;
task2;
end
Это дает различную форму волны, в которой паттерны расположены последовательно, но также повторяется каждый секундный тактовый цикл.