aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/issue1658/issue_1658.vhdl
blob: 53b68881a21791947bcab64951e9ced7513e81e3 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
library ieee;
  use ieee.std_logic_1164.all;


entity issue is
  port (
    clk : in std_logic
  );
end entity issue;


architecture psl of issue is

  attribute anyconst : boolean;
  
  signal a: natural;
  attribute anyconst of a : signal is true;

begin

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

  -- works
  assume always a = 42;
  assert always a = 42;

  -- Error occurs when using a generate statement
  testG : if true generate

    signal b : natural;
    attribute anyconst of b : signal is true;

  begin

    -- works
    GEN_ASSUME : assume always b = 23;
    GEN_ASSERT : assert always b = 23;

  end generate testG;

  -- Same error occurs when using a block statement
  testB : block is

    signal c : natural;
    attribute anyconst of c : signal is true;

  begin

    -- works
    BLK_ASSUME : assume always c = 11;
    BLK_ASSERT : assert always c = 11;

  end block testB;


end architecture psl;