Siguiendo el código que probé en el área de juegos EDA con el comando agregado con + define + DEBUG, el interruptor DEBUG no parece estar funcionando. Su bloque siempre es sensible al error y esta variable está cambiando cuatro veces aquí, pero aún así el bloque no es sensible.
module test;
integer error;
event err;
initial
begin
#10 ->err;
#10 ->err;
#3 ->err;
#1 ->err;
#10 finish(error);
$display("%d",error);
end
initial error=0;
always@(err)
begin
error=error+1;
end
always@(error)
begin
'ifdef DEBUG
$display("Error at %d",$time);
'endif
end
task finish(wrong);
integer wrong;
begin
#10 if(wrong==0) $display("-----------TEST PASSED-----------");
else $display("---------------TEST FAILED---------------");
end
endtask
endmodule