📄 89_full_adder.vhd
字号:
--------------------------------------------------------------------------------
--
-- 4-Bit Full Adder
--
-- Benchmark author: Han Shu
--
--------------------------------------------------------------------------------
use work.BIT_FUNCTIONS.all;
entity FULL_ADDER is
port (
A : in BIT_VECTOR(3 downto 0);
B : in BIT_VECTOR(3 downto 0);
Cin : in BIT;
S : out BIT_VECTOR(3 downto 0);
Cout : out BIT);
end FULL_ADDER;
--
--
architecture FULL_ADDER of FULL_ADDER is
signal sA , sB ,sS : BIT_VECTOR(3 downto 0);
signal sCin , sCout : BIT ;
signal sC : BIT_VECTOR(3 downto 0) ;
signal sT : BIT_VECTOR(3 downto 0) ;
signal sG : BIT_VECTOR(3 downto 0) ;
begin
-- process
sA <= A ;
sB <= B ;
sCin <= Cin ;
sT(0) <= sA(0) Xor sB(0) ;
sG(0) <= sA(0) And sB(0) ;
sT(1) <= sA(1) Xor sB(1) ;
sG(1) <= sA(1) And sB(1) ;
sT(2) <= sA(2) Xor sB(2) ;
sG(2) <= sA(2) And sB(2) ;
sT(3) <= sA(3) Xor sB(3) ;
sG(3) <= sA(3) And sB(3) ;
--
sC(0)<=sG(0) Or sT(0) And sCin ;
sC(1)<=sG(1)
Or sT(1) And (sG(0) Or sT(0) And sCin) ;
sC(2)<=sG(2)
Or sT(2) And (sG(1) Or sT(1) And (sG(0) Or sT(0) And sCin));
sC(3)<=sG(3)
Or sT(3) And (sG(2) Or sT(2) And (sG(1) Or sT(1) And (sG(0) Or sT(0) And sCin)));
--
sS(0) <= sT(0) Xor sCin ;
sS(1) <= sT(1) Xor sC(0) ;
sS(2) <= sT(2) Xor sC(1) ;
sS(3) <= sT(3) Xor sC(2) ;
--
S <= sS ;
Cout <= sC(3) ;
-- wait on a,b, cin ;
--end process;
end ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -