Mudanças entre as edições de "Carry Lookahead 16 bits"
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;