42 lines
934 B
VHDL
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; |