Priority Circuit with just IF statements.
architecture plainif of priority is
-- priority circuit, Y7 highest priority input
-- Y1 is lowest priority input
process (y1, y2,y3, y4, y5, y6, y7)
if (y1 = '1') then dout <= "001"; end if;
if (y2 = '1') then dout <= "010"; end if;
if (y3 = '1') then dout <= "011"; end if;
if (y4 = '1') then dout <= "100"; end if;
if (y5 = '1') then dout <= "101"; end if;
if (y6 = '1') then dout <= "110"; end if;
if (y7 = '1') then dout <= "111"; end if;
By reversing the order of the assignments, we can accomplish the same as the elsif priority chain.
In a process, the LAST assignment to the output is what counts.