OpenCores
URL https://opencores.org/ocsvn/generic_booth_multipler/generic_booth_multipler/trunk

Subversion Repositories generic_booth_multipler

[/] [generic_booth_multipler/] [trunk/] [rtl/] [modules/] [00.Alu.vhd] - Diff between revs 2 and 6

Show entire file | Details | Blame | View Log

Rev 2 Rev 6
Line 1... Line 1...
 
 
library IEEE;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_1164.ALL;
 
 
entity Alu is
entity Alu is
 
        generic(
 
                size : integer:= 4
 
        );
        port(
        port(
                A       : in  std_logic_vector;
                A       : in  std_logic_vector(size-1 downto 0);
                B       : in  std_logic_vector;
                B       : in  std_logic_vector(size-1 downto 0);
                op      : in  std_logic;
                op      : in  std_logic;
                S       : out std_logic_vector);
                S       : out std_logic_vector(size-1 downto 0));
end Alu;
end Alu;
 
 
architecture Behavioral of Alu is
architecture Behavioral of Alu is
        component Adder is
        component Adder is
 
                generic(
 
                        size : integer:= 4
 
                );
                port(
                port(
                        A               : in  std_logic_vector;
                        A               : in  std_logic_vector(size-1 downto 0);
                        B               : in  std_logic_vector;
                        B               : in  std_logic_vector(size-1 downto 0);
                        Cin     : in  std_logic;
                        Cin     : in  std_logic;
                        S               : out std_logic_vector;
                        S               : out std_logic_vector(size-1 downto 0);
                        Cout    : out std_logic);
                        Cout    : out std_logic);
        end component;
        end component;
 
 
        component XorCrearor is
        component XorCrearor is
 
                generic(
 
                        size : integer:= 4
 
                );
                port(
                port(
                        input1 : in      std_logic;
                        input1 : in      std_logic;
                        input2 : in  std_logic_vector;
                        input2 : in  std_logic_vector(size-1 downto 0);
                        result : out std_logic_vector);
                        result : out std_logic_vector);
        end component;
        end component;
        signal xored: std_logic_vector(A'range);
        signal xored: std_logic_vector(A'range);
begin
begin
        XO :XorCrearor port map(op,B,xored);
        XO :XorCrearor
        ADD:ADDER port map(A,xored,op,S,open);
                generic map (
 
                        size => size
 
                )
 
                port map(
 
                        input1 => op,
 
                        input2 =>B,
 
                        result => xored);
 
        ADD: ADDER
 
                generic map (
 
                        size => size
 
                )
 
                port map(
 
                        A=> A,
 
                        B=> xored,
 
                        cin=> op,
 
                        S=> S,
 
                        cout=> open);
 
 
end Behavioral;
end Behavioral;
 
 
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.