⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 89_full_adder.vhd

📁 这是一个对于初学者很好的vhdl实验的一些例子,希望站长的支持哦
💻 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 + -