assert ZeroOneHot( ASel&BSel&CSel&DSel ) report "Selects not mutually exclusive" severity error ;
RemovePriorityProc : procss(A, B, C, D, ASel, BSel, CSel, DSel) is
begin
if (ASel) then
Y <= A ;
elsif BSel then
Y <= B ;
elsif CSel then
Y <= C ;
elsif DSel then
Y <= D ;
else
Y <= (others => 'X') ;
end if;
end process RemovePriorityProc ;