Why is this an issue?

All output ports of a component should be mapped. Unused ports can be mapped with the open keyword.

How to fix it

Code examples

Noncompliant code example

architecture a of e is
  signal sa : std_logic;
  signal sb : std_logic;
  signal sx : std_logic;
  signal sy : std_logic;

  component comp
    port(
      a : in bit;
      b : in bit;
      x : out bit;
      y : out bit
    );
  end component;

begin
  g: comp port map (a => sa, b => sb, x => sx); -- Noncompliant: "y" is not mapped
end;

Compliant solution

architecture a of e is
  signal sa : std_logic;
  signal sb : std_logic;
  signal sx : std_logic;
  signal sy : std_logic;

  component comp
    port(
      a : in bit;
      b : in bit;
      x : out bit;
      y : out bit
    );
  end component;

begin
  g: comp port map (a => sa, b => sb, x => sx, y => sy); -- Compliant: "a", "b", "x" and "y" are mapped
end;

architecture a of e is
  signal sa : std_logic;
  signal sb : std_logic;
  signal sx : std_logic;
  signal sy : std_logic;

  component comp
    port(
      a : in bit;
      b : in bit;
      x : out bit;
      y : out bit
    );
  end component;

begin
  g: comp port map (a => sa, b => sb, x => sx, y => open); -- Compliant: "open" is used
end;