Why is this an issue?

Active-high enables should be preferred over active-low enables.

How to fix it

Code examples

Noncompliant code example

process (clk, rst) is
begin
  if rst = '1' then
    o1 <= '0';
  elsif rising_edge(clk) then
    if enable = '0' then -- Noncompliant: Active-low enable
      o1 <= i1;
    end if;
  end if;
end process;

Compliant solution

process (clk, rst) is
begin
  if rst = '1' then
    o1 <= '0';
  elsif rising_edge(clk) then
    if enable = '1' then -- Compliant: Active-high enable
      o1 <= i1;
    end if;
  end if;
end process;

Resources

Related rules