-- Additionneur 4 bits avec report entrant et sortant
ENTITY adder IS
PORT (
x : IN BIT_VECTOR(3 DOWNTO 0);
y : IN BIT_VECTOR(3 DOWNTO 0);
q : OUT BIT_VECTOR(3 DOWNTO 0);
cin : IN BIT;
cout : OUT BIT;
vdd : IN BIT;
vss : IN BIT
);
END adder;
ARCHITECTURE vbe OF adder IS
SIGNAL carry : BIT_VECTOR(4 DOWNTO 0) ;
BEGIN
carry(0) <= cin;
carry(4 DOWNTO 1) <= ( x(3 DOWNTO 0) AND y(3 DOWNTO 0) ) OR
( x(3 DOWNTO 0) AND carry(3 DOWNTO 0) ) OR
( carry(3 DOWNTO 0) AND y(3 DOWNTO 0) ) ;
q(3 DOWNTO 0) <= x(3 DOWNTO 0) XOR
y (3 DOWNTO 0) XOR
carry(3 DOWNTO 0) ;
cout <= carry(4);
END;