Why is this an issue?

If a comparison operator has operands of differing signs, the signed operand will be treated as unsigned, which can lead to unexpected results.

How to fix it

Code examples

Noncompliant code example

module fly;
  int a = -1;
  int unsigned b = 1;
  initial begin
    if (a < b) begin
    end
  end
endmodule

Compliant solution

module fly;
  int unsigned a = 0;
  int unsigned b = 1;
  initial begin
    if (a < b) begin
    end
  end
endmodule