-- +-----------------------------+
-- |    Copyright 1996 DOULOS    |
-- |     Library: arithmetic     |
-- |    designer : Tim Pagden    |
-- |     opened: 28 Jul 1996     |
-- +-----------------------------+

-- Architectures:
--   28.07.96 look_ahead

library combinatorial;
library arithmetic;

architecture look_ahead of adder_25 is
  use combinatorial.xor_2_cmpt.all;
  use combinatorial.and_2_cmpt.all;
  use arithmetic.cla_25_cmpt.all;

  type logic_2_vector is array (integer range <>) of std_logic_vector(1 downto 0);

  signal p: std_logic_vector(24 downto 0);
  signal g: std_logic_vector(24 downto 0);
  signal carry: std_logic_vector(24 downto 0);
  signal ab_in: logic_2_vector(24 downto 0);
  signal sum_in: logic_2_vector(24 downto 0);

begin

  pg: for i in 0 to 24 generate
    s0 : ab_in(i) <= a(i) & b(i);
    px : xor_2 port map (ab_in(i), p(i));
    ga : and_2 port map (ab_in(i), g(i));
    sum : xor_2 port map (sum_in(i), y(i));
    if_cin: if i = 0 generate
      s1 : sum_in(i) <= p(i) & c_in;
    end generate;
    if_cla_carry: if i /= 0 generate
      s1 : sum_in(i) <= p(i) & carry(i-1);
    end generate;
  end generate;

  cla: cla_25 port map (
    p     => p,
    g     => g,
    c_in  => c_in,
    c     => carry,
    p_out => open,
    g_out => open
  );

  c_out <= carry(24);

end look_ahead;


<div align="center"><br /><script type="text/javascript"><!--
google_ad_client = "pub-7293844627074885";
//468x60, Created at 07. 11. 25
google_ad_slot = "8619794253";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />&nbsp;</div>