Mudanças entre as edições de "Carry Lookahead 16 bits"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '<syntaxhighlight lang=vhdl> ------------------------------------------------------------------------------------------ ---------------------------------------------------------------------------...')
 
 
Linha 30: Linha 30:
 
end generate;
 
end generate;
 
 
 +
end architecture;
 +
 +
---------------------------------------
 +
--Book: Pedroni/490
 +
--8 bits carry-lookahead
 +
--Uso do component
 +
library ieee;
 +
use ieee.std_logic_1164.all;
 +
 +
entity carry_lookahead_adder_16  is
 +
port( a,b : in std_logic_vector(15 downto 0);
 +
cin: in std_logic;
 +
cout: out std_logic;
 +
sum: out std_logic_vector(15 downto 0));
 +
end entity;
 +
 +
architecture structure of carry_lookahead_adder_16 is
 +
signal g,p,c : std_logic_vector(15 downto 0);
 +
 +
begin
 +
---computation of g and p;
 +
g <= a and b;
 +
p <= a xor b;
 +
 +
---computation of carry;
 +
c(0) <= cin;
 +
 +
c(1) <= g(0) or
 +
(p(0) and cin);
 +
 +
c(2) <= g(1) or
 +
(p(1) and g(0)) or
 +
(p(1) and p(0) and cin);
 +
 +
c(3) <= g(2) or
 +
(p(2) and g(1)) or
 +
(p(2) and p(1) and g(0)) or
 +
(p(2) and p(1) and p(0) and cin);
 +
 
 +
c(4) <= g(3) or
 +
(p(3) and g(2)) or
 +
(p(3) and p(2) and g(1)) or
 +
(p(3) and p(2) and p(1) and g(0)) or
 +
