Priority Circuit with when-else statements.
architecture whenelse of priority is
-- priority circuit, Y7 highest priority input
-- Y1 is lowest priority input
-- uses just one when-else concurrent statement.
dout <= "111" when (y7 = '1') else
"110" when (y6 = '1') else
"101" when (y5 = '1') else
"100" when (y4 = '1') else
"011" when (y3 = '1') else
"010" when (y2 = '1') else
"001" when (y1 = '1') else
No process; just one concurrent when-else statement.