38 lines
768 B
VHDL
38 lines
768 B
VHDL
|
library IEEE;
|
||
|
use IEEE.STD_LOGIC_1164.all;
|
||
|
|
||
|
entity AccN is
|
||
|
generic ( N : positive := 8 );
|
||
|
port (
|
||
|
dataIn : in std_logic_vector((N-1) downto 0);
|
||
|
reset, enable, clk : std_logic;
|
||
|
dataOut : out std_logic_vector((N-1) downto 0)
|
||
|
);
|
||
|
end AccN;
|
||
|
|
||
|
architecture Behavioral of AccN is
|
||
|
signal s_adderOut : std_logic_vector((N-1) downto 0);
|
||
|
signal s_regOut : std_logic_vector((N-1) downto 0);
|
||
|
begin
|
||
|
|
||
|
adder : entity work.AdderN(Behavioral)
|
||
|
generic map ( N => N )
|
||
|
port map
|
||
|
(
|
||
|
operand1 => dataIn,
|
||
|
operand2 => s_regOut,
|
||
|
result => s_adderOut
|
||
|
);
|
||
|
|
||
|
reg : entity work.RegN(Behavioral)
|
||
|
generic map ( N => N )
|
||
|
port map
|
||
|
(
|
||
|
dataIn => s_adderOut,
|
||
|
reset => reset, enable => enable, clk => clk,
|
||
|
dataOut => s_regOut
|
||
|
);
|
||
|
|
||
|
dataOut <= s_regOut;
|
||
|
|
||
|
end Behavioral;
|