Why is this an issue?

A connection (or part of a connection) between an external net and an internal net port has inconsistent net types. The SystemVerilog standard defines which combinations of net types are inconsistent and should produce a warning. See SystemVerilog Standard: 23.3.3.7 - Port connections with dissimilar net types (net and port collapsing) for more detail.

How to fix it

Code examples

Noncompliant code example

module fly (input .a({b, {c[1:0], d}}));
  wand b;
  wand [3:0] c;
  supply0 d;
endmodule

module top;
  wand a;
  wor b;
  trireg [1:0] c;

  // net type 'wor' of connection bits [2:2] is inconsistent with net type 'wand' of corresponding port range
  // net type 'trireg' of connection bits [1:1] is inconsistent with net type 'wand' of corresponding port range
  fly fly1({a, b, c});
endmodule