спустя некоторое время вернулся к схеме

так и не получается правильно описать свой элемент (мультиплексор с шинами)
подскажите пожалуйста, кто разбирается, как правильно описать:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity copy_of_m2_1 is
Port ( D0 : in STD_LOGIC_VECTOR (15 downto 0);
D1 : in STD_LOGIC_VECTOR (15 downto 0);
S : in STD_LOGIC_VECTOR (1 downto 0);
Q : out STD_LOGIC_VECTOR (15 downto 0));
end copy_of_m2_1;
architecture Behavioral of copy_of_m2_1 is
begin
when S==0 then Q = D0; else
when S==1 then Q = D1;
end Behavioral;
выдает ошибку - ERROR:HDLParsers:164 - "F:/xilinx/1111/copy_of_m2_1.vhd" Line 40. parse error, unexpected WHEN