Carry Adipar ondulación - VHDL

1

¿Cómo puedo conectar sumadores completos para formar un sumador de ondulación de acarreo? Esto es lo que tengo hasta ahora.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity CarryRippleAdder is
    Port ( Carry_in : in  STD_LOGIC;
           input_A : in  STD_LOGIC;
           input_B : in  STD_LOGIC;
           Carry_out : out  STD_LOGIC);
end CarryRippleAdder;

architecture Behavioral of CarryRippleAdder is

-- FullAdder
COMPONENT FullAdder
PORT(
    A_in : IN std_logic_vector(15 downto 0);
    B_in : IN std_logic_vector(15 downto 0);
    C_in: IN std_logic;
    C_out : out  std_logic;
    S_out : out  std_logic_vector(15 downto 0)
    );
END COMPONENT;

begin
 -- FullAdder0
    FA0: Fuller PORT MAP(
              C_in => Carry_in
              A_in 
       B_in
       C_out 
          S_out
);

end Behavioral;
    
pregunta Adegoke A

1 respuesta

3

Supongo que desea utilizar un montón de sumadores de un bit para crear (lo que parece) un sumador de 16 bits.

Por lo tanto, su entidad de nivel superior debería tener entradas y salidas de señal de 16 bits, y usted debería crear una instancia del sumador de 1 bit. Aquí hay una imagen de ejemplo que muestra 4 bits de sumador:

En el caso de lo anterior, sus aportes a su entidad deberían ser

A    : in std_logic_vector(3 downto 0);
B    : in std_logic_vector(3 downto 0);
C_in : in std_logic;

y la salida debe ser

S     : out std_logic_vector(3 downto 0);
C_out : out std_logic;

Cree una instancia del sumador de un bit, conéctese como en el diagrama para tantos bits como necesite, y listo.

    
respondido por el stanri

Lea otras preguntas en las etiquetas