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