0% found this document useful (0 votes)
657 views7 pages

Experiment No:: To Design and Implement A 4-Bit Carry Look Ahead Adder Using VHDL

The document describes designing and implementing a 4-bit carry look ahead adder using VHDL. It first discusses the theory behind carry look ahead adders and how they avoid carry propagation. It then shows the implementation, including defining a partial full adder component that generates propagate and generate signals, and using four instances of this connected with carry logic to form the full adder circuit. The VHDL code provided implements this design. Simulation waveforms confirm the circuit functions correctly as a 4-bit carry look ahead adder.

Uploaded by

Vinay Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
657 views7 pages

Experiment No:: To Design and Implement A 4-Bit Carry Look Ahead Adder Using VHDL

The document describes designing and implementing a 4-bit carry look ahead adder using VHDL. It first discusses the theory behind carry look ahead adders and how they avoid carry propagation. It then shows the implementation, including defining a partial full adder component that generates propagate and generate signals, and using four instances of this connected with carry logic to form the full adder circuit. The VHDL code provided implements this design. Simulation waveforms confirm the circuit functions correctly as a 4-bit carry look ahead adder.

Uploaded by

Vinay Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Experiment No:

Aim: To design and implement a 4-bit carry look ahead adder using VHDL.

Software: Xilinx - vivado

Theory:

Carry Look Ahead Adder is fastest adder compared to Ripple carry Adder. For the Purpose of
carry Propagation, Carry look Ahead Adder construct Partial Full Adder, Propagation and
generation Carry block. It avoid Carry propagation through each adder.

In order to implement Carry Look Ahead Adder, first implement Partial Full Adder and then Carry
logic using Propagation and generation Block.

Full Adder implementation for Carry Look Ahead Adder

Partial Full Adder consist of inputs (A, B, Cin) and Outputs (S, P, G) where P is Propagate Output
and G is Generate output.
VHDL code for carry look ahead adder can be implemented by first constructing Partial full adder
block and port map them to four times and also implementing carry generation block as shown
below.

Carry Look Ahead Adder Circuit

Program:

-- program for 1 bit carry look ahead full adder

entity Partial_Full_Adder is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
Cin : in STD_LOGIC;
S : out STD_LOGIC;
P : out STD_LOGIC;
G : out STD_LOGIC);
end Partial_Full_Adder;
architecture Behavioral of Partial_Full_Adder is

begin
S <= A xor B xor Cin;
P <= A xor B;
G <= A and B;

end Behavioral;

-- program for 4 bit carry look ahead full adder cloned into 1 bot carry look ahead adder

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Carry_Look_Ahead is
Port ( A : in STD_LOGIC_VECTOR (3 downto 0);
B : in STD_LOGIC_VECTOR (3 downto 0);
Cin : in STD_LOGIC;
S : out STD_LOGIC_VECTOR (3 downto 0);
Cout : out STD_LOGIC);
end Carry_Look_Ahead;

architecture Behavioral of Carry_Look_Ahead is

component Partial_Full_Adder
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
Cin : in STD_LOGIC;
S : out STD_LOGIC;
P : out STD_LOGIC;
G : out STD_LOGIC);
end component;

signal c1,c2,c3: STD_LOGIC;


signal P,G: STD_LOGIC_VECTOR(3 downto 0);
begin

PFA1: Partial_Full_Adder port map( A(0), B(0), Cin, S(0), P(0), G(0));
PFA2: Partial_Full_Adder port map( A(1), B(1), c1, S(1), P(1), G(1));
PFA3: Partial_Full_Adder port map( A(2), B(2), c2, S(2), P(2), G(2));
PFA4: Partial_Full_Adder port map( A(3), B(3), c3, S(3), P(3), G(3));

c1 <= G(0) OR (P(0) AND Cin);


c2 <= G(1) OR (P(1) AND G(0)) OR (P(1) AND P(0) AND Cin);
c3 <= 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);
Cout <= 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);

end Behavioral;
Schematic:
Waveform:

Conclusion:
Thus we successfully implemented carry look ahead full adder using vivado simulator.

You might also like