diff --git a/libraries/dsp/correlator/src/vhdl/correlator.vhd b/libraries/dsp/correlator/src/vhdl/correlator.vhd index 5855a7b101785d4690f0d03efca9f7cc6f0368fd..ef79f1b13bdf87243f95f67ad8ea122a9e0ee32a 100644 --- a/libraries/dsp/correlator/src/vhdl/correlator.vhd +++ b/libraries/dsp/correlator/src/vhdl/correlator.vhd @@ -97,8 +97,8 @@ BEGIN GENERIC MAP ( g_nof_inputs => g_nof_mults, g_accumulator_depth => 10, - g_data_w => 32 -) + g_data_w => 64 + ) PORT MAP ( clk => clk, rst => rst, diff --git a/libraries/dsp/correlator/tb/vhdl/tb_corr_accumulator.vhd b/libraries/dsp/correlator/tb/vhdl/tb_corr_accumulator.vhd index a214ef7b5bd1bd94c1891c935e4f1adfe525fe96..91d2dd67a7417a7bd279373f7053aa43c771d83e 100644 --- a/libraries/dsp/correlator/tb/vhdl/tb_corr_accumulator.vhd +++ b/libraries/dsp/correlator/tb/vhdl/tb_corr_accumulator.vhd @@ -26,14 +26,14 @@ USE common_lib.common_pkg.ALL; USE dp_lib.dp_stream_pkg.ALL; USE common_lib.tb_common_pkg.ALL; -ENTITY tb_corr_multiplier IS +ENTITY tb_corr_accumulator IS GENERIC ( g_nof_inputs : NATURAL := 4; g_multiplier_factor : NATURAL := 2 ); -END tb_corr_multiplier; +END tb_corr_accumulator; -ARCHITECTURE tb OF tb_corr_multiplier IS +ARCHITECTURE tb OF tb_corr_accumulator IS CONSTANT c_clk_period : TIME := 10 ns; CONSTANT c_data_w : NATURAL := 32; diff --git a/libraries/dsp/correlator/tb/vhdl/tb_correlator.vhd b/libraries/dsp/correlator/tb/vhdl/tb_correlator.vhd index cb717b1e404c794a3e7b4cde82c9630fa4429983..e1be8f480d96e83bfb13d216b27d85d80f381909 100644 --- a/libraries/dsp/correlator/tb/vhdl/tb_correlator.vhd +++ b/libraries/dsp/correlator/tb/vhdl/tb_correlator.vhd @@ -26,24 +26,51 @@ USE common_lib.common_pkg.ALL; USE dp_lib.dp_stream_pkg.ALL; USE common_lib.tb_common_pkg.ALL; -ENTITY tb_corr_multiplier IS - GENERIC ( - g_nof_inputs : NATURAL := 4 - ); -END tb_corr_multiplier; +ENTITY tb_correlator IS +END tb_correlator; + +ARCHITECTURE tb OF tb_correlator IS -ARCHITECTURE tb OF tb_corr_multiplier IS + CONSTANT c_nof_inputs : NATURAL := 4; + CONSTANT c_nof_mults : NATURAL := (c_nof_inputs*(c_nof_inputs+1))/2; - CONSTANT c_clk_period : TIME := 10 ns; - CONSTANT c_data_w : NATURAL := 32; + CONSTANT c_clk_period : TIME := 10 ns; + CONSTANT c_data_w : NATURAL := 32; - SIGNAL tb_end : STD_LOGIC := '0'; - SIGNAL clk : STD_LOGIC := '1'; - SIGNAL rst : STD_LOGIC; + SIGNAL tb_end : STD_LOGIC := '0'; + SIGNAL clk : STD_LOGIC := '1'; + SIGNAL rst : STD_LOGIC; + + SIGNAL correlator_snk_in_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0); + SIGNAL correlator_src_out : t_dp_sosi; BEGIN + ----------------------------------------------------------------------------- + -- Clocks and reset + ----------------------------------------------------------------------------- clk <= NOT clk OR tb_end AFTER c_clk_period/2; rst <= '1', '0' AFTER c_clk_period*7; + ----------------------------------------------------------------------------- + -- Test data + ----------------------------------------------------------------------------- + + + ----------------------------------------------------------------------------- + -- Device under test: correlator + ----------------------------------------------------------------------------- + u_correlator : ENTITY work.correlator + GENERIC MAP ( + g_nof_inputs => c_nof_inputs, + g_nof_mults => c_nof_mults + ) + PORT MAP ( + clk => clk, + rst => rst, + + snk_in_arr => correlator_snk_in_arr, + src_out => correlator_src_out + ); + END tb;