Why is this an issue?

Direct instantiation should not be used.

How to fix it

Code examples

Noncompliant code example

architecture a of e is
begin
  DOES_SOMETHING : entity does_something(rtl) -- Noncompliant: Direct instantiation
    port map (
      a => a,
      b => b
    );
end architecture;

Compliant solution

architecture a of e is
  component does_something
  port (
    a : in std_logic;
    b : out std_logic
  );
  end component does_something;

begin
  DOES_SOMETHING : does_something
    port map (
      a => a,
      b => b
    );
end architecture;

Resources

Related rules