| @ -0,0 +1,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; | |||||