TU-VHDL/02_Fulladder/fulladder.vhd
2025-02-10 20:28:13 +01:00

42 lines
934 B
VHDL

library IEEE;
use IEEE.std_logic_1164.all;
entity fulladder is
port (afa_i : in std_logic;
bfa_i : in std_logic;
cinfa_i : in std_logic;
sumfa_o : out std_logic;
coutfa_o : out std_logic);
end fulladder;
architecture fa_behaviour of fulladder is
-- Halfadder component
component halfadder is
port (a_i : in std_logic;
b_i : in std_logic;
sum_o : out std_logic;
cy_o : out std_logic);
end component;
signal sig_ha1e, sig_ha1c, sig_ha2c : std_logic;
begin
-- Instances of two halfadders
HA1: halfadder port map(
a_i => afa_i,
b_i => bfa_i,
sum_o => sig_ha1e,
cy_o => sig_ha1c);
HA2: halfadder port map(
a_i => sig_ha1e,
b_i => cinfa_i,
sum_o => sumfa_o,
cy_o => sig_ha2c);
-- The OR gate
coutfa_o <= sig_ha1c OR sig_ha2c;
end fa_behaviour;