| @ -0,0 +1,70 @@ | |||||
| library ieee; | |||||
| use ieee.std_logic_1164.all; | |||||
| entity issue is | |||||
| port ( | |||||
| clk : in std_logic | |||||
| ); | |||||
| end entity issue; | |||||
| architecture psl of issue is | |||||
| signal a : boolean := true; | |||||
| begin | |||||
| testG : if true generate | |||||
| signal b : boolean := true; | |||||
| signal c : boolean := false; | |||||
| begin | |||||
| c <= true; | |||||
| -- All is sensitive to rising edge of clk | |||||
| default clock is rising_edge(clk); | |||||
| -- This assertion works | |||||
| INITIAL_0_a : assert always a; | |||||
| -- This assertion generates an ghdl-yosys-plugin error | |||||
| -- ERROR: Assert `n.id != 0' failed in src/ghdl.cc:204. | |||||
| INITIAL_1_a : assert always b; | |||||
| -- This assertion works | |||||
| INITIAL_2_a : assert always c; | |||||
| end generate testG; | |||||
| -- Same error occurs when using a block instead of a generate | |||||
| -- statement | |||||
| testB : block is | |||||
| signal b : boolean := true; | |||||
| signal c : boolean := false; | |||||
| begin | |||||
| c <= true; | |||||
| -- All is sensitive to rising edge of clk | |||||
| default clock is rising_edge(clk); | |||||
| -- This assertion works | |||||
| INITIAL_0_a : assert always a; | |||||
| -- This assertion generates an ghdl-yosys-plugin error | |||||
| -- ERROR: Assert `n.id != 0' failed in src/ghdl.cc:204. | |||||
| INITIAL_1_a : assert always b; | |||||
| -- This assertion works | |||||
| INITIAL_2_a : assert always c; | |||||
| end block testB; | |||||
| end architecture psl; | |||||