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;