El siguiente código lo probé en el patio de juegos de EDA con el comando anexado con +define+DEBUG pero el interruptor DEBUG no parece estar funcionando. Su bloque siempre es sensible al error y esta variable está cambiando cuatro veces aquí, pero todavía el bloque no está siendo sensible.
http://www.edaplayground.com/x/7Cg
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