|
|
@ -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; |