完整加法器的VHDL代码

在这个 VHDL项目 ,VHDL代码 全加器 被呈现。用于加法器的VHDL代码是通过使用行为模型和结构模型来实现的。 

完整加法器具有三个输入X1,X2,进位Cin和两个输出S,进位Cout,如下图所示:

完整加法器的VHDL代码

使用结构模型的完整加法器的VHDL代码:

-- fpga4student.com 
-- FPGA projects,  VHDL项目 , Verilog projects 
-- 完整加法器的VHDL代码 
-- Structural code for  全加器  
 library ieee; 
 use ieee.std_logic_1164.all;  
 entity Full_Adder_Structural_VHDL is  
   port( 
  X1, X2, Cin : in std_logic;  
  S, Cout : out std_logic
  );  
 end Full_Adder_Structural_VHDL;  
 architecture structural of Full_Adder_Structural_VHDL is  
 signal a1, a2, a3: std_logic;  
 begin  
   a1 <= X1 xor X2;  
   a2 <= X1 and X2;  
   a3 <= a1 and Cin;  
   Cout <= a2 or a3;  
   S <= a1 xor Cin;  
 end structural;  
Library IEEE;
USE IEEE.Std_logic_1164.all;
-- fpga4student.com 
-- FPGA projects,  VHDL项目 , Verilog projects 
-- 完整加法器的VHDL代码 
-- Testbench code of the structural code for  全加器  
entity Testbench_structural_adder is
end Testbench_structural_adder;
 
architecture  behavioral of Testbench_structural_adder is
 component Full_Adder_Structural_VHDL 
   port( 
  X1, X2, Cin : in std_logic;  
  S, Cout : out std_logic
  );  
 end component; 
 signal A,B,Cin: std_logic:='0';
 signal S,Cout: std_logic;
begin   
 structural_adder: Full_Adder_Structural_VHDL port map 
   (
    X1 => A,
    X2 => B,
    Cin => Cin,
    S => S,
    Cout => Cout 
   );
  process
  begin
   A <= '0';
   B <= '0';
   Cin <= '0';
   wait for 100 ns;
   A <= '0';
   B <= '0';
   Cin <= '1';
   wait for 100 ns;   
   A <= '0';
   B <= '1';
   Cin <= '0';
   wait for 100 ns;
   A <= '0';
   B <= '1';
   Cin <= '1';
   wait for 100 ns;
   A <= '1';
   B <= '0';
   Cin <= '0';
   wait for 100 ns;
   A <= '1';
   B <= '0';
   Cin <= '1';
   wait for 100 ns;
   A <= '1';
   B <= '1';
   Cin <= '0';
   wait for 100 ns;   
   A <= '1';
   B <= '1';
   Cin <= '1';
   wait for 100 ns;   
  end process;
      
end behavioral; 

完整加法器的结构VHDL代码的仿真波形:

完整加法器的VHDL代码

使用行为模型的完整加法器的VHDL代码:

 -- fpga4student.com 
-- FPGA projects,  VHDL项目 , Verilog projects 
-- 完整加法器的VHDL代码 
-- Behavioral code for  全加器  
 library ieee; 
 use ieee.std_logic_1164.all;  
 use IEEE.STD_LOGIC_unsigned.ALL;
use IEEE.NUMERIC_STD.ALL;
 entity Full_Adder_Behavioral_VHDL is  
   port( 
  X1, X2, Cin : in std_logic;  
  S, Cout : out std_logic
  );  
 end Full_Adder_Behavioral_VHDL;  
 architecture Behavioral of Full_Adder_Behavioral_VHDL is   
 signal tmp: std_logic_vector(1 downto 0);
 begin  
   process(X1,X2,Cin)
   begin 
 tmp <= ('0'& X1) + ('0'& X2) +('0'& Cin) ;
   end process;
   S <= tmp(0);
   Cout <= tmp(1);
 end Behavioral; 
 Library IEEE;
USE IEEE.Std_logic_1164.all;
-- fpga4student.com 
-- FPGA projects,  VHDL项目 , Verilog projects 
-- 完整加法器的VHDL代码 
-- Testbench code of the behavioral code for  全加器  
entity Testbench_behavioral_adder is
end Testbench_behavioral_adder;
 
architecture  behavioral of Testbench_behavioral_adder is
 component Full_Adder_Behavioral_VHDL 
   port( 
  X1, X2, Cin : in std_logic;  
  S, Cout : out std_logic
  );  
 end component; 
 signal A,B,Cin: std_logic:='0';
 signal S,Cout: std_logic;
begin   
 behavior_adder: Full_Adder_Behavioral_VHDL port map 
   (
    X1 => A,
    X2 => B,
    Cin => Cin,
    S => S,
    Cout => Cout 
   );
  process
  begin
   A <= '1';
   B <= '1';
   Cin <= '1';
   wait for 50 ns; 
   A <= '1';
   B <= '1';
   Cin <= '0';
   wait for 50 ns; 
   A <= '1';
   B <= '0';
   Cin <= '1';
   wait for 50 ns;
   A <= '0';
   B <= '0';
   Cin <= '0';
   wait for 50 ns;
   A <= '0';
   B <= '0';
   Cin <= '1';
   wait for 50 ns;   
   A <= '0';
   B <= '1';
   Cin <= '0';
   wait for 50 ns;
   A <= '0';
   B <= '1';
   Cin <= '1';
   wait for 50 ns;
   A <= '1';
   B <= '0';
   Cin <= '0';
   wait for 50 ns;
  
  end process;
      
end behavioral; 

完整加法器的行为VHDL代码的仿真波形:

完整加法器的VHDL代码


推荐的 VHDL项目 :
1. 什么是FPGA? VHDL如何在FPGA上工作
2. FIFO存储器的VHDL代码
3. FIR滤波器的VHDL代码
4. 8位微控制器的VHDL代码
5. 矩阵乘法的VHDL代码
6. 开关尾环计数器的VHDL代码
7. FPGA上数字闹钟的VHDL代码
8. 8位比较器的VHDL代码
9. 如何使用VHDL将文本文件加载到FPGA中
10。  D触发器的VHDL代码
11。  完整加法器的VHDL代码
12  具有可变占空比的VHDL中的PWM发生器
13  ALU的VHDL代码
14。  带测试平台的计数器的VHDL代码
15  16位ALU的VHDL代码
16。  VHDL中的移位器设计
17。  VHDL中的非线性查找表实现
18岁  VHDL中的密码协处理器设计

19  Verilog和VHDL:通过示例解释
20  FPGA上时钟分频器的VHDL代码
21  如何生成时钟使能信号而不是创建另一个时钟域
22  VHDL代码,用于反跳FPGA上的按钮
23。  交通信号灯控制器的VHDL代码
24  用于简单2位比较器的VHDL代码
25岁  单端口RAM的VHDL代码
22  VHDL代码,用于反跳FPGA上的按钮
23。  交通信号灯控制器的VHDL代码
24  用于简单2位比较器的VHDL代码
25岁  单端口RAM的VHDL代码
26  使用FSM的停车场系统的VHDL代码
27。  VHDL编码与软件编程
FPGA Verilog VHDL课程

没意见:

发表评论

热门FPGA项目