library ieee;
							 | 
						|
								  use ieee.std_logic_1164.all;
							 | 
						|
								
							 | 
						|
								entity sequencer is
							 | 
						|
								  generic (
							 | 
						|
								    seq : string
							 | 
						|
								  );
							 | 
						|
								  port (
							 | 
						|
								    clk  : in  std_logic;
							 | 
						|
								    data : out std_logic
							 | 
						|
								  );
							 | 
						|
								end entity sequencer;
							 | 
						|
								
							 | 
						|
								architecture rtl of sequencer is
							 | 
						|
								
							 | 
						|
								  signal index : natural := seq'low;
							 | 
						|
								
							 | 
						|
								  function to_bit (a : in character) return std_logic is
							 | 
						|
								    variable ret : std_logic;
							 | 
						|
								  begin
							 | 
						|
								    case a is
							 | 
						|
								      when '0' | '_' => ret := '0';
							 | 
						|
								      when '1' | '-' => ret := '1';
							 | 
						|
								      when others    => ret := 'X';
							 | 
						|
								    end case;
							 | 
						|
								    return ret;
							 | 
						|
								  end function to_bit;
							 | 
						|
								
							 | 
						|
								begin
							 | 
						|
								
							 | 
						|
								  process (clk) is
							 | 
						|
								  begin
							 | 
						|
								    if rising_edge(clk) then
							 | 
						|
								      if (index < seq'high) then
							 | 
						|
								        index <= index + 1;
							 | 
						|
								      end if;
							 | 
						|
								    end if;
							 | 
						|
								  end process;
							 | 
						|
								
							 | 
						|
								  data <= to_bit(seq(index));
							 | 
						|
								
							 | 
						|
								end architecture rtl;
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								library ieee;
							 | 
						|
								  use ieee.std_logic_1164.all;
							 | 
						|
								  use ieee.numeric_std.all;
							 | 
						|
								
							 | 
						|
								entity issue is
							 | 
						|
								  port (
							 | 
						|
								    clk : in std_logic
							 | 
						|
								  );
							 | 
						|
								end entity issue;
							 | 
						|
								
							 | 
						|
								architecture psl of issue is
							 | 
						|
								
							 | 
						|
								  signal a, b : std_logic;
							 | 
						|
								
							 | 
						|
								begin
							 | 
						|
								
							 | 
						|
								  --                              012345
							 | 
						|
								  SEQ_A : entity work.sequencer generic map ("--____") port map (clk, a);
							 | 
						|
								  SEQ_B : entity work.sequencer generic map ("_-____") port map (clk, b);
							 | 
						|
								
							 | 
						|
								end architecture psl;
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								vunit issue_1899_vu0 {
							 | 
						|
								  
							 | 
						|
								  -- Using named sequences
							 | 
						|
								  sequence s_a (boolean a) is {a; a};
							 | 
						|
								  sequence s_b (boolean b) is {b};
							 | 
						|
								
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								vunit issue_1899_vu1 (issue(psl)) {
							 | 
						|
								
							 | 
						|
								  inherit issue_1899_vu0;
							 | 
						|
								
							 | 
						|
								  -- All is sensitive to rising edge of clk
							 | 
						|
								  default clock is rising_edge(clk);
							 | 
						|
								
							 | 
						|
								  SERE_0_a : assert always s_a(a) |-> s_b(b);
							 | 
						|
								
							 | 
						|
								}
							 |