@ -0,0 +1,28 @@ | |||||
[tasks] | |||||
sere_0 bmc | |||||
sere_1 bmc | |||||
sere_2 bmc | |||||
sere_3 bmc | |||||
all bmc | |||||
bmc all | |||||
[options] | |||||
depth 25 | |||||
bmc: mode bmc | |||||
[engines] | |||||
bmc: smtbmc z3 | |||||
[script] | |||||
sere_0: ghdl --std=08 -gformal=SERE_0 pkg.vhd sequencer.vhd psl_vunit.vhd psl_vunit.psl -e psl_vunit | |||||
sere_1: ghdl --std=08 -gformal=SERE_1 pkg.vhd sequencer.vhd psl_vunit.vhd psl_vunit.psl -e psl_vunit | |||||
sere_2: ghdl --std=08 -gformal=SERE_2 pkg.vhd sequencer.vhd psl_vunit.vhd psl_vunit.psl -e psl_vunit | |||||
sere_3: ghdl --std=08 -gformal=SERE_3 pkg.vhd sequencer.vhd psl_vunit.vhd psl_vunit.psl -e psl_vunit | |||||
all: ghdl --std=08 -gformal=ALL pkg.vhd sequencer.vhd psl_vunit.vhd psl_vunit.psl -e psl_vunit | |||||
prep -top psl_vunit | |||||
[files] | |||||
../src/pkg.vhd | |||||
../src/sequencer.vhd | |||||
../src/psl_vunit.vhd | |||||
../src/psl_vunit.psl |
@ -0,0 +1,28 @@ | |||||
vunit psl_vunit_vu (psl_vunit(beh)) { | |||||
-- All is sensitive to rising edge of clk | |||||
default clock is rising_edge(clk); | |||||
gen_0 : if FORMAL = "SERE_0" or formal = "ALL" generate | |||||
-- This assertion holds | |||||
SERE_0_a : assert {a}; | |||||
end generate gen_0; | |||||
gen_1 : if FORMAL = "SERE_1" or formal = "ALL" generate | |||||
-- This assertion holds | |||||
SERE_1_a : assert {a; a}; | |||||
end generate gen_1; | |||||
gen_2 : if FORMAL = "SERE_2" or formal = "ALL" generate | |||||
-- This assertion holds | |||||
SERE_2_a : assert {a; a and b}; | |||||
end generate gen_2; | |||||
gen_3 : if FORMAL = "SERE_3" or formal = "ALL" generate | |||||
-- This assertion doesn't hold at cycle 2 | |||||
SERE_3_a : assert always {a; a}; | |||||
end generate gen_3; | |||||
} |
@ -0,0 +1,36 @@ | |||||
library ieee; | |||||
use ieee.std_logic_1164.all; | |||||
use work.pkg.all; | |||||
entity psl_vunit is | |||||
generic ( | |||||
formal : string := "ALL" | |||||
); | |||||
port ( | |||||
clk : in std_logic | |||||
); | |||||
end entity psl_vunit; | |||||
architecture beh of psl_vunit is | |||||
signal a, b : std_logic; | |||||
begin | |||||
-- 012345 | |||||
SEQ_A : sequencer generic map ("--____") port map (clk, a); | |||||
SEQ_B : sequencer generic map ("_-____") port map (clk, b); | |||||
-- Stop simulation after longest running sequencer is finished | |||||
-- Simulation only code by using pragmas | |||||
-- synthesis translate_off | |||||
stop_sim(clk, 6); | |||||
-- synthesis translate_on | |||||
end architecture beh; |