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