library ieee;
|
|
use ieee.std_logic_1164.all;
|
|
|
|
use work.pkg.all;
|
|
|
|
|
|
entity yosys_anyseq is
|
|
port (
|
|
clk : in std_logic
|
|
);
|
|
end entity yosys_anyseq;
|
|
|
|
|
|
architecture psl of yosys_anyseq is
|
|
|
|
attribute anyseq : boolean;
|
|
|
|
signal a: std_logic;
|
|
signal b: natural;
|
|
|
|
attribute anyseq of a : signal is true;
|
|
attribute anyseq of b : signal is true;
|
|
|
|
begin
|
|
|
|
|
|
-- All is sensitive to rising edge of clk
|
|
default clock is rising_edge(clk);
|
|
|
|
-- a should always be high
|
|
ANY_ASSUME_0_a : assume always a;
|
|
|
|
-- This assertion holds
|
|
ANY_ASSERT_0_a : assert always a;
|
|
|
|
-- b should always be in range 23...42
|
|
ANY_ASSUME_1_a : assume always b >= 23 and b <= 42;
|
|
|
|
-- This assertion holds
|
|
ANY_ASSERT_1_a : assert always b >= 23 and b <= 42;
|
|
|
|
-- This assertion fails in cycle 1
|
|
-- Solver chosen value can change from one to next cycle
|
|
ANY_ASSERT_2_a : assert b >= 23 -> next b = prev(b);
|
|
|
|
|
|
end architecture psl;
|