|
- LIBRARY ieee;
- USE ieee.std_logic_1164.ALL;
- USE work.GENERAL_INCLUDES.ALL;
-
- ENTITY N_SAMPLES_ADDER IS
- GENERIC( log2_nb_stages : natural
- );
- PORT( i_clk : IN std_logic;
- i_data : IN ARRAY (0 TO 2*nb_samples_out) OF std_logic_vector(w_in-1 DOWNTO 0);
- o_data : OUT std_logic_vector(w_in+cst_lo2_adder_stages-1 DOWNTO 0)
- );
- END N_SAMPLES_ADDER;
-
- ARCHITECTURE Adder_Simple OF N_SAMPLES_ADDER IS
-
- SIGNAL data1 : ARRAY (0 TO nb_samples_out) OF signed(w_in-1 DOWNTO 0);
- SIGNAL data2 : ARRAY (0 TO nb_samples_out) OF signed(w_in-1 DOWNTO 0);
- SIGNAL result : ARRAY (0 TO nb_samples_out) OF signed(w_in DOWNTO 0);
-
- SIGNAL matrix_tree : matrix_adder_generic
-
- BEGIN
-
- stages : FOR i IN 1 TO log2_nb_stages GENERATE
- ENTITY N_SAMPLES_partial_ADDER IS
- GENERIC( w_in => natural,
- nb_samples_out => natural
- )
- PORT( i_clk => i_clk,
- i_data => IN ARRAY (0 TO 2*nb_samples_out) OF std_logic_vector(w_in-1 DOWNTO 0),
- o_data => OUT ARRAY (0 TO nb_samples_out) OF std_logic_vector(w_in DOWNTO 0)
- );
- END GENERATE stages;
-
- END Adder_Simple;
|