-- Additionneur 4 bits avec report entrant et sortant
ENTITY adder IS
PORT (
i0 : IN BIT_VECTOR(3 DOWNTO 0);
i1 : 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) <= ( ( i1(3 DOWNTO 0) AND i0(3 DOWNTO 0) ) OR
( i0(3 DOWNTO 0) AND carry(3 DOWNTO 0) ) OR
( carry(3 DOWNTO 0) AND i1(3 DOWNTO 0) ) ) ;
q <= i0 XOR i1 XOR carry(3 DOWNTO 0) ;
cout <= carry(2);
END;