Why is this an issue?

An implicit conversion changes the signedness of an integer type (from signed to unsigned or vice versa), which can lead to unexpected behaviors.

How to fix it

Code examples

Noncompliant code example

module fly;
  logic signed [31:0] a;
  logic [31:0] b;
  assign b = a;
endmodule

Compliant solution

module fly;
  logic signed [31:0] a;
  logic signed [31:0] b;
  assign b = a;
endmodule