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 ;