library IEEE; use IEEE.std_logic_1164.all; entity Vprior2i is port ( R: in STD_LOGIC_VECTOR (0 to 7); A, B: buffer STD_LOGIC_VECTOR (2 downto 0); AVALID, BVALID: buffer STD_LOGIC ); end Vprior2i; architecture Vprior2i_arch of Vprior2i is begin process(R, A, AVALID, BVALID) begin if R(0) = '1' then A <= "000"; AVALID <= '1'; elsif R(1) = '1' then A <= "001"; AVALID <= '1'; elsif R(2) = '1' then A <= "010"; AVALID <= '1'; elsif R(3) = '1' then A <= "011"; AVALID <= '1'; elsif R(4) = '1' then A <= "100"; AVALID <= '1'; elsif R(5) = '1' then A <= "101"; AVALID <= '1'; elsif R(6) = '1' then A <= "110"; AVALID <= '1'; elsif R(7) = '1' then A <= "111"; AVALID <= '1'; else A <= "000"; AVALID <= '0'; end if; if R(1) = '1' and A /= "001" then B <= "001"; BVALID <= '1'; elsif R(2) = '1' and A /= "010" then B <= "010"; BVALID <= '1'; elsif R(3) = '1' and A /= "011" then B <= "011"; BVALID <= '1'; elsif R(4) = '1' and A /= "100" then B <= "100"; BVALID <= '1'; elsif R(5) = '1' and A /= "101" then B <= "101"; BVALID <= '1'; elsif R(6) = '1' and A /= "110" then B <= "110"; BVALID <= '1'; elsif R(7) = '1' and A /= "111" then B <= "111"; BVALID <= '1'; else B <= "000"; BVALID <= '0'; end if; end process; end Vprior2i_arch;