(p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
c(5) <= g(4) or
 +
(p(4) and g(3)) or
 +
(p(4) and p(3) and g(2)) or
 +
(p(4) and p(3) and p(2) and g(1)) or
 +
(p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
 +
c(6) <= g(5) or
 +
(p(5) and g(4)) or
 +
(p(5) and p(4) and g(3)) or
 +
(p(5) and p(4) and p(3) and g(2)) or
 +
(p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
(p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
c(7) <= g(6) or
 +
(p(6) and g(5)) or
 +
(p(6) and p(5) and g(4)) or
 +
(p(6) and p(5) and p(4) and g(3)) or
 +
(p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
(p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
c(8) <= g(7) or
 +
(p(7) and g(6)) or
 +
(p(7) and p(6) and g(5)) or
 +
(p(7) and p(6) and p(5) and g(4)) or
 +
(p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
(p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
 +
c(9) <= g(8) or
 +
(p(8) and g(7)) or
 +
(p(8) and p(7) and g(6)) or
 +
(p(8) and p(7) and p(6) and g(5)) or
 +
(p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
(p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
(p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or 
 +
(p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
  c(10) <= g(9) or
 +
(p(9) and g(8)) or
 +
(p(9) and p(8) and g(7)) or
 +
(p(9) and p(8) and p(7) and g(6)) or
 +
(p(9) and p(8) and p(7) and p(6) and g(5)) or
 +
(p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
(p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
(p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or 
 +
(p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
c(11) <= g(10) or
 +
(p(10) and g(9)) or
 +
(p(10) and p(9) and g(8)) or
 +
(p(10) and p(9) and p(8) and g(7)) or
 +
(p(10) and p(9) and p(8) and p(7) and g(6)) or
 +
(p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
 +
(p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
(p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
(p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or 
 +
(p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
c(12) <= g(11) or
 +
(p(11) and g(10)) or
 +
(p(11) and p(10) and g(9)) or
 +
(p(11) and p(10) and p(9) and g(8)) or
 +
(p(11) and p(10) and p(9) and p(8) and g(7)) or
 +
(p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
 +
(p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
 +
(p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
(p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
          (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
c(13) <= g(12) or
 +
(p(12) and g(11)) or
 +
(p(12) and p(11) and g(10)) or
 +
(p(12) and p(11) and p(10) and g(9)) or
 +
(p(12) and p(11) and p(10) and p(9) and g(8)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
          (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
 +
c(14) <= g(13) or
 +
(p(13) and g(12)) or
 +
(p(13) and p(12) and g(11)) or
 +
(p(13) and p(12) and p(11) and g(10)) or
 +
(p(13) and p(12) and p(11) and p(10) and g(9)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and g(8)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
          (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
c(15) <= g(14) or
 +
(p(14) and g(13)) or
 +
(p(14) and p(13) and g(12)) or
 +
(p(14) and p(13) and p(12) and g(11)) or
 +
(p(14) and p(13) and p(12) and p(11) and g(10)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and g(9)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and g(8)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
          (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
(p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
 +
cout <= g(15) or
 +
(p(15) and g(14)) or
 +
(p(15) and p(14) and g(13)) or
 +
(p(15) and p(14) and p(13) and g(12)) or
 +
(p(15) and p(14) and p(13) and p(12) and g(11)) or
 +
(p(15) and p(14) and p(13) and p(12) and p(11) and g(10)) or
 +
(p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and g(9)) or
 +
(p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and g(8)) or
 +
(p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
 +
          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
 +
          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
 +
          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
 +
          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
 +
          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
 +
          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
 +
          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
 +
    (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
 +
---computation of sum
 +
sum <= p xor c;
 +
 
end architecture;
 
end architecture;
 
</syntaxhighlight>
 
</syntaxhighlight>

Edição atual tal como às 21h53min de 31 de agosto de 2016

------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
--Book: Eletronica digital moderna e VHDL/490 - Pelo autor
-- Carry lookahead com 16 bits
--

architecture adder_carry_lookahead_16 of adder is

	signal carry: std_logic_vector(n/16 downto 0); 
	
	component carry_lookahead_adder_16 is
			port( a,b : in std_logic_vector(15 downto 0);
			cin: in std_logic;
			cout: out std_logic;
			sum: out std_logic_vector(15 downto 0));
	end component;
	
begin
	carry(0) <= cin;
	gen_adder: for i in 1 to n/16 generate
		adder: carry_lookahead_adder_16 
			port map(
				a => a(16*i-1 downto 16*i-16),
				b => b(16*i-1 downto 16*i-16),
				cin => carry(i-1),
				sum => sum(16*i-1 downto 16*i-16),
				cout => carry(i)
			);
		end generate;
		
end architecture;

---------------------------------------
--Book: Pedroni/490
--8 bits carry-lookahead
--Uso do component
library ieee;
use ieee.std_logic_1164.all;

entity carry_lookahead_adder_16  is
	port( a,b : in std_logic_vector(15 downto 0);
			cin: in std_logic;
			cout: out std_logic;
			sum: out std_logic_vector(15 downto 0));
end entity;

architecture structure of carry_lookahead_adder_16 is
		signal g,p,c : std_logic_vector(15 downto 0);
	
	begin	
	---computation of g and p;
		g <= a and b; 
		p <= a xor b;
		
	---computation of carry;
		c(0) <= cin;
		
		c(1) <= g(0) or 
				 (p(0) and cin);
				 
		c(2) <= g(1) or
				 (p(1) and g(0)) or 	 
				 (p(1) and p(0) and cin);

		c(3) <= g(2) or
				 (p(2) and g(1)) or
				 (p(2) and p(1) and g(0)) or
				 (p(2) and p(1) and p(0) and cin);
				  
		c(4) <= g(3) or 
				 (p(3) and g(2)) or
				 (p(3) and p(2) and g(1)) or		 
				 (p(3) and p(2) and p(1) and g(0)) or
				 (p(3) and p(2) and p(1) and p(0) and cin); 
				 
		c(5) <= g(4) or 
				 (p(4) and g(3)) or
				 (p(4) and p(3) and g(2)) or
				 (p(4) and p(3) and p(2) and g(1)) or
				 (p(4) and p(3) and p(2) and p(1) and g(0)) or 
				 (p(4) and p(3) and p(2) and p(1) and p(0) and cin);		 				 

			
		c(6) <= g(5) or
				 (p(5) and g(4)) or 
				 (p(5) and p(4) and g(3)) or
				 (p(5) and p(4) and p(3) and g(2)) or
				 (p(5) and p(4) and p(3) and p(2) and g(1)) or
				 (p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or 
				 (p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 		
		
		c(7) <= g(6) or
				 (p(6) and g(5)) or
				 (p(6) and p(5) and g(4)) or
				 (p(6) and p(5) and p(4) and g(3)) or
				 (p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
				 (p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or
				 (p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 
		
		c(8) <= g(7) or
				 (p(7) and g(6)) or
				 (p(7) and p(6) and g(5)) or
				 (p(7) and p(6) and p(5) and g(4)) or
				 (p(7) and p(6) and p(5) and p(4) and g(3)) or
				 (p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or	
				 (p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
				 (p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or 
				 (p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 					
		
				 
		c(9) <= g(8) or
				 (p(8) and g(7)) or
				 (p(8) and p(7) and g(6)) or
				 (p(8) and p(7) and p(6) and g(5)) or
				 (p(8) and p(7) and p(6) and p(5) and g(4)) or
				 (p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or	
				 (p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
				 (p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or  
				 (p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin);
				 
	   c(10) <= g(9) or
				 (p(9) and g(8)) or
				 (p(9) and p(8) and g(7)) or
				 (p(9) and p(8) and p(7) and g(6)) or
				 (p(9) and p(8) and p(7) and p(6) and g(5)) or
				 (p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
				 (p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or	
				 (p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
				 (p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or  
				 (p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 	
				 
		c(11) <= g(10) or
				 (p(10) and g(9)) or
				 (p(10) and p(9) and g(8)) or
				 (p(10) and p(9) and p(8) and g(7)) or
				 (p(10) and p(9) and p(8) and p(7) and g(6)) or
				 (p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
				 (p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or
				 (p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or	
				 (p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
				 (p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or  
				 (p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 	
				 
		c(12) <= g(11) or
				 (p(11) and g(10)) or
				 (p(11) and p(10) and g(9)) or
				 (p(11) and p(10) and p(9) and g(8)) or
				 (p(11) and p(10) and p(9) and p(8) and g(7)) or
				 (p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
				 (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
				 (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or	
				 (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
				 (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
	          (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or	 
				 (p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 					 

		c(13) <= g(12) or
				 (p(12) and g(11)) or 
				 (p(12) and p(11) and g(10)) or
				 (p(12) and p(11) and p(10) and g(9)) or
				 (p(12) and p(11) and p(10) and p(9) and g(8)) or
				 (p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
				 (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
				 (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
				 (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or	
				 (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
				 (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
	          (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or	 
				 (p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 				 
		
		
		c(14) <= g(13) or
				 (p(13) and g(12)) or 
				 (p(13) and p(12) and g(11)) or
				 (p(13) and p(12) and p(11) and g(10)) or
				 (p(13) and p(12) and p(11) and p(10) and g(9)) or
				 (p(13) and p(12) and p(11) and p(10) and p(9) and g(8)) or
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or	
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
	          (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or	 
				 (p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 		
	
		c(15) <= g(14) or
				 (p(14) and g(13)) or 
				 (p(14) and p(13) and g(12)) or
				 (p(14) and p(13) and p(12) and g(11)) or
				 (p(14) and p(13) and p(12) and p(11) and g(10)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and g(9)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and g(8)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or	
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
	          (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or	 
				 (p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 		
	
		cout <= g(15) or
				 (p(15) and g(14)) or 
				 (p(15) and p(14) and g(13)) or
				 (p(15) and p(14) and p(13) and g(12)) or
				 (p(15) and p(14) and p(13) and p(12) and g(11)) or
				 (p(15) and p(14) and p(13) and p(12) and p(11) and g(10)) or
				 (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and g(9)) or
				 (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and g(8)) or
				 (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and g(7)) or
	          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and g(6)) or
	          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and g(5)) or
	          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and g(4)) or	
	          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and g(3)) or
	          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and g(2)) or
	          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and g(1)) or
	          (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and g(0)) or	 
			    (p(15) and p(14) and p(13) and p(12) and p(11) and p(10) and p(9) and p(8) and p(7) and p(6) and p(5) and p(4) and p(3) and p(2) and p(1) and p(0) and cin); 			
	---computation of sum
	sum <= p xor c;
	
end architecture;