Why is this an issue?

The ports defined in a component should be the same as the ones defined in the corresponding entity.

How to fix it

Code examples

Noncompliant code example

entity inv is
  port(
    a : in std_logic;
    f : out std_logic
  );
end;

entity mux2i is
  port(
    a, b : in std_logic;
    f : out std_logic
  );
end;

architecture a of mux2i is
  component inv is
    port(
      a : in std_logic;
      g : out std_logic -- Noncompliant: 'g' port does not correspond to the 'inv' entity ports names
    );
  end component;
begin
end;

Compliant solution

entity inv is
  port(
    a : in std_logic;
    f : out std_logic
  );
end;

entity mux2i is
  port(
    a, b : in std_logic;
    f : out std_logic
  );
end;

architecture a of mux2i is
  component inv is
    port(
      a : in std_logic;
      f : out std_logic
    );
  end component;
begin
end;

Resources

Related rules