aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/issue662/psl_stable.vhdl
blob: 36d0011f667da135f556fc668103334b87626b21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
library ieee;
use ieee.std_logic_1164.all;

entity psl_stable is
  port (clk, a, b, c : in std_logic;
        d         : in std_logic_vector(3 downto 0)
  );
end entity psl_stable;


architecture psl of psl_stable is
begin

  -- All is sensitive to rising edge of clk
  default clock is rising_edge(clk);

  -- This assertion should fail at cycle 13
  STABLE_0_a : assert always {not a; a} |=> (stable(c) until_ b);

  -- This assertion holds
  STABLE_1_a : assert always {not a; a} |=> (stable(d) until_ b);

  -- This assertion should fail at cycle 13
  STABLE_2_a : assert always {not a; a} |=> (c = prev(c) until_ b);

  -- This assertion holds
  STABLE_3_a : assert always {not a; a} |=> (d = prev(d) until_ b);

end architecture psl;