Здравствуйте, уважаемые гуры.
Есть что-то типа такого:
Код
always @ (posedge Clk or posedge Reset)
begin
if (Reset)
begin
VarA <= 0;
VarB <= 0;
end
else
begin
simple_task(VarC, VarA);
simple_task(VarD, VarB);
end
end
task automatic simple_task;
input Var1;
output Var2;
begin
Var2 <= ~Var1;
end
endtask
2 переменные изменяются при помощи 2х экземпляров task'а.
Проблема в том, что если использовать присваивание "<=" , то синтезатор (Quartus 18) ругается - говорит, что нельзя automatic с таким присваиванием.
Использовать присваивание "=" можно и все ок, но с таким присваиванием проблемы дальше, т.е. оптимально, чтобы на выходе из этого блока было присваивание "<=".
Понятно, что можно сделать task'и и присваивание "=", а потом переприсвоить в другую переменную по "=>".
Но так громоздко, хочется написать проще.
Кто что посоветует?