| @ -0,0 +1,19 @@ | |||||
| [tasks] | |||||
| bmc | |||||
| [options] | |||||
| depth 25 | |||||
| bmc: mode bmc | |||||
| [engines] | |||||
| bmc: smtbmc z3 | |||||
| [script] | |||||
| bmc: ghdl --std=08 pkg.vhd sequencer.vhd hex_sequencer.vhd psl_onehot.vhd -e psl_onehot | |||||
| prep -top psl_onehot | |||||
| [files] | |||||
| ../src/pkg.vhd | |||||
| ../src/sequencer.vhd | |||||
| ../src/hex_sequencer.vhd | |||||
| ../src/psl_onehot.vhd | |||||
| @ -0,0 +1,19 @@ | |||||
| [tasks] | |||||
| bmc | |||||
| [options] | |||||
| depth 25 | |||||
| bmc: mode bmc | |||||
| [engines] | |||||
| bmc: smtbmc z3 | |||||
| [script] | |||||
| bmc: ghdl --std=08 pkg.vhd sequencer.vhd hex_sequencer.vhd psl_onehot0.vhd -e psl_onehot0 | |||||
| prep -top psl_onehot0 | |||||
| [files] | |||||
| ../src/pkg.vhd | |||||
| ../src/sequencer.vhd | |||||
| ../src/hex_sequencer.vhd | |||||
| ../src/psl_onehot0.vhd | |||||
| @ -0,0 +1,42 @@ | |||||
| library ieee; | |||||
| use ieee.std_logic_1164.all; | |||||
| use work.pkg.all; | |||||
| entity psl_onehot is | |||||
| port ( | |||||
| clk : in std_logic | |||||
| ); | |||||
| end entity psl_onehot; | |||||
| architecture psl of psl_onehot is | |||||
| signal a, b : std_logic_vector(3 downto 0); | |||||
| begin | |||||
| -- 012345678901234 | |||||
| SEQ_A : hex_sequencer generic map ("111222444888888") port map (clk, a); | |||||
| SEQ_B : hex_sequencer generic map ("111222444888999") port map (clk, b); | |||||
| -- All is sensitive to rising edge of clk | |||||
| default clock is rising_edge(clk); | |||||
| -- This assertion holds | |||||
| ONEHOT_0_a : assert always onehot(a); | |||||
| -- This assertion fails at cycle 12 | |||||
| ONEHOT_1_a : assert always onehot(b); | |||||
| -- Stop simulation after longest running sequencer is finished | |||||
| -- Simulation only code by using pragmas | |||||
| -- synthesis translate_off | |||||
| stop_sim(clk, 15); | |||||
| -- synthesis translate_on | |||||
| end architecture psl; | |||||
| @ -0,0 +1,42 @@ | |||||
| library ieee; | |||||
| use ieee.std_logic_1164.all; | |||||
| use work.pkg.all; | |||||
| entity psl_onehot0 is | |||||
| port ( | |||||
| clk : in std_logic | |||||
| ); | |||||
| end entity psl_onehot0; | |||||
| architecture psl of psl_onehot0 is | |||||
| signal a, b : std_logic_vector(3 downto 0); | |||||
| begin | |||||
| -- 012345678901234567 | |||||
| SEQ_A : hex_sequencer generic map ("000111222444888888") port map (clk, a); | |||||
| SEQ_B : hex_sequencer generic map ("000111222444888fff") port map (clk, b); | |||||
| -- All is sensitive to rising edge of clk | |||||
| default clock is rising_edge(clk); | |||||
| -- This assertion holds | |||||
| ONEHOT0_0_a : assert always onehot0(a); | |||||
| -- This assertion fails at cycle 15 | |||||
| ONEHOT0_1_a : assert always onehot0(b); | |||||
| -- Stop simulation after longest running sequencer is finished | |||||
| -- Simulation only code by using pragmas | |||||
| -- synthesis translate_off | |||||
| stop_sim(clk, 20); | |||||
| -- synthesis translate_on | |||||
| end architecture psl; | |||||