Why is this an issue?

An issue is raised when multiple edge transition directions are used for a clock within the same process.

How to fix it

Code examples

Noncompliant code example

p1 : process (clk) is -- Noncompliant: rising and falling
begin
  if rising_edge(clk) then
    s <= not s;
  end if;
  if falling_edge(clk) then
    s <= s;
  end if;
end process;

Compliant solution

p1 : process (clk) is
begin
  if rising_edge(clk) then
    s <= not s;
  end if;
end process;

p2 : process (clk) is
begin
  if falling_edge(clk) then
    s <= s;
  end if;
end process;