Design and Explain Full Adder by Using Vhdl

VHDL code for Full adder using half adder with testbench

VHDL code for Full adder using half adder

 half_adder.vhdl

                                                      ENTITY half_adder IS                                              --- Half Adder                      PORT(A,B: IN BIT ;   S, Cout : OUT BIT); END full_adder; ARCHITECTURE half_adder_beh OF half_adder IS BEGIN S <= A xor B;                                                
                                                      Cout <=  A and B;                                                
                                                      END full_adder_beh;                                                                    

or_gate.vhdl

                                                      ENTITY or_gate IS             PORT(A,B: IN BIT ;   C : OUT BIT); END or_gate; ARCHITECTURE or_gate_beh OF or_gate IS BEGIN  C <= A or B;                                                
                                                      END or_gate_beh;                                                
                                                                                                      

full_adder.vhdl

                                                      ENTITY full_adder IS                                              --- Full Adder                      PORT(A,B,Cin: IN BIT ;   S, C : OUT BIT); END full_adder;                                                
                                                       ARCHITECTURE str OF full_adder IS                                                
                                                      --component Declaration                                                
                                                                                                    Component                                                                                                                                      half_adder IS            PORT(A,B: IN BIT ;   S, Cout : OUT BIT); END Component;                                                                                          
                                                                                                                                                                                        Component or_gate IS             PORT(A,B: IN BIT ;   C : OUT BIT); END Component;                                                                                                                                                                        
                                                                                                    signal s1,c2,c3:std_logic;                                                                                          
                                                       BEGIN                      X1: half_adder port map(A,B,s1,c1);                                                                    
                                                                            X2: half_adder port map(s1,Cin,S,c2);                                                                                                                                                                      
                                                                            X3: or_gate port map(c1,c2,C);                                                                    
                                                       END str;                                                
                                                                                                                                                                                                                                                                                                                                                            

testbench

                                  LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY Testbench_full_adder IS END Testbench_full_adder;  ARCHITECTURE behavior OF Testbench_full_adder IS                                          -- Component Declaration for the Unit Under Test (UUT)                    COMPONENT full_adder  PORT(  A : IN std_logic;  B : IN std_logic;  Cin : IN std_logic;  S : OUT std_logic;  C : OUT std_logic  );  END COMPONENT;                      --Inputs                    signal A : std_logic := '0';  signal B : std_logic := '0';  signal Cin : std_logic := '0';                                          --Outputs                    signal S : std_logic;  signal C : std_logic; BEGIN                                          -- Instantiate the Unit Under Test (UUT)                    uut: full_adder PORT MAP (  A => A,  B => B,  Cin => Cin,  S => S,  C => C  );                                          -- Stimulus process                    stim_proc: process  begin                                          -- hold reset state for 100 ns.                    wait for 100 ns;                    -- insert stimulus here                    A <= '1';  B <= '0';  Cin <= '0';  wait for 10 ns;  A <= '0';  B <= '1';  Cin <= '0';  wait for 10 ns;  A <= '1';  B <= '1';  Cin <= '0';  wait for 10 ns;  A <= '0';  B <= '0';  Cin <= '1';  wait for 10 ns;  A <= '1';  B <= '0';  Cin <= '1';  wait for 10 ns;  A <= '0';  B <= '1';  Cin <= '1';  wait for 10 ns;  A <= '1';  B <= '1';  Cin <= '1';  wait for 10 ns;  end process; END;                                                

Popular posts from this blog

VHDL Code for AND gate With Test Bench

Image

VHDL Code for AND gate With Test Bench     li brary IEEE; use IEEE.std_logic_1164.all; entity andgate is Port( A : in std_logic; B : in std_logic; Y : out std_logic ); end andgate; architecture Behavioral of andgate is begin Y<= A and B ; end Behavioral; Test Bench library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity and_tb is -- Port ( ); end and_tb; architecture Behavioral of and_tb is --Component name and entity's name must be same --ports must be same  component andgate is Port (A,B:in std_logic; C: out std_logic ); end component; --inputs signal a: std_logic:= '0'; signal b: std_logic:= '0'; --outputs signal c : std_logic; begin uut: andgate PORT MAP(a=>A,b=>B,c=>C); --Stimulus Process stim_proc:process begin wait for 10ns; a<='1'; b<='0'; wait for 10ns; a<='0'; b<='1'; wait for 10ns; a<='0'; b<='0'; wait for 10ns; a<='

VHDL code for Full Adder With Test bench

Image

VHDL code for Full Adder With Test bench   The full - adder circuit adds three one-bit binary numbers (C A B) and outputs two one-bit binary numbers, a sum (S) and a carry (C1). The full - adder is usually a component in a cascade of adders , which add 8, 16, 32, etc. binary numbers.                        ENTITY full_adder IS --- Full Adder PORT(A,B,Cin: IN BIT ; S, Cout : OUT BIT); END full_adder; ARCHITECTURE full_adder_beh OF full_adder IS BEGIN PROCESS(A,B,Cin) -- Sensitive on all the three bits VARIABLE temp :BIT; BEGIN --- DOES the addition in one DELTA time temp := A XOR B; S <= temp XOR Cin; Cout <= (A AND B) OR (temp AND Cin); END PROCESS ; END full_adder_beh;   Test Bench LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY Testbench_full_adder IS END Testbench_full_adder; ARCHITECTURE behavior OF Testbench_full_adder IS -- Component Declaration for the

Design and Explain Full Adder by Using Vhdl

Source: https://techyelf.blogspot.com/2017/09/vhdl-code-for-full-adder-using-half.html

0 Response to "Design and Explain Full Adder by Using Vhdl"

Postar um comentário

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